<?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>86983</bug_id>
          
          <creation_ts>2012-05-20 21:11:24 -0700</creation_ts>
          <short_desc>[V8] Pass Isolate to throwNotEnoughArgumentsError()</short_desc>
          <delta_ts>2012-05-21 00:07:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>84074</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>628750</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-20 21:11:24 -0700</bug_when>
    <thetext>The objective is to pass Isolate around in V8 bindings. In this bug we pass Isolate to throwNotEnoughArgumentsError().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628753</commentid>
    <comment_count>1</comment_count>
      <attachid>142941</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-20 21:13:05 -0700</bug_when>
    <thetext>Created attachment 142941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628833</commentid>
    <comment_count>2</comment_count>
      <attachid>142941</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-21 00:07:40 -0700</bug_when>
    <thetext>Comment on attachment 142941
Patch

Clearing flags on attachment: 142941

Committed r117736: &lt;http://trac.webkit.org/changeset/117736&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628834</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-21 00:07:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142941</attachid>
            <date>2012-05-20 21:13:05 -0700</date>
            <delta_ts>2012-05-21 00:07:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86983-20120521131304.patch</filename>
            <type>text/plain</type>
            <size>52189</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRhODRmYzZhZjY4NjZl
OTM4NGIzNzhhNjE2ODQ0OTE1ZjZjMDZlZi4uMjYwNzZhZGQzMmJhMzA2YjhiNGUyMGI4NTJiOTUx
MDRkYmRlN2Q1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDExNSBAQAogMjAxMi0wNS0yMCAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW1Y4XSBQYXNzIElz
b2xhdGUgdG8gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Njk4MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBvYmplY3RpdmUgaXMgdG8gcGFzcyBJ
c29sYXRlIGFyb3VuZCBpbiBWOCBiaW5kaW5ncy4KKyAgICAgICAgVGhpcyBwYXRjaCBwYXNzZXMg
SXNvbGF0ZSB0byB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCkuCisKKyAgICAgICAgTm8g
dGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVBcmd1bWVudHNDb3VudENo
ZWNrKToKKyAgICAgICAgKEdlbmVyYXRlRXZlbnRDb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmxvYXQ2NEFycmF5VjhJbnRlcm5hbDo6Zm9vQ2FsbGJhY2spOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdEFjdGl2ZURPTU9iamVjdFY4SW50ZXJuYWw6OmV4Y2l0aW5n
RnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0QWN0aXZlRE9NT2JqZWN0
VjhJbnRlcm5hbDo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRlc3RDdXN0b21OYW1lZEdldHRlclY4SW50ZXJuYWw6OmFub3RoZXJGdW5jdGlvbkNhbGxi
YWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpj
b25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdEV2ZW50VGFyZ2V0
VjhJbnRlcm5hbDo6aXRlbUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RFdmVudFRh
cmdldFY4SW50ZXJuYWw6OmRpc3BhdGNoRXZlbnRDYWxsYmFjayk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0SW50ZXJmYWNlVjhJbnRlcm5hbDo6c3VwcGxlbWVudGFsTWV0aG9kMkNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEludGVyZmFjZTo6Y29uc3RydWN0b3JDYWxsYmFjayk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJWOEludGVybmFsOjptZXRob2RDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGVzdE9ialY4SW50ZXJuYWw6OnZvaWRNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjppbnRNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RXaXRoQXJnc0Nh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRo
U2VxdWVuY2VBcmdDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0NhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpzZXJpYWxpemVkVmFs
dWVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6aWRiS2V5
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om9wdGlvbnNP
YmplY3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6bWV0
aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdv
T3B0aW9uYWxBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJu
YWw6Om1ldGhvZFdpdGhDYWxsYmFja0FyZ0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZ0Nh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVk
TWV0aG9kMUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpv
dmVybG9hZGVkTWV0aG9kMkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOElu
dGVybmFsOjpvdmVybG9hZGVkTWV0aG9kM0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kNENhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kNUNhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kNkNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0
aG9kN0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVy
bG9hZGVkTWV0aG9kMTFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRl
cm5hbDo6b3ZlcmxvYWRlZE1ldGhvZDEyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbnZlcnQxQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbnZlcnQyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbnZlcnQzQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbnZlcnQ0Q2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNvbnZlcnQ1Q2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmljdEZ1bmN0
aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0T2JqOjpjb25zdHJ1Y3RvckNh
bGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjphY2NlcHRUcmFuc2Zlckxpc3RD
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Nj
cmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0VmFsdWVBbmRDbG9zZVBv
cHVwQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcik6CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5oOgorICAgICAgICAoVjhQcm94eSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4QXVkaW9Db250ZXh0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpWOERhdGFWaWV3OjpnZXRJbnQ4Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhE
YXRhVmlldzo6Z2V0VWludDhDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOERhdGFWaWV3
OjpzZXRJbnQ4Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhEYXRhVmlldzo6c2V0VWlu
dDhDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGlyZWN0b3J5RW50
cnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhEaXJlY3RvcnlFbnRyeTo6Z2V0RGly
ZWN0b3J5Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhEaXJlY3RvcnlFbnRyeTo6Z2V0
RmlsZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEludGVudDo6Y29uc3RydWN0b3JDYWxs
YmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1ZHTGVuZ3RoQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlY4U1ZHTGVuZ3RoOjpjb252ZXJ0VG9TcGVjaWZpZWRVbml0
c0NhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0T2JqZWN0UGFyYW1ldGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hl
ZFNoYWRlcnNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0RXh0ZW5zaW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlckNhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0
ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0UHJvZ3JhbVBhcmFtZXRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0ZXJDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybUNhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OnZlcnRleEF0dHJpYkFuZFVuaWZvcm1IZWxwZXJmKToKKyAgICAgICAg
KFdlYkNvcmU6OnVuaWZvcm1IZWxwZXJpKToKKyAgICAgICAgKFdlYkNvcmU6OnVuaWZvcm1NYXRy
aXhIZWxwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViS2l0
TXV0YXRpb25PYnNlcnZlcjo6b2JzZXJ2ZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJT
b2NrZXQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhXZWJTb2Nr
ZXQ6OnNlbmRDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhYTUxIdHRwUmVxdWVzdDo6
b3BlbkNhbGxiYWNrKToKKworMjAxMi0wNS0yMCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJv
bWl1bS5vcmc+CisKICAgICAgICAgVW5yZXZpZXdlZC4gUmViYXNlbGluZWQgcnVuLWJpbmRpbmdz
LXRlc3RzIHJlc3VsdHMuCiAKICAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggZDY2Zjg0ZTBjNzMyNDI4ZGUwZTkwNTQ2ZDk4NDQx
MjM5MjRjYmMzNC4uNzRlZjQ5ZjkwODZlN2Y5YWE0YjY4NTYzYzNkN2E0ZTIwZmUwMDA0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KQEAgLTE1MjYsNyArMTUyNiw3IEBAIHN1YiBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2sK
ICAgICBteSAkYXJndW1lbnRzQ291bnRDaGVja1N0cmluZyA9ICIiOwogICAgIGlmICgkbnVtTWFu
ZGF0b3J5UGFyYW1zID49IDEpIHsKICAgICAgICAgJGFyZ3VtZW50c0NvdW50Q2hlY2tTdHJpbmcg
Lj0gIiAgICBpZiAoYXJncy5MZW5ndGgoKSA8ICRudW1NYW5kYXRvcnlQYXJhbXMpXG4iOwotICAg
ICAgICAkYXJndW1lbnRzQ291bnRDaGVja1N0cmluZyAuPSAiICAgICAgICByZXR1cm4gVjhQcm94
eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpO1xuIjsKKyAgICAgICAgJGFyZ3VtZW50
c0NvdW50Q2hlY2tTdHJpbmcgLj0gIiAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpO1xuIjsKICAgICB9CiAgICAgcmV0
dXJuICRhcmd1bWVudHNDb3VudENoZWNrU3RyaW5nOwogfQpAQCAtMTgwNSw3ICsxODA1LDcgQEAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4JHtpbXBsQ2xhc3NOYW1lfTo6Y29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICAgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CiAK
ICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJv
d05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJv
d05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIFNUUklO
R19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgdHlwZSwgYXJn
c1swXSk7CiAgICAgJHtpbXBsQ2xhc3NOYW1lfUluaXQgZXZlbnRJbml0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJh
eS5jcHAKaW5kZXggODU4MWE4ZDY4ZWZhMDZkNTIzMjY0YWQxN2UzN2UwMWJhMGI5ZDM1My4uNzBh
MjczYmFjM2RjNTU1MmY0YjdhODE0ODMyMWViODkyZGI0Nzg1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXku
Y3BwCkBAIC01Miw3ICs1Miw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZm9vQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5G
bG9hdDY0QXJyYXkuZm9vIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICBy
ZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICBy
ZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7CiAgICAgRmxvYXQ2NEFycmF5KiBpbXAgPSBWOEZsb2F0NjRBcnJheTo6dG9OYXRpdmUo
YXJncy5Ib2xkZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKEZsb2F0MzJBcnJheSosIGFycmF5
LCBWOEZsb2F0MzJBcnJheTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOEZsb2F0MzJBcnJheTo6dG9OYXRpdmUodjg6
OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKICAgICByZXR1cm4gdG9WOChpbXAtPmZvbyhh
cnJheSksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5j
cHAKaW5kZXggNzQ5MDAwMDE3NjlmNWZlMzRkNjYwZjVkNWE5ZDNhNzZiODg3Y2M0Zi4uMGQyZDc4
NzJiY2FiZDIwMzQ2ODhmMjFiNTk5MjgwNmFkY2RlZDYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2
ZURPTU9iamVjdC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBleGNpdGluZ0Z1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
IHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0QWN0aXZlRE9NT2JqZWN0LmV4Y2l0aW5nRnVuY3Rp
b24iKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5
Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5
Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBU
ZXN0QWN0aXZlRE9NT2JqZWN0KiBpbXAgPSBWOFRlc3RBY3RpdmVET01PYmplY3Q6OnRvTmF0aXZl
KGFyZ3MuSG9sZGVyKCkpOwogICAgIGlmICghVjhCaW5kaW5nU2VjdXJpdHk6OmNhbkFjY2Vzc0Zy
YW1lKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcC0+ZnJhbWUoKSwgdHJ1ZSkpCiAgICAgICAg
IHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwb3N0TWVzc2FnZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdEFjdGl2ZURPTU9iamVjdC5w
b3N0TWVzc2FnZSIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkp
OwogICAgIFRlc3RBY3RpdmVET01PYmplY3QqIGltcCA9IFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQ
VElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBtZXNzYWdlLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBpbXAtPnBvc3RNZXNzYWdlKG1l
c3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXggMjBlYjVh
MTFhYzI5YjBhZTc4ZTRlODhkYThhN2NhNjI0Mzg1YTNlZS4uMTFiMmY5ZDM3MjE0ZjJiNDNlMWU3
OWNjOGM0ODgyZWI5M2E0NzdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
Y3BwCkBAIC00Myw3ICs0Myw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYW5vdGhl
ckZ1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuYW5vdGhlckZ1bmN0aW9uIik7CiAgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdEN1c3RvbU5h
bWVkR2V0dGVyKiBpbXAgPSBWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBh
cmFtZXRlcjw+LCBzdHIsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpOwogICAgIGltcC0+YW5vdGhlckZ1bmN0aW9uKHN0cik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYTIyNzI2OWI5NTk0YTE1ZjI1NjI3MWZiOTFh
YjBmZjA5NDZjMTY5Yy4uNDhhYjFmZTQ3NDYwOTBkNDgzNTZiNDM3ZTI5NWQ2ZWE3ZjQ5NTQ1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEV2ZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0b3JD
YWxsYmFjayhjb25zdCB2ODo6QXJndQogICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKIAog
ICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgU1RSSU5H
X1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBlLCBhcmdz
WzBdKTsKICAgICBUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQgZXZlbnRJbml0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFy
Z2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RF
dmVudFRhcmdldC5jcHAKaW5kZXggMzNjNTA2NWYwZWM0ODJjZDhlNTg0MWZhOTQ3MzhmMDJmM2Ew
MDM3Yi4uNTAxNWMwOGFlNDBkYTBjNzgwMWI0ZmNmNmVmMzE0OTcyMmRiNDlmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFy
Z2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gaXRlbUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdEV2ZW50VGFyZ2V0Lml0ZW0iKTsKICAgICBpZiAoYXJncy5MZW5n
dGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0RXZlbnRUYXJnZXQqIGltcCA9IFY4
VGVzdEV2ZW50VGFyZ2V0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKICAgICB7CkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gZGlzcGF0Y2hFdmVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdEV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQiKTsK
ICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJv
d05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJv
d05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0RXZl
bnRUYXJnZXQqIGltcCA9IFY4VGVzdEV2ZW50VGFyZ2V0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigp
KTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3Bw
CmluZGV4IDIwZTA5OGM4MTI3ZTAxYjBlNmFlM2NmZjNkMzQxODQ3NWFkNmJjNzkuLjk0M2Q0YWQz
NTViNzA5YjkyODA0MjIyNTAyYjEzODc2NGYwYTA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3Bw
CkBAIC0xMjQsNyArMTI0LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdXBwbGVt
ZW50YWxNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXIKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5UZXN0SW50ZXJmYWNlLnN1cHBsZW1lbnRhbE1ldGhvZDIiKTsKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDIpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0SW50ZXJmYWNlKiBp
bXAgPSBWOFRlc3RJbnRlcmZhY2U6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIHsKQEAgLTIxMyw3ICsyMTMsNyBAQCB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhUZXN0SW50ZXJmYWNlOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmCiAgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6Y3VycmVudCgpID09IENvbnN0cnVj
dG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQogICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIo
KTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0
aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0
aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyMSwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5jcHAKaW5kZXggYjUxNWI0MzQ2ZGU4MTczY2E0MGZjMTRmMWE1NjI1ZDJmMTk1
ZGI5My4uNzEzOWE2NGJkZTFhMmY3YjljOGQxZDFmZGVmNmZlN2FmZGUxYjMyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtNDQsNyArNDQsNyBA
QCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIubWV0aG9kIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICBy
ZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICBy
ZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7CiAgICAgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGltcCA9IFY4VGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXI6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElP
Tl9CTE9DSyhSZWZQdHI8TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4sIGxpc3RlbmVyLCBNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyOjpjcmVhdGUoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGltcC0+bWV0aG9kKGxpc3RlbmVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1l
ZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCBmMWU4YzM2N2IxOGI2M2ViNGZmYmY1
MjAxNGJlNmU0MjcxZmZlNzJjLi44YWNjOThjZWE5ZjEzYmRjYTNkNjkzNjc1Njk2N2FhMWJiYjdj
YWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC02NCw3ICs2NCw3
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUZXN0TmFtZWRDb25zdHJ1Y3RvckNv
bnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6CiAgICAgdG9WOChkb2N1bWVudCwgYXJncy5HZXRJ
c29sYXRlKCkpOwogCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4g
VjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4g
VjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7
CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJf
RVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0cjEsIE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCBlMmQxMGNm
YmM3MWU3Mjc0OTNlZjgzODVhOTk3N2Q5NGIwMDlmYjU2Li44MGMzNjJjYmY3OWU3NTJmNzliMTFi
NzkyYzVjNWQxYTY5ZjBiODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMTIzMCw3ICsxMjMwLDcgQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2b2lkTWV0aG9kV2l0aEFyZ3NDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmcKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnZvaWRN
ZXRob2RXaXRoQXJncyIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMykKLSAgICAgICAgcmV0
dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0
dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRl
KCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIo
KSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgaW50QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBTVFJJTkdf
VE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CkBAIC0x
MjUwLDcgKzEyNTAsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGludE1ldGhvZFdp
dGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogewogICAgIElOQ19TVEFU
UygiRE9NLlRlc3RPYmouaW50TWV0aG9kV2l0aEFyZ3MiKTsKICAgICBpZiAoYXJncy5MZW5ndGgo
KSA8IDMpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGludEFyZywg
dG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFt
ZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpOwpAQCAtMTI2OSw3ICsxMjY5LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBvYmpNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm9iak1ldGhvZFdpdGhBcmdzIik7CiAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiog
aW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFWENFUFRJT05f
QkxPQ0soaW50LCBpbnRBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENF
UFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKQEAgLTEyODEsNyArMTI4MSw3IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kV2l0aFNlcXVlbmNlQXJnQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm1ldGhv
ZFdpdGhTZXF1ZW5jZUFyZyIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAg
cmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAg
cmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29s
YXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xk
ZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKHNlcXVlbmNlPFNjcmlwdFByb2ZpbGU+Kiwgc2Vx
dWVuY2VBcmcsIHRvTmF0aXZlQXJyYXk8U2NyaXB0UHJvZmlsZT4oTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGltcC0+bWV0aG9kV2l0
aFNlcXVlbmNlQXJnKHNlcXVlbmNlQXJnKTsKQEAgLTEyOTIsNyArMTI5Miw3IEBAIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5tZXRob2RSZXR1
cm5pbmdTZXF1ZW5jZSIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0
dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0
dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRl
KCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIo
KSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgaW50QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICByZXR1cm4g
djhBcnJheShpbXAtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKGludEFyZyksIGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKQEAgLTEzMDIsNyArMTMwMiw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0NhbGxiYWNrKGNvbnN0IHY4CiB7
CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5k
VGhyb3dzIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQotICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICB7CkBAIC0xMzIyLDcgKzEzMjIsNyBAQCBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNlcmlhbGl6ZWRWYWx1ZUNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5zZXJpYWxp
emVkVmFsdWUiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwog
ICAgIGJvb2wgc2VyaWFsaXplZEFyZ0RpZFRocm93ID0gZmFsc2U7CiAgICAgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZEFyZyA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
Y3JlYXRlKGFyZ3NbMF0sIDAsIDAsIHNlcmlhbGl6ZWRBcmdEaWRUaHJvdywgYXJncy5HZXRJc29s
YXRlKCkpOwpAQCAtMTMzNiw3ICsxMzM2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBpZGJLZXlDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19T
VEFUUygiRE9NLlRlc3RPYmouaWRiS2V5Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQot
ICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOwor
ICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdz
LkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKICAgICBFWENFUFRJT05fQkxPQ0soUmVmUHRyPElEQktleT4sIGtleSwg
Y3JlYXRlSURCS2V5RnJvbVZhbHVlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpbXAtPmlkYktleShrZXkuZ2V0KCkpOwpAQCAtMTM0
Nyw3ICsxMzQ3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvcHRpb25zT2JqZWN0
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLm9wdGlvbnNPYmplY3QiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0g
ICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7Cisg
ICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5LCBvbywgTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFvby5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFvby5pc09i
amVjdCgpKSB7CkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IG1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnQ2FsbGJhY2soY29ucwog
ewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5k
T3B0aW9uYWxBcmciKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OwogICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIG5vbk9wdCwgdG9JbnQzMihNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGFyZ3Mu
TGVuZ3RoKCkgPD0gMSkgewpAQCAtMTU2OSw3ICsxNTY5LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3NDYWxs
YmFjaygKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm1ldGhvZFdpdGhOb25PcHRpb25h
bEFyZ0FuZFR3b09wdGlvbmFsQXJncyIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAg
ICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAg
ICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5H
ZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJn
cy5Ib2xkZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbm9uT3B0LCB0b0ludDMyKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAg
ICBpZiAoYXJncy5MZW5ndGgoKSA8PSAxKSB7CkBAIC0xNjIxLDcgKzE2MjEsNyBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFdpdGhDYWxsYmFja0FyZ0NhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5tZXRob2RXaXRo
Q2FsbGJhY2tBcmciKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDw9IDAgfHwgIWFyZ3NbMF0tPklzRnVuY3Rpb24oKSkK
ICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoVFlQRV9NSVNNQVRDSF9FUlIpOwpAQCAtMTYzNCw3
ICsxNjM0LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoTm9uQ2Fs
bGJhY2tBcmdBbmRDYWxsYmFja0FyZ0NhbGxiYWNrKGNvbnMKIHsKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLm1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnIik7CiAgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1w
ID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFWENFUFRJT05fQkxP
Q0soaW50LCBub25DYWxsYmFjaywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMSB8
fCAhYXJnc1sxXS0+SXNGdW5jdGlvbigpKQpAQCAtMTY5Nyw3ICsxNjk3LDcgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kMUNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJsb2FkZWRN
ZXRob2QxIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQotICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAg
ICBFWENFUFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5j
ZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/
IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKICAg
ICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0
ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVk
KSk7CkBAIC0xNzA5LDcgKzE3MDksNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG92
ZXJsb2FkZWRNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogewogICAg
IElOQ19TVEFUUygiRE9NLlRlc3RPYmoub3ZlcmxvYWRlZE1ldGhvZDIiKTsKICAgICBpZiAoYXJn
cy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0
T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDw9
IDEpIHsKQEAgLTE3MjUsNyArMTcyNSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
b3ZlcmxvYWRlZE1ldGhvZDNDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiB7CiAg
ICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vdmVybG9hZGVkTWV0aG9kMyIpOwogICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4
VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIGltcC0+b3Zlcmxv
YWRlZE1ldGhvZChzdHJBcmcpOwpAQCAtMTczNiw3ICsxNzM2LDcgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kNENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJsb2FkZWRNZXRob2Q0
Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFWENF
UFRJT05fQkxPQ0soaW50LCBpbnRBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhv
ZChpbnRBcmcpOwpAQCAtMTc0Nyw3ICsxNzQ3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBvdmVybG9hZGVkTWV0aG9kNUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MK
IHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm92ZXJsb2FkZWRNZXRob2Q1Iik7CiAgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1w
ID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBpZiAoYXJncy5MZW5n
dGgoKSA8PSAwIHx8ICFhcmdzWzBdLT5Jc0Z1bmN0aW9uKCkpCiAgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKFRZUEVfTUlTTUFUQ0hfRVJSKTsKQEAgLTE3NjAsNyArMTc2MCw3IEBAIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDZDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vdmVybG9hZGVk
TWV0aG9kNiIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIFY4
UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIFY4
UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAg
ICAgRVhDRVBUSU9OX0JMT0NLKFJlZlB0cjxET01TdHJpbmdMaXN0PiwgbGlzdEFyZywgdjhWYWx1
ZVRvV2ViQ29yZURPTVN0cmluZ0xpc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChsaXN0QXJn
KTsKQEAgLTE3NzEsNyArMTc3MSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3Zl
cmxvYWRlZE1ldGhvZDdDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiB7CiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5vdmVybG9hZGVkTWV0aG9kNyIpOwogICAgIGlmIChhcmdz
Lkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVz
dE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFJlZlB0
cjxET01TdHJpbmdMaXN0PiwgYXJyYXlBcmcsIHY4VmFsdWVUb1dlYkNvcmVET01TdHJpbmdMaXN0
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsK
ICAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2QoYXJyYXlBcmcpOwpAQCAtMTgyMiw3ICsxODIyLDcg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kMTFDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2Jq
Lm92ZXJsb2FkZWRNZXRob2QxMSIpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAg
ICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAg
ICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJ
c29sYXRlKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGFyZywgdG9JbnQzMihNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgVGVz
dE9iajo6b3ZlcmxvYWRlZE1ldGhvZDEoYXJnKTsKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6
VmFsdWU+KCk7CkBAIC0xODM2LDcgKzE4MzYsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IG92ZXJsb2FkZWRNZXRob2QxMkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwog
ewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoub3ZlcmxvYWRlZE1ldGhvZDEyIik7CiAgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgU1RSSU5HX1RPX1Y4
UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBlLCBNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBUZXN0T2Jq
OjpvdmVybG9hZGVkTWV0aG9kMSh0eXBlKTsKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFs
dWU+KCk7CkBAIC0xODYzLDcgKzE4NjMsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogewog
ICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouZW5hYmxlZEF0UnVudGltZU1ldGhvZDEiKTsKICAg
ICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9C
TE9DSyhpbnQsIGludEFyZywgVjhpbnQ6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhpbnQ6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CiAgICAgaW1wLT5lbmFibGVkQXRSdW50aW1lTWV0
aG9kMShpbnRBcmcpOwpAQCAtMTg3NCw3ICsxODc0LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBlbmFibGVkQXRSdW50aW1lTWV0aG9kMkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRBdFJ1bnRpbWVNZXRob2Qy
Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFWENF
UFRJT05fQkxPQ0soaW50LCBpbnRBcmcsIFY4aW50OjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4aW50Ojp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIGltcC0+ZW5hYmxlZEF0UnVu
dGltZU1ldGhvZDIoaW50QXJnKTsKQEAgLTE5MDMsNyArMTkwMyw3IEBAIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gY29udmVydDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouY29udmVydDEiKTsKICAgICBpZiAoYXJn
cy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhhKiwg
LCBWOGE6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1
bHRJc1VuZGVmaW5lZCkpID8gVjhhOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpD
YXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
KSA6IDApOwogICAgIGltcC0+Y29udmVydDEoKTsKQEAgLTE5MTQsNyArMTkxNCw3IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouY29udmVydDIiKTsKICAg
ICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9C
TE9DSyhiKiwgLCBWOGI6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhiOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKSA6IDApOwogICAgIGltcC0+Y29udmVydDIoKTsKQEAgLTE5MjUsNyArMTkyNSw3
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDNDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouY29udmVy
dDMiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVybiBWOFByb3h5
Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5
Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBU
ZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEVY
Q0VQVElPTl9CTE9DSyhjKiwgLCBWOGM6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhjOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIGltcC0+Y29udmVydDMoKTsKQEAgLTE5MzYs
NyArMTkzNiw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDRDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
YmouY29udmVydDQiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OwogICAgIEVYQ0VQVElPTl9CTE9DSyhkKiwgLCBWOGQ6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhkOjp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIGltcC0+Y29udmVydDQoKTsK
QEAgLTE5NDcsNyArMTk0Nyw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVy
dDVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygi
RE9NLlRlc3RPYmouY29udmVydDUiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCi0gICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhlKiwgLCBWOGU6Okhhc0luc3RhbmNlKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhl
Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIGltcC0+Y29u
dmVydDUoKTsKQEAgLTE5ODAsNyArMTk4MCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gc3RyaWN0RnVuY3Rpb25DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewog
ICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouc3RyaWN0RnVuY3Rpb24iKTsKICAgICBpZiAoYXJn
cy5MZW5ndGgoKSA8IDMpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIHsKQEAgLTIyMzksNyArMjIzOSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRl
c3RPYmo6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAg
ICBpZiAoQ29uc3RydWN0b3JNb2RlOjpjdXJyZW50KCkgPT0gQ29uc3RydWN0b3JNb2RlOjpXcmFw
RXhpc3RpbmdPYmplY3QpCiAgICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwogICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIGlmIChhcmdzLkxlbmd0aCgp
IDw9IDAgfHwgIWFyZ3NbMF0tPklzRnVuY3Rpb24oKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoVFlQRV9NSVNNQVRDSF9FUlIpOwogICAgIFJlZlB0cjxUZXN0Q2FsbGJhY2s+IHRlc3RDYWxs
YmFjayA9IFY4VGVzdENhbGxiYWNrOjpjcmVhdGUoYXJnc1swXSwgZ2V0U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5jcHAKaW5kZXggYmM1YmY3YTgzYWFjZGNiMDQzZWE3OGI4NzJhYjY0ZmZk
MzhkMzJjZi4uNmE4MGU2ZDNiZThlMDRlYzJiNGNmNzE5Y2U4NzUxZTg2OWI0NWVmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5j
cHAKQEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFjY2Vw
dFRyYW5zZmVyTGlzdENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwogewogICAgIElO
Q19TVEFUUygiRE9NLlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuYWNjZXB0VHJh
bnNmZXJMaXN0Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4g
VjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4g
VjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7
CiAgICAgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogaW1wID0gVjhUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAg
ICBNZXNzYWdlUG9ydEFycmF5IG1lc3NhZ2VQb3J0QXJyYXlUcmFuc2Zlckxpc3Q7CiAgICAgQXJy
YXlCdWZmZXJBcnJheSBhcnJheUJ1ZmZlckFycmF5VHJhbnNmZXJMaXN0OwpAQCAtMjE4LDcgKzIx
OCw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJhY2soCiAgICAgaWYgKENvbnN0cnVjdG9yTW9kZTo6
Y3VycmVudCgpID09IENvbnN0cnVjdG9yTW9kZTo6V3JhcEV4aXN0aW5nT2JqZWN0KQogICAgICAg
ICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAg
ICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4
UGFyYW1ldGVyPD4sIGhlbGxvLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKTsKICAgICBNZXNzYWdlUG9ydEFycmF5IG1lc3NhZ2VQb3J0QXJyYXlU
cmFuc2Zlckxpc3Q7CiAgICAgQXJyYXlCdWZmZXJBcnJheSBhcnJheUJ1ZmZlckFycmF5VHJhbnNm
ZXJMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVy
LmNwcAppbmRleCAxYmNiN2U0NDQ0MDFlOWRmZDQzNTQ2OGE4ZmJhOGYyZGRjOTUzYjllLi4wMTA2
NzA0ZGYzMGIzYjU2NDZjYjM0ZDYzZGMwZGEyNzMxMjI4NjUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMjU0LDcgKzI1NCw3IEBA
IHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6YmluZFRvV2luZG93T2JqZWN0KEZyYW1lKiBmcmFtZSwg
Y29uc3QgU3RyaW5nJiBrZXksIE5QT2JqCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHNl
dFZhbHVlQW5kQ2xvc2VQb3B1cENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7
CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgRE9NV2lu
ZG93KiBpbXAgPSBWOERPTVdpbmRvdzo6dG9OYXRpdmUoYXJncy5EYXRhKCktPlRvT2JqZWN0KCkp
OwogICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGludFZhbHVlLCB0b0ludDMyKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBTVFJJTkdf
VE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0cmluZ1ZhbHVl
LCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKaW5kZXggYmQyYzA3OGMxNDZmYjY3
MzliZDcxYmI3Zjk1MGRhNWE2ODQyOGJiNy4uYzMxNzJmMDQ2MjM5YTBlNGUwYzU2ZmYyOGM3YWMz
NzIxMTM0MTY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTYz
Niw5ICs2MzYsOSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhQcm94eTo6dGhyb3dUeXBlRXJy
b3IoY29uc3QgY2hhciogbWVzc2FnZSkKICAgICByZXR1cm4gdGhyb3dFcnJvcihUeXBlRXJyb3Is
IChtZXNzYWdlID8gbWVzc2FnZSA6ICJUeXBlIGVycm9yIikpOwogfQogCi12ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpCit2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcih2ODo6
SXNvbGF0ZSogaXNvbGF0ZSkKIHsKLSAgICByZXR1cm4gdGhyb3dFcnJvcihUeXBlRXJyb3IsICJO
b3QgZW5vdWdoIGFyZ3VtZW50cyIpOworICAgIHJldHVybiB0aHJvd0Vycm9yKFR5cGVFcnJvciwg
Ik5vdCBlbm91Z2ggYXJndW1lbnRzIiwgaXNvbGF0ZSk7CiB9CiAKIHY4OjpMb2NhbDx2ODo6Q29u
dGV4dD4gVjhQcm94eTo6Y29udGV4dChGcmFtZSogZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOFByb3h5LmgKaW5kZXggOGYzMzM3NjllMTNmMzMxYjkxM2VlNGQ0YmZmZWM5MzE2ZTE4ZjEz
Zi4uZTA1ZTM3NjM3Yzg0YmJiMjMyNmI2YzQxMDBlNjA0ZmQxMDZlMDgwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4UHJveHkuaApAQCAtMjQwLDcgKzI0MCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICAvLyBIZWxwZXJzIGZvciB0aHJvd2luZyBzeW50YXggYW5kIHR5cGUg
ZXJyb3JzIHdpdGggcHJlZGVmaW5lZCBtZXNzYWdlcy4KICAgICAgICAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0aHJvd1R5cGVFcnJvcihjb25zdCBjaGFyKiA9IDApOwotICAgICAgICBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
KTsKKyAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0aHJvd05vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKHY4OjpJc29sYXRlKik7CiAKICAgICAgICAgdjg6OkxvY2FsPHY4OjpDb250
ZXh0PiBjb250ZXh0KCk7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gbWFpbldvcmxk
Q29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggYjcwODQ4NzA4ZGY1NTk2ZjQwMTFh
MjMxOTA1Yjk0OTk0MjdmOTc3Zi4uNTg4ZWQzYTJmNjU2NDZkOWIzYzhkZjE5NzgxNzkxNTIzOWJl
NDllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVk
aW9Db250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3BwCkBAIC03MSw3ICs3MSw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEF1ZGlvQ29udGV4dDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhCiAgICAgICAgIC8vIENvbnN0cnVjdG9yIGZvciBvZmZsaW5lIChyZW5kZXIt
dGFyZ2V0KSBBdWRpb0NvbnRleHQgd2hpY2ggcmVuZGVycyBpbnRvIGFuIEF1ZGlvQnVmZmVyLgog
ICAgICAgICAvLyBuZXcgQXVkaW9Db250ZXh0KGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZDaGFu
bmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkZyYW1lcywgaW4gZmxvYXQgc2FtcGxlUmF0
ZSk7CiAgICAgICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMykKLSAgICAgICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgICAgICByZXR1
cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUo
KSk7CiAKICAgICAgICAgYm9vbCBvayA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKaW5kZXggYTM0MDE3
YWE1NjhmMTZmNGZlMWJkMWE0NGQ0YmNlZGE5NGE4MGY1Ny4uOTU0MTg4ZTNiOWE0ZTE2N2FmOTdh
NTJkZGRmMDg3MGY3MmQxMzgwMCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcApAQCAtNjgsNyArNjgsNyBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6Z2V0SW50OENhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuZ2V0SW50OCIp
OwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRo
cm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRo
cm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgRGF0
YVZpZXcqIGltcCA9IFY4RGF0YVZpZXc6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtODUsNyArODUsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhEYXRhVmlldzo6Z2V0VWludDhDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQogewogICAgIElOQ19TVEFUUygiRE9NLkRhdGFWaWV3LmdldFVpbnQ4Iik7CiAgICAgaWYgKGFy
Z3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBEYXRhVmlldyogaW1wID0g
VjhEYXRhVmlldzo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CkBAIC0xMDIsNyArMTAyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZp
ZXc6OnNldEludDhDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElO
Q19TVEFUUygiRE9NLkRhdGFWaWV3LnNldEludDgiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8
IDIpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3Ojp0
b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTEx
OCw3ICsxMTgsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6c2V0VWludDhD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9N
LkRhdGFWaWV3LnNldFVpbnQ4Iik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQotICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElz
b2xhdGUoKSk7CiAKICAgICBEYXRhVmlldyogaW1wID0gVjhEYXRhVmlldzo6dG9OYXRpdmUoYXJn
cy5Ib2xkZXIoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEaXJlY3RvcnlFbnRyeUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEaXJlY3RvcnlFbnRyeUN1c3Rv
bS5jcHAKaW5kZXggMTlkN2EzYjY5YjM1MWVlYTUwYmI0Mzk2Yzk4MTgxZmJjNjIzNTgzYy4uNWQ0
YTkxZDgxNDczNzFkOTIzYWYzMmRmYmZlYmYwOWFjOTEyYjc1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGlyZWN0b3J5RW50cnlDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9yeUVudHJ5Q3Vz
dG9tLmNwcApAQCAtNTEsNyArNTEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEaXJlY3Rv
cnlFbnRyeTo6Z2V0RGlyZWN0b3J5Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIERp
cmVjdG9yeUVudHJ5KiBpbXAgPSBWOERpcmVjdG9yeUVudHJ5Ojp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIFY4UHJv
eHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIFY4UHJv
eHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogCiAg
ICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRo
VW5kZWZpbmVkT3JOdWxsQ2hlY2s+LCBwYXRoLCBhcmdzWzBdKTsKICAgICBpZiAoYXJncy5MZW5n
dGgoKSA8PSAxKSB7CkBAIC05NSw3ICs5NSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERp
cmVjdG9yeUVudHJ5OjpnZXRGaWxlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAg
ICAgRGlyZWN0b3J5RW50cnkqIGltcCA9IFY4RGlyZWN0b3J5RW50cnk6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwogCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4g
VjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4g
VjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7
CiAKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVy
PFdpdGhVbmRlZmluZWRPck51bGxDaGVjaz4sIHBhdGgsIGFyZ3NbMF0pOwogICAgIGlmIChhcmdz
Lkxlbmd0aCgpIDw9IDEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcAppbmRleCAyOGZhMjFlM2IwMTdjNzE3
NTg3ZmQ0ZTljYWFiYmYzOTEwZTU0ODRlLi4yMmEwM2M0M2NhODEwMzM5Yzc0ODI5ZTUwZmRhNjYw
OWFjMWZhNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhJbnRlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SW50ZW50Q29uc3RydWN0b3IuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOEludGVudDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQogICAgIGlmIChDb25zdHJ1Y3Rvck1vZGU6OmN1cnJlbnQoKSA9PSBDb25z
dHJ1Y3Rvck1vZGU6OldyYXBFeGlzdGluZ09iamVjdCkKICAgICAgICAgcmV0dXJuIGFyZ3MuSG9s
ZGVyKCk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94
eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94
eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPT0gMSkgewogICAgICAgICAvLyBVc2UgdGhlIGRpY3Rpb25hcnkg
Y29uc3RydWN0b3IuIFRoaXMgYmxvY2sgd2lsbCByZXR1cm4gaWYgdGhlCiAgICAgICAgIC8vIGFy
Z3VtZW50IGlzbid0IGEgdmFsaWQgRGljdGlvbmFyeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNWR0xlbmd0aEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTVkdMZW5ndGhDdXN0b20uY3BwCmluZGV4IDg3ZTMx
MTQyMTg3N2I1YmUyMGJhZDc3ZWJjYmYwZDZmNzMzZDQ3MDQuLjEwYTA3MzVkYTQ0NjRlYzk0YjVj
NzEyN2ExNzcxYjZjMGY3OWI1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFNWR0xlbmd0aEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4U1ZHTGVuZ3RoQ3VzdG9tLmNwcApAQCAtOTAsNyArOTAsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhTVkdMZW5ndGg6OmNvbnZlcnRUb1NwZWNpZmllZFVuaXRz
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZwogICAgIH0KIAogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwg
MSkKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
KTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
YXJncy5HZXRJc29sYXRlKCkpOwogCiAgICAgU1ZHTGVuZ3RoJiBpbXAgPSB3cmFwcGVyLT5wcm9w
ZXJ0eVJlZmVyZW5jZSgpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggNDdhMzJlNTkzYWZkOGY3ZDZmYTBhZmYyNWJm
MjljNDhhZmI1MWIzZS4uYWQwNGYxODQ1NjljNTM4ODYzYjA3ODZjZmY1MDdlNGFiZjU3NmEwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0yMTcsNyArMjE3LDcg
QEAgZW51bSBPYmplY3RUeXBlIHsKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZ2V0T2Jq
ZWN0UGFyYW1ldGVyKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIE9iamVjdFR5cGUgb2JqZWN0
VHlwZSkKIHsKICAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAyKQotICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNv
bnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
CkBAIC0yNjksNyArMjY5LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRBdHRhY2hlZFNoYWRlcnNDYWxsYmFjayhjb25zdAogICAgIElOQ19TVEFU
UygiRE9NLldlYkdMUmVuZGVyaW5nQ29udGV4dC5nZXRBdHRhY2hlZFNoYWRlcnMoKSIpOwogCiAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CkBAIC0zMDMsNyAr
MzAzLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRFeHRlbnNpb25DYWxsYmFjayhjb25zdCB2ODo6QXIKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJH
TFJlbmRlcmluZ0NvbnRleHQuZ2V0RXh0ZW5zaW9uQ2FsbGJhY2soKSIpOwogICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCogaW1wID0gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKLSAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkp
OwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8
PiwgbmFtZSwgYXJnc1swXSk7CiAgICAgV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbiA9IGltcC0+
Z2V0RXh0ZW5zaW9uKG5hbWUpOwogICAgIHJldHVybiB0b1Y4T2JqZWN0KGV4dGVuc2lvbiwgYXJn
cy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyCiAgICAgSU5DX1NUQVRTKCJET00uV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcigpIik7CiAKICAgICBpZiAoYXJn
cy5MZW5ndGgoKSAhPSAzKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CkBAIC0zMzQsNyArMzM0LDcgQEAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0
ZXJDYWxsYmFjayhjb25zdCB2ODo6QXIKICAgICBJTkNfU1RBVFMoIkRPTS5XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuZ2V0UGFyYW1ldGVyKCkiKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpICE9IDEp
Ci0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7
CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKQEAgLTM1Miw3ICszNTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXJDYWxsYmFj
ayhjb25zdAogICAgIElOQ19TVEFUUygiRE9NLldlYkdMUmVuZGVyaW5nQ29udGV4dC5nZXRQcm9n
cmFtUGFyYW1ldGVyKCkiKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpICE9IDIpCi0gICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dCogY29udGV4dCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKQEAgLTM4MSw3ICszODEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclBhcmFtZXRlckNhbGxiYWNrKGNvbnN0CiAg
ICAgSU5DX1NUQVRTKCJET00uV2ViR0xSZW5kZXJpbmdDb250ZXh0LmdldFNoYWRlclBhcmFtZXRl
cigpIik7CiAKICAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAyKQotICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQ
cm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAK
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNv
bnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
CkBAIC00MjQsNyArNDI0LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRVbmlmb3JtQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3UKICAgICBJTkNfU1RB
VFMoIkRPTS5XZWJHTFJlbmRlcmluZ0NvbnRleHQuZ2V0VW5pZm9ybSgpIik7CiAKICAgICBpZiAo
YXJncy5MZW5ndGgoKSAhPSAyKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CkBAIC00OTUsNyArNDk1LDcg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2ZXJ0ZXhBdHRyaWJBbmRVbmlmb3JtSGVs
cGVyZihjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIC8vICogZ2xWZXJ0ZXhBdHRyaWI0ZnYoR0xp
bnQgaW5kZXgsIEZsb2F0MzJBcnJheSBkYXRhKTsKIAogICAgIGlmIChhcmdzLkxlbmd0aCgpICE9
IDIpCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgICBpbnQgaW5k
ZXggPSAtMTsKQEAgLTU3Nyw3ICs1NzcsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHVuaWZvcm1IZWxwZXJpKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsCiAgICAgLy8gKiBnbFVu
aWZvcm00aXYoR0xVbmlmb3JtTG9jYXRpb24gbG9jYXRpb24sIEludDMyQXJyYXkgZGF0YSk7CiAK
ICAgICBpZiAoYXJncy5MZW5ndGgoKSAhPSAyKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBXZWJH
TFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBWOFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dG9O
YXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPiAwICYmICFpc1Vu
ZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhVjhXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6SGFzSW5z
dGFuY2UoYXJnc1swXSkpIHsKQEAgLTY5MSw3ICs2OTEsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHVuaWZvcm1NYXRyaXhIZWxwZXIoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywK
ICAgICAvLwogICAgIC8vIEZJWE1FOiBuZWVkIHRvIGNoYW5nZSB0byBhY2NlcHQgRmxvYXQzMkFy
cmF5IGFzIHdlbGwuCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgIT0gMykKLSAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkp
OwogCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gVjhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwCmluZGV4IDc3MTUyOWUzZWFiMDM5ZTg1NWMxZWU2ZTAwNjI5NDZk
Mzc2Y2M3MmUuLjhjYTIyNDVjODc0NDI2NDI5ODIyNjA0MGQzMzQyZmQ3NmIyNjE4NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCkBAIC02MSw3ICs2MSw3IEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmNvbnN0cnVjdG9y
Q2FsbGJhY2soY29uc3Qgdjg6OkFyCiAgICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwogCiAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQotICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcigpOworICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICB2ODo6TG9j
YWw8djg6OlZhbHVlPiBhcmcgPSBhcmdzWzBdOwogICAgIGlmICghYXJnLT5Jc09iamVjdCgpKQpA
QCAtODMsNyArODMsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJLaXRNdXRhdGlvbk9i
c2VydmVyOjpvYnNlcnZlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZQogewogICAgIElOQ19TVEFU
UygiRE9NLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSIpOwogICAgIGlmIChhcmdzLkxl
bmd0aCgpIDwgMikKLSAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIq
IGltcCA9IFY4V2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
CiAgICAgRVhDRVBUSU9OX0JMT0NLKE5vZGUqLCB0YXJnZXQsIFY4Tm9kZTo6SGFzSW5zdGFuY2Uo
YXJnc1swXSkgPyBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qo
YXJnc1swXSkpIDogMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwCmluZGV4IDNiMTE0Mzc5OTNkZmY4ODQ3MzY4
ZjAwZTk4MmVjNWUzN2U2ODU5YzguLjU5YTBjODlmNWU5YmNkNmYxNzc2ODI2NDNkY2RhYTlkYzcw
NTMxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YlNvY2tldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViU29ja2V0Q3VzdG9tLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhXZWJTb2NrZXQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncwogICAgICAgICByZXR1cm4gYXJncy5Ib2xkZXIoKTsKIAogICAgIGlmIChhcmdzLkxl
bmd0aCgpID09IDApCi0gICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKCk7CisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIHY4OjpUcnlDYXRjaCB0cnlDYXRj
aDsKICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHVybHN0cmluZyA9IGFyZ3NbMF0tPlRvU3Ry
aW5nKCk7CkBAIC0xMTcsNyArMTE3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViU29j
a2V0OjpzZW5kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBJTkNfU1RB
VFMoIkRPTS5XZWJTb2NrZXQuc2VuZCgpIik7CiAKICAgICBpZiAoIWFyZ3MuTGVuZ3RoKCkpCi0g
ICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7Cisg
ICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKIAogICAgIFdlYlNvY2tldCogd2ViU29ja2V0ID0gVjhXZWJTb2NrZXQ6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXNz
YWdlID0gYXJnc1swXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCAxOTlhNTk0NGEzODIz
NmJhMTBlMDczNGUzZTA2MmQ5NDRlYTk5MGM0Li4wZWQ2MGI1ZjJiOTlhMjYzNzU1YzcxNmQwZDhj
Y2QzMDA2M2Q2NzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCkBAIC0xMjEsNyArMTIxLDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6Om9wZW5DYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIC8vIG9wZW4obWV0aG9kLCB1cmwsIGFzeW5j
LCB1c2VyLCBwYXNzd2QpCiAKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCi0gICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCk7CisgICAgICAgIHJl
dHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKIAogICAgIFhNTEh0dHBSZXF1ZXN0KiB4bWxIdHRwUmVxdWVzdCA9IFY4WE1MSHR0cFJl
cXVlc3Q6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>