<?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>138221</bug_id>
          
          <creation_ts>2014-10-30 12:18:48 -0700</creation_ts>
          <short_desc>Web Inspector: ObjC Protocol Interfaces should throw exceptions for nil arguments</short_desc>
          <delta_ts>2014-11-03 11:36:49 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>burg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1045077</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-30 12:18:48 -0700</bug_when>
    <thetext>* SUMMARY
Improved type checking and enforcement of correct inspector protocol types by throwing exceptions if required ObjC protocol objects are nil.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045078</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-10-30 12:19:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/18827853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045437</commentid>
    <comment_count>2</comment_count>
      <attachid>240769</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-10-31 16:40:42 -0700</bug_when>
    <thetext>Created attachment 240769
[PATCH] Proposed Fix

The following convenience macros are defined in RWIProtocolJSONInternal.h, which these files include.

&gt; #define THROW_EXCEPTION_FOR_NIL_KEY(expr) \
&gt;     if (!expr)                            \
&gt;         [NSException raise:NSInvalidArgumentException format:@&quot;cannot set property with nil key&quot;];
&gt; 
&gt; #define THROW_EXCEPTION_FOR_NIL_VALUE(expr) \
&gt;     if (!expr)                              \
&gt;         [NSException raise:NSInvalidArgumentException format:@&quot;cannot set property to nil value&quot;];
&gt; 
&gt; #define THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(expr, propertyName) \
&gt;     if (!expr)                                                    \
&gt;         [NSException raise:NSInvalidArgumentException format:@&quot;required property &apos;%@&apos; cannot be nil&quot;, propertyName];
&gt; 
&gt; #define THROW_EXCEPTION_FOR_REQUIRED_PARAMETER(expr, parameterName) \
&gt;     if (!expr)                                                      \
&gt;         [NSException raise:NSInvalidArgumentException format:@&quot;required parameter &apos;%@&apos; cannot be nil&quot;, parameterName];
&gt; 
&gt; #define THROW_EXCEPTION_FOR_BAD_OPTIONAL_PARAMETER(expr, parameterName) \
&gt;     if (expr &amp;&amp; !*expr)                                                 \
&gt;         [NSException raise:NSInvalidArgumentException format:@&quot;optional parameter &apos;%@&apos; cannot be nil&quot;, parameterName];

The top ones are only used by RWIProtocolJSON for generic methods like -setString:forKey, -setObject:forKey:, ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045438</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-31 16:42:38 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045798</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-03 11:36:49 -0800</bug_when>
    <thetext>https://trac.webkit.org/r175479</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240769</attachid>
            <date>2014-10-31 16:40:42 -0700</date>
            <delta_ts>2014-11-03 11:34:00 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>throw-exception.patch</filename>
            <type>text/plain</type>
            <size>24284</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJjODAxOWUuLjAwNzYxNWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDE0LTEwLTMxICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogT2JqQyBQ
cm90b2NvbCBJbnRlcmZhY2VzIHNob3VsZCB0aHJvdyBleGNlcHRpb25zIGZvciBuaWwgYXJndW1l
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgy
MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
UldJUHJvdG9jb2wgQVBJcyB3aWxsIG5vdyByYWlzZSBleGNlcHRpb25zIHdoZW46CisKKyAgICAg
ICAgICAtIGFueSBwcm9wZXJ0aWVzIGFyZSBzZXQgb24gYSB0eXBlIHdpdGggYSBuaWwgdmFsdWUg
b3Iga2V5IChoYW5kbGVkIGJ5IFJXSVByb3RvY29sSlNPTk9iamVjdCkKKyAgICAgICAgICAtIHJl
cXVpcmVkIHBhcmFtZXRlcnMgaW4gdHlwZSBjb25zdHJ1Y3RvcnMgaGF2ZSBuaWwgdmFsdWUKKyAg
ICAgICAgICAtIHJlcXVpcmVkIG9yIG9wdGlvbmFsIGNvbW1hbmQgcmV0dXJuIHBhcmFtZXRlcnMg
aGF2ZSBuaWwgdmFsdWVzCisgICAgICAgICAgLSByZXF1aXJlZCBvciBvcHRpb25hbCBldmVudCBw
YXJhbWV0ZXJzIGhhdmUgbmlsIHZhbHVlcworCisgICAgICAgIFRoZSBleGNlcHRpb25zIGluY2x1
ZGUgdGhlIG5hbWUgb2YgdGhlIGZpZWxkIHdoZW4gcG9zc2libGUuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamVjdGl2ZV9jLnB5OgorICAgICAgICAo
T2JqQ0dlbmVyYXRvci5pc190eXBlX29iamNfcG9pbnRlcl90eXBlKToKKyAgICAgICAgUHJvdmlk
ZSBhIHF1aWNrIGNoZWNrIHRvIHNlZSBpZiB0eXBlIHdvdWxkIGJlIGEgcG9pbnRlciBvciBub3QK
KyAgICAgICAgaW4gdGhlIE9iakMgQVBJLiBFbnVtcyBmb3IgZXhhbXBsZSBhcmUgbm90IHBvaW50
ZXJzIGluIHRoZSBBUEkKKyAgICAgICAgYmVjYXVzZSB3ZSBtYW5hZ2UgY29udmVydGluZyB0aGVt
IHRvL2Zyb20gc3RyaW5ncy4KKworICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4v
Z2VuZXJhdGVfb2JqZWN0aXZlX2NfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5
OgorICAgICAgICAoT2JqZWN0aXZlQ0NvbmZpZ3VyYXRpb25JbXBsZW1lbnRhdGlvbkdlbmVyYXRv
ci5fZ2VuZXJhdGVfc3VjY2Vzc19ibG9ja19mb3JfY29tbWFuZCk6CisgICAgICAgICogaW5zcGVj
dG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmplY3RpdmVfY19mcm9udGVuZF9kaXNwYXRj
aGVyX2ltcGxlbWVudGF0aW9uLnB5OgorICAgICAgICAoT2JqZWN0aXZlQ0Zyb250ZW5kRGlzcGF0
Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yLl9nZW5lcmF0ZV9ldmVudCk6CisgICAgICAgICog
aW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmplY3RpdmVfY190eXBlc19pbXBs
ZW1lbnRhdGlvbi5weToKKyAgICAgICAgKE9iamVjdGl2ZUNUeXBlc0ltcGxlbWVudGF0aW9uR2Vu
ZXJhdG9yLl9nZW5lcmF0ZV9pbml0X21ldGhvZF9mb3JfcmVxdWlyZWRfbWVtYmVycyk6CisgICAg
ICAgIChPYmplY3RpdmVDVHlwZXNJbXBsZW1lbnRhdGlvbkdlbmVyYXRvci5fZ2VuZXJhdGVfc2V0
dGVyX2Zvcl9tZW1iZXIpOgorICAgICAgICBUaHJvdyBleGNlcHRpb25zIHdoZW4gbmlsIHZhbHVl
cyBhcmUgZGlzYWxsb3dlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4
cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0OgorICAgICAg
ICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0aW9u
YWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0
b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9ldmVudHMtd2l0aC1vcHRpb25hbC1wYXJhbWV0ZXJz
Lmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVk
L2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdDoKKyAgICAg
ICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLW9i
amVjdC10eXBlLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2V4cGVjdGVkL3R5cGUtcmVxdWlyaW5nLXJ1bnRpbWUtY2FzdHMuanNvbi1yZXN1bHQ6CisgICAg
ICAgIFJlYmFzZWxpbmUgdGVzdHMgd2hpY2ggaW5jbHVkZSB0aGUgZXhjZXB0aW9uIHJhaXNlIGNh
bGxzLgorCisyMDE0LTEwLTMxICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogQUxURVJOQVRFX0RJU1BBVENIRVJTIExldCB0aGUg
ZnJvbnRlbmQga25vdyBhYm91dCBleHRyYSBhZ2VudHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODIzNgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmplY3RpdmVf
Yy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dl
bmVyYXRlX29iamVjdGl2ZV9jLnB5CmluZGV4IGU1MjA4NjkuLmNkMjVjMTIgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRl
X29iamVjdGl2ZV9jLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamVjdGl2ZV9jLnB5CkBAIC0yNDYsNiArMjQ2LDIwIEBA
IGNsYXNzIE9iakNHZW5lcmF0b3I6CiAgICAgICAgIHJldHVybiBOb25lCiAKICAgICBAc3RhdGlj
bWV0aG9kCisgICAgZGVmIGlzX3R5cGVfb2JqY19wb2ludGVyX3R5cGUoX3R5cGUpOgorICAgICAg
ICBpZiAoaXNpbnN0YW5jZShfdHlwZSwgQWxpYXNlZFR5cGUpKToKKyAgICAgICAgICAgIF90eXBl
ID0gX3R5cGUuYWxpYXNlZF90eXBlCisgICAgICAgIGlmIChpc2luc3RhbmNlKF90eXBlLCBQcmlt
aXRpdmVUeXBlKSk6CisgICAgICAgICAgICByZXR1cm4gX3R5cGUucmF3X25hbWUoKSBpbiBbJ3N0
cmluZycsICdhcnJheScsICdhbnknLCAnb2JqZWN0J10KKyAgICAgICAgaWYgKGlzaW5zdGFuY2Uo
X3R5cGUsIEVudW1UeXBlKSk6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYg
KGlzaW5zdGFuY2UoX3R5cGUsIE9iamVjdFR5cGUpKToKKyAgICAgICAgICAgIHJldHVybiBUcnVl
CisgICAgICAgIGlmIChpc2luc3RhbmNlKF90eXBlLCBBcnJheVR5cGUpKToKKyAgICAgICAgICAg
IHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBAc3RhdGljbWV0aG9kCiAg
ICAgZGVmIG9iamNfY2xhc3NfZm9yX3R5cGUoX3R5cGUpOgogICAgICAgICBpZiAoaXNpbnN0YW5j
ZShfdHlwZSwgQWxpYXNlZFR5cGUpKToKICAgICAgICAgICAgIF90eXBlID0gX3R5cGUuYWxpYXNl
ZF90eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvY29kZWdlbi9nZW5lcmF0ZV9vYmplY3RpdmVfY19iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVt
ZW50YXRpb24ucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9vYmplY3RpdmVfY19iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRp
b24ucHkKaW5kZXggMTVlOTc3Ni4uMzIzZWQ2MCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqZWN0aXZlX2NfYmFj
a2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamVjdGl2ZV9jX2JhY2tl
bmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQpAQCAtOTksOCArOTksNiBAQCBjbGFzcyBP
YmplY3RpdmVDQ29uZmlndXJhdGlvbkltcGxlbWVudGF0aW9uR2VuZXJhdG9yKEdlbmVyYXRvcik6
CiAgICAgZGVmIF9nZW5lcmF0ZV9zdWNjZXNzX2Jsb2NrX2Zvcl9jb21tYW5kKHNlbGYsIGRvbWFp
biwgY29tbWFuZCk6CiAgICAgICAgIGxpbmVzID0gW10KIAotICAgICAgICAjIEZJWE1FOiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTM4MjIxPiBXZWIgSW5zcGVjdG9yOiBPYmpDIFByb3RvY29sIElu
dGVyZmFjZXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbnMgZm9yIG5pbCBhcmd1bWVudHMKLQogICAg
ICAgICBpZiBjb21tYW5kLnJldHVybl9wYXJhbWV0ZXJzOgogICAgICAgICAgICAgc3VjY2Vzc19i
bG9ja19wYXJhbWV0ZXJzID0gW10KICAgICAgICAgICAgIGZvciBwYXJhbWV0ZXIgaW4gY29tbWFu
ZC5yZXR1cm5fcGFyYW1ldGVyczoKQEAgLTExMyw2ICsxMTEsMTcgQEAgY2xhc3MgT2JqZWN0aXZl
Q0NvbmZpZ3VyYXRpb25JbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihHZW5lcmF0b3IpOgogCiAgICAg
ICAgIGlmIGNvbW1hbmQucmV0dXJuX3BhcmFtZXRlcnM6CiAgICAgICAgICAgICBsaW5lcy5hcHBl
bmQoJyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzdWx0T2JqZWN0ID0gSW5zcGVj
dG9yT2JqZWN0OjpjcmVhdGUoKTsnKQorCisgICAgICAgICAgICByZXF1aXJlZF9wb2ludGVyX3Bh
cmFtZXRlcnMgPSBmaWx0ZXIobGFtYmRhIHBhcmFtZXRlcjogbm90IHBhcmFtZXRlci5pc19vcHRp
b25hbCBhbmQgT2JqQ0dlbmVyYXRvci5pc190eXBlX29iamNfcG9pbnRlcl90eXBlKHBhcmFtZXRl
ci50eXBlKSwgY29tbWFuZC5yZXR1cm5fcGFyYW1ldGVycykKKyAgICAgICAgICAgIGZvciBwYXJh
bWV0ZXIgaW4gcmVxdWlyZWRfcG9pbnRlcl9wYXJhbWV0ZXJzOgorICAgICAgICAgICAgICAgIHZh
cl9uYW1lID0gT2JqQ0dlbmVyYXRvci5pZGVudGlmaWVyX3RvX29iamNfaWRlbnRpZmllcihwYXJh
bWV0ZXIucGFyYW1ldGVyX25hbWUpCisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCcgICAg
ICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUEFSQU1FVEVSKCVzLCBAIiVzIik7JyAl
ICh2YXJfbmFtZSwgdmFyX25hbWUpKQorCisgICAgICAgICAgICBvcHRpb25hbF9wb2ludGVyX3Bh
cmFtZXRlcnMgPSBmaWx0ZXIobGFtYmRhIHBhcmFtZXRlcjogcGFyYW1ldGVyLmlzX29wdGlvbmFs
IGFuZCBPYmpDR2VuZXJhdG9yLmlzX3R5cGVfb2JqY19wb2ludGVyX3R5cGUocGFyYW1ldGVyLnR5
cGUpLCBjb21tYW5kLnJldHVybl9wYXJhbWV0ZXJzKQorICAgICAgICAgICAgZm9yIHBhcmFtZXRl
ciBpbiBvcHRpb25hbF9wb2ludGVyX3BhcmFtZXRlcnM6CisgICAgICAgICAgICAgICAgdmFyX25h
bWUgPSBPYmpDR2VuZXJhdG9yLmlkZW50aWZpZXJfdG9fb2JqY19pZGVudGlmaWVyKHBhcmFtZXRl
ci5wYXJhbWV0ZXJfbmFtZSkKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJyAgICAgICAg
VEhST1dfRVhDRVBUSU9OX0ZPUl9CQURfT1BUSU9OQUxfUEFSQU1FVEVSKCVzLCBAIiVzIik7JyAl
ICh2YXJfbmFtZSwgdmFyX25hbWUpKQorCiAgICAgICAgICAgICBmb3IgcGFyYW1ldGVyIGluIGNv
bW1hbmQucmV0dXJuX3BhcmFtZXRlcnM6CiAgICAgICAgICAgICAgICAga2V5ZWRfc2V0X21ldGhv
ZCA9IEdlbmVyYXRvci5rZXllZF9zZXRfbWV0aG9kX2Zvcl90eXBlKHBhcmFtZXRlci50eXBlKQog
ICAgICAgICAgICAgICAgIHZhcl9uYW1lID0gT2JqQ0dlbmVyYXRvci5pZGVudGlmaWVyX3RvX29i
amNfaWRlbnRpZmllcihwYXJhbWV0ZXIucGFyYW1ldGVyX25hbWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpl
Y3RpdmVfY19mcm9udGVuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqZWN0aXZl
X2NfZnJvbnRlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQppbmRleCBmMTNhZjJmLi41
NjcyZGI3IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvY29kZWdlbi9nZW5lcmF0ZV9vYmplY3RpdmVfY19mcm9udGVuZF9kaXNwYXRjaGVyX2ltcGxl
bWVudGF0aW9uLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9jb2RlZ2VuL2dlbmVyYXRlX29iamVjdGl2ZV9jX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1wbGVt
ZW50YXRpb24ucHkKQEAgLTEwMSw2ICsxMDEsMjAgQEAgY2xhc3MgT2JqZWN0aXZlQ0Zyb250ZW5k
RGlzcGF0Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yKEdlbmVyYXRvcik6CiAgICAgICAgIGxp
bmVzLmFwcGVuZCgnICAgIGlmICghZnJvbnRlbmRDaGFubmVsKScpCiAgICAgICAgIGxpbmVzLmFw
cGVuZCgnICAgICAgICByZXR1cm47JykKICAgICAgICAgbGluZXMuYXBwZW5kKCcnKQorCisgICAg
ICAgIHJlcXVpcmVkX3BvaW50ZXJfcGFyYW1ldGVycyA9IGZpbHRlcihsYW1iZGEgcGFyYW1ldGVy
OiBub3QgcGFyYW1ldGVyLmlzX29wdGlvbmFsIGFuZCBPYmpDR2VuZXJhdG9yLmlzX3R5cGVfb2Jq
Y19wb2ludGVyX3R5cGUocGFyYW1ldGVyLnR5cGUpLCBldmVudC5ldmVudF9wYXJhbWV0ZXJzKQor
ICAgICAgICBmb3IgcGFyYW1ldGVyIGluIHJlcXVpcmVkX3BvaW50ZXJfcGFyYW1ldGVyczoKKyAg
ICAgICAgICAgIHZhcl9uYW1lID0gT2JqQ0dlbmVyYXRvci5pZGVudGlmaWVyX3RvX29iamNfaWRl
bnRpZmllcihwYXJhbWV0ZXIucGFyYW1ldGVyX25hbWUpCisgICAgICAgICAgICBsaW5lcy5hcHBl
bmQoJyAgICBUSFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVEX1BBUkFNRVRFUiglcywgQCIlcyIp
OycgJSAodmFyX25hbWUsIHZhcl9uYW1lKSkKKworICAgICAgICBvcHRpb25hbF9wb2ludGVyX3Bh
cmFtZXRlcnMgPSBmaWx0ZXIobGFtYmRhIHBhcmFtZXRlcjogcGFyYW1ldGVyLmlzX29wdGlvbmFs
IGFuZCBPYmpDR2VuZXJhdG9yLmlzX3R5cGVfb2JqY19wb2ludGVyX3R5cGUocGFyYW1ldGVyLnR5
cGUpLCBldmVudC5ldmVudF9wYXJhbWV0ZXJzKQorICAgICAgICBmb3IgcGFyYW1ldGVyIGluIG9w
dGlvbmFsX3BvaW50ZXJfcGFyYW1ldGVyczoKKyAgICAgICAgICAgIHZhcl9uYW1lID0gT2JqQ0dl
bmVyYXRvci5pZGVudGlmaWVyX3RvX29iamNfaWRlbnRpZmllcihwYXJhbWV0ZXIucGFyYW1ldGVy
X25hbWUpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJyAgICBUSFJPV19FWENFUFRJT05fRk9S
X0JBRF9PUFRJT05BTF9QQVJBTUVURVIoJXMsIEAiJXMiKTsnICUgKHZhcl9uYW1lLCB2YXJfbmFt
ZSkpCisKKyAgICAgICAgaWYgcmVxdWlyZWRfcG9pbnRlcl9wYXJhbWV0ZXJzIG9yIG9wdGlvbmFs
X3BvaW50ZXJfcGFyYW1ldGVyczoKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnJykKKwogICAg
ICAgICBsaW5lcy5hcHBlbmQoJyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBqc29uTWVzc2Fn
ZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7JykKICAgICAgICAgbGluZXMuYXBwZW5kKCcg
ICAganNvbk1lc3NhZ2UtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoIm1ldGhvZCIpLCBBU0NJSUxp
dGVyYWwoIiVzLiVzIikpOycgJSAoZG9tYWluLmRvbWFpbl9uYW1lLCBldmVudC5ldmVudF9uYW1l
KSkKICAgICAgICAgaWYgZXZlbnQuZXZlbnRfcGFyYW1ldGVyczoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamVj
dGl2ZV9jX3R5cGVzX2ltcGxlbWVudGF0aW9uLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqZWN0aXZlX2NfdHlwZXNfaW1wbGVt
ZW50YXRpb24ucHkKaW5kZXggYzZkNTAxMS4uNjE2OWM2ZiAxMDA3NTUKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqZWN0aXZl
X2NfdHlwZXNfaW1wbGVtZW50YXRpb24ucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqZWN0aXZlX2NfdHlwZXNfaW1wbGVt
ZW50YXRpb24ucHkKQEAgLTEwNSw3ICsxMDUsNiBAQCBjbGFzcyBPYmplY3RpdmVDVHlwZXNJbXBs
ZW1lbnRhdGlvbkdlbmVyYXRvcihHZW5lcmF0b3IpOgogICAgICAgICAgICAgdmFyX25hbWUgPSBP
YmpDR2VuZXJhdG9yLmlkZW50aWZpZXJfdG9fb2JqY19pZGVudGlmaWVyKG1lbWJlci5tZW1iZXJf
bmFtZSkKICAgICAgICAgICAgIHBhaXJzLmFwcGVuZCgnJXM6KCVzKSVzJyAlICh2YXJfbmFtZSwg
b2JqY190eXBlLCB2YXJfbmFtZSkpCiAgICAgICAgIHBhaXJzWzBdID0gdWNmaXJzdChwYWlyc1sw
XSkKLSAgICAgICAgIyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzODIyMT4gV2ViIElu
c3BlY3RvcjogT2JqQyBQcm90b2NvbCBJbnRlcmZhY2VzIHNob3VsZCB0aHJvdyBleGNlcHRpb25z
IGZvciBuaWwgYXJndW1lbnRzCiAgICAgICAgIGxpbmVzID0gW10KICAgICAgICAgbGluZXMuYXBw
ZW5kKCctIChpbnN0YW5jZXR5cGUpaW5pdFdpdGglczsnICUgJyAnLmpvaW4ocGFpcnMpKQogICAg
ICAgICBsaW5lcy5hcHBlbmQoJ3snKQpAQCAtMTEzLDkgKzExMiwxOCBAQCBjbGFzcyBPYmplY3Rp
dmVDVHlwZXNJbXBsZW1lbnRhdGlvbkdlbmVyYXRvcihHZW5lcmF0b3IpOgogICAgICAgICBsaW5l
cy5hcHBlbmQoJyAgICBpZiAoIXNlbGYpJykKICAgICAgICAgbGluZXMuYXBwZW5kKCcgICAgICAg
IHJldHVybiBuaWw7JykKICAgICAgICAgbGluZXMuYXBwZW5kKCcnKQorCisgICAgICAgIHJlcXVp
cmVkX3BvaW50ZXJfbWVtYmVycyA9IGZpbHRlcihsYW1iZGEgbWVtYmVyOiBPYmpDR2VuZXJhdG9y
LmlzX3R5cGVfb2JqY19wb2ludGVyX3R5cGUobWVtYmVyLnR5cGUpLCByZXF1aXJlZF9tZW1iZXJz
KQorICAgICAgICBpZiByZXF1aXJlZF9wb2ludGVyX21lbWJlcnM6CisgICAgICAgICAgICBmb3Ig
bWVtYmVyIGluIHJlcXVpcmVkX3BvaW50ZXJfbWVtYmVyczoKKyAgICAgICAgICAgICAgICB2YXJf
bmFtZSA9IE9iakNHZW5lcmF0b3IuaWRlbnRpZmllcl90b19vYmpjX2lkZW50aWZpZXIobWVtYmVy
Lm1lbWJlcl9uYW1lKQorICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnICAgIFRIUk9XX0VY
Q0VQVElPTl9GT1JfUkVRVUlSRURfUFJPUEVSVFkoJXMsIEAiJXMiKTsnICUgKHZhcl9uYW1lLCB2
YXJfbmFtZSkpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJycpCisKICAgICAgICAgZm9yIG1l
bWJlciBpbiByZXF1aXJlZF9tZW1iZXJzOgogICAgICAgICAgICAgdmFyX25hbWUgPSBPYmpDR2Vu
ZXJhdG9yLmlkZW50aWZpZXJfdG9fb2JqY19pZGVudGlmaWVyKG1lbWJlci5tZW1iZXJfbmFtZSkK
ICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnICAgIHNlbGYuJXMgPSAlczsnICUgKHZhcl9uYW1l
LCB2YXJfbmFtZSkpCisKICAgICAgICAgbGluZXMuYXBwZW5kKCcnKQogICAgICAgICBsaW5lcy5h
cHBlbmQoJyAgICByZXR1cm4gc2VsZjsnKQogICAgICAgICBsaW5lcy5hcHBlbmQoJ30nKQpAQCAt
MTI2LDcgKzEzNCw2IEBAIGNsYXNzIE9iamVjdGl2ZUNUeXBlc0ltcGxlbWVudGF0aW9uR2VuZXJh
dG9yKEdlbmVyYXRvcik6CiAgICAgICAgIHZhcl9uYW1lID0gT2JqQ0dlbmVyYXRvci5pZGVudGlm
aWVyX3RvX29iamNfaWRlbnRpZmllcihtZW1iZXIubWVtYmVyX25hbWUpCiAgICAgICAgIHNldHRl
cl9tZXRob2QgPSBPYmpDR2VuZXJhdG9yLm9iamNfc2V0dGVyX21ldGhvZF9mb3JfbWVtYmVyKGRl
Y2xhcmF0aW9uLCBtZW1iZXIpCiAgICAgICAgIGNvbnZlcnNpb25fZXhwcmVzc2lvbiA9IE9iakNH
ZW5lcmF0b3Iub2JqY190b19wcm90b2NvbF9leHByZXNzaW9uX2Zvcl9tZW1iZXIoZGVjbGFyYXRp
b24sIG1lbWJlciwgdmFyX25hbWUpCi0gICAgICAgICMgRklYTUU6IDxodHRwczovL3dlYmtpdC5v
cmcvYi8xMzgyMjE+IFdlYiBJbnNwZWN0b3I6IE9iakMgUHJvdG9jb2wgSW50ZXJmYWNlcyBzaG91
bGQgdGhyb3cgZXhjZXB0aW9ucyBmb3IgbmlsIGFyZ3VtZW50cwogICAgICAgICBsaW5lcyA9IFtd
CiAgICAgICAgIGxpbmVzLmFwcGVuZCgnLSAodm9pZClzZXQlczooJXMpJXMnICUgKHVjZmlyc3Qo
dmFyX25hbWUpLCBvYmpjX3R5cGUsIHZhcl9uYW1lKSkKICAgICAgICAgbGluZXMuYXBwZW5kKCd7
JykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9leHBlY3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29uLXJlc3VsdCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9j
b21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29uLXJlc3VsdAppbmRleCA3ODNmMmQ5Li44
MmE3YzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1
bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4
cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0CkBAIC0xMDY1
LDYgKzEwNjUsMTEgQEAgdm9pZCBPYmpDSW5zcGVjdG9yRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hl
cjo6ZXhlY3V0ZVNRTFN5bmNPcHRpb25hbFJldHVyblZhbHVlcygKIAogICAgIGlkIHN1Y2Nlc3ND
YWxsYmFjayA9IF4oTlNBcnJheS8qPE5TU3RyaW5nPiovICoqY29sdW1uTmFtZXMsIE5TU3RyaW5n
ICoqbm90ZXMsIGRvdWJsZSAqdGltZXN0YW1wLCBSV0lQcm90b2NvbEpTT05PYmplY3QgKip2YWx1
ZXMsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqKnBheWxvYWQsIE5TSW50ZWdlciAqZGF0YWJhc2VJ
ZCwgUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yICoqc3FsRXJyb3IsIFJXSVByb3RvY29sRGF0YWJh
c2VQcmltYXJ5Q29sb3JzICpzY3JlZW5Db2xvciwgUldJUHJvdG9jb2xEYXRhYmFzZUV4ZWN1dGVT
UUxTeW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXNQcmludENvbG9yICpwcmludENvbG9yKSB7CiAgICAg
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdE9iamVjdCA9IEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCk7CisgICAgICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfQkFEX09QVElPTkFMX1BB
UkFNRVRFUihjb2x1bW5OYW1lcywgQCJjb2x1bW5OYW1lcyIpOworICAgICAgICBUSFJPV19FWENF
UFRJT05fRk9SX0JBRF9PUFRJT05BTF9QQVJBTUVURVIobm90ZXMsIEAibm90ZXMiKTsKKyAgICAg
ICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9CQURfT1BUSU9OQUxfUEFSQU1FVEVSKHZhbHVlcywgQCJ2
YWx1ZXMiKTsKKyAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9CQURfT1BUSU9OQUxfUEFSQU1F
VEVSKHBheWxvYWQsIEAicGF5bG9hZCIpOworICAgICAgICBUSFJPV19FWENFUFRJT05fRk9SX0JB
RF9PUFRJT05BTF9QQVJBTUVURVIoc3FsRXJyb3IsIEAic3FsRXJyb3IiKTsKICAgICAgICAgaWYg
KGNvbHVtbk5hbWVzKQogICAgICAgICAgICAgcmVzdWx0T2JqZWN0LT5zZXRBcnJheShBU0NJSUxp
dGVyYWwoImNvbHVtbk5hbWVzIiksIGluc3BlY3RvclN0cmluZ0FycmF5KCpjb2x1bW5OYW1lcykp
OwogICAgICAgICBpZiAobm90ZXMpCkBAIC0xMTAwLDYgKzExMDUsMTEgQEAgdm9pZCBPYmpDSW5z
cGVjdG9yRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlcjo6ZXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxS
ZXR1cm5WYWx1ZXMKIAogICAgIGlkIHN1Y2Nlc3NDYWxsYmFjayA9IF4oTlNBcnJheS8qPE5TU3Ry
aW5nPiovICoqY29sdW1uTmFtZXMsIE5TU3RyaW5nICoqbm90ZXMsIGRvdWJsZSAqdGltZXN0YW1w
LCBSV0lQcm90b2NvbEpTT05PYmplY3QgKip2YWx1ZXMsIFJXSVByb3RvY29sSlNPTk9iamVjdCAq
KnBheWxvYWQsIE5TSW50ZWdlciAqZGF0YWJhc2VJZCwgUldJUHJvdG9jb2xEYXRhYmFzZUVycm9y
ICoqc3FsRXJyb3IsIFJXSVByb3RvY29sRGF0YWJhc2VQcmltYXJ5Q29sb3JzICpzY3JlZW5Db2xv
ciwgUldJUHJvdG9jb2xEYXRhYmFzZUV4ZWN1dGVTUUxBc3luY09wdGlvbmFsUmV0dXJuVmFsdWVz
UHJpbnRDb2xvciAqcHJpbnRDb2xvcikgewogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiByZXN1bHRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICBUSFJP
V19FWENFUFRJT05fRk9SX0JBRF9PUFRJT05BTF9QQVJBTUVURVIoY29sdW1uTmFtZXMsIEAiY29s
dW1uTmFtZXMiKTsKKyAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9CQURfT1BUSU9OQUxfUEFS
QU1FVEVSKG5vdGVzLCBAIm5vdGVzIik7CisgICAgICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfQkFE
X09QVElPTkFMX1BBUkFNRVRFUih2YWx1ZXMsIEAidmFsdWVzIik7CisgICAgICAgIFRIUk9XX0VY
Q0VQVElPTl9GT1JfQkFEX09QVElPTkFMX1BBUkFNRVRFUihwYXlsb2FkLCBAInBheWxvYWQiKTsK
KyAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9CQURfT1BUSU9OQUxfUEFSQU1FVEVSKHNxbEVy
cm9yLCBAInNxbEVycm9yIik7CiAgICAgICAgIGlmIChjb2x1bW5OYW1lcykKICAgICAgICAgICAg
IHJlc3VsdE9iamVjdC0+c2V0QXJyYXkoQVNDSUlMaXRlcmFsKCJjb2x1bW5OYW1lcyIpLCBpbnNw
ZWN0b3JTdHJpbmdBcnJheSgqY29sdW1uTmFtZXMpKTsKICAgICAgICAgaWYgKG5vdGVzKQpAQCAt
MTEzNSw2ICsxMTQ1LDExIEBAIHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFja2VuZERpc3Bh
dGNoZXI6OmV4ZWN1dGVTUUxTeW5jKGxvbmcgY2FsbElkLCBpbnQgaW5fCiAKICAgICBpZCBzdWNj
ZXNzQ2FsbGJhY2sgPSBeKE5TQXJyYXkvKjxOU1N0cmluZz4qLyAqY29sdW1uTmFtZXMsIE5TU3Ry
aW5nICpub3RlcywgZG91YmxlIHRpbWVzdGFtcCwgUldJUHJvdG9jb2xKU09OT2JqZWN0ICp2YWx1
ZXMsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqcGF5bG9hZCwgTlNJbnRlZ2VyIGRhdGFiYXNlSWQs
IFJXSVByb3RvY29sRGF0YWJhc2VFcnJvciAqc3FsRXJyb3IsIFJXSVByb3RvY29sRGF0YWJhc2VQ
cmltYXJ5Q29sb3JzIHNjcmVlbkNvbG9yLCBSV0lQcm90b2NvbERhdGFiYXNlRXhlY3V0ZVNRTFN5
bmNQcmludENvbG9yIHByaW50Q29sb3IpIHsKICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gcmVzdWx0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgVEhS
T1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QQVJBTUVURVIoY29sdW1uTmFtZXMsIEAiY29sdW1u
TmFtZXMiKTsKKyAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QQVJBTUVURVIo
bm90ZXMsIEAibm90ZXMiKTsKKyAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9Q
QVJBTUVURVIodmFsdWVzLCBAInZhbHVlcyIpOworICAgICAgICBUSFJPV19FWENFUFRJT05fRk9S
X1JFUVVJUkVEX1BBUkFNRVRFUihwYXlsb2FkLCBAInBheWxvYWQiKTsKKyAgICAgICAgVEhST1df
RVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QQVJBTUVURVIoc3FsRXJyb3IsIEAic3FsRXJyb3IiKTsK
ICAgICAgICAgcmVzdWx0T2JqZWN0LT5zZXRBcnJheShBU0NJSUxpdGVyYWwoImNvbHVtbk5hbWVz
IiksIGluc3BlY3RvclN0cmluZ0FycmF5KGNvbHVtbk5hbWVzKSk7CiAgICAgICAgIHJlc3VsdE9i
amVjdC0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgibm90ZXMiKSwgbm90ZXMpOwogICAgICAgICBy
ZXN1bHRPYmplY3QtPnNldERvdWJsZShBU0NJSUxpdGVyYWwoInRpbWVzdGFtcCIpLCB0aW1lc3Rh
bXApOwpAQCAtMTE2MSw2ICsxMTc2LDExIEBAIHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFj
a2VuZERpc3BhdGNoZXI6OmV4ZWN1dGVTUUxBc3luYyhsb25nIGNhbGxJZCwgaW50IGluCiAKICAg
ICBpZCBzdWNjZXNzQ2FsbGJhY2sgPSBeKE5TQXJyYXkvKjxOU1N0cmluZz4qLyAqY29sdW1uTmFt
ZXMsIE5TU3RyaW5nICpub3RlcywgZG91YmxlIHRpbWVzdGFtcCwgUldJUHJvdG9jb2xKU09OT2Jq
ZWN0ICp2YWx1ZXMsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqcGF5bG9hZCwgTlNJbnRlZ2VyIGRh
dGFiYXNlSWQsIFJXSVByb3RvY29sRGF0YWJhc2VFcnJvciAqc3FsRXJyb3IsIFJXSVByb3RvY29s
RGF0YWJhc2VQcmltYXJ5Q29sb3JzIHNjcmVlbkNvbG9yLCBSV0lQcm90b2NvbERhdGFiYXNlRXhl
Y3V0ZVNRTEFzeW5jUHJpbnRDb2xvciBwcmludENvbG9yKSB7CiAgICAgICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IHJlc3VsdE9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Cisg
ICAgICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUEFSQU1FVEVSKGNvbHVtbk5hbWVz
LCBAImNvbHVtbk5hbWVzIik7CisgICAgICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURf
UEFSQU1FVEVSKG5vdGVzLCBAIm5vdGVzIik7CisgICAgICAgIFRIUk9XX0VYQ0VQVElPTl9GT1Jf
UkVRVUlSRURfUEFSQU1FVEVSKHZhbHVlcywgQCJ2YWx1ZXMiKTsKKyAgICAgICAgVEhST1dfRVhD
RVBUSU9OX0ZPUl9SRVFVSVJFRF9QQVJBTUVURVIocGF5bG9hZCwgQCJwYXlsb2FkIik7CisgICAg
ICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUEFSQU1FVEVSKHNxbEVycm9yLCBAInNx
bEVycm9yIik7CiAgICAgICAgIHJlc3VsdE9iamVjdC0+c2V0QXJyYXkoQVNDSUlMaXRlcmFsKCJj
b2x1bW5OYW1lcyIpLCBpbnNwZWN0b3JTdHJpbmdBcnJheShjb2x1bW5OYW1lcykpOwogICAgICAg
ICByZXN1bHRPYmplY3QtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoIm5vdGVzIiksIG5vdGVzKTsK
ICAgICAgICAgcmVzdWx0T2JqZWN0LT5zZXREb3VibGUoQVNDSUlMaXRlcmFsKCJ0aW1lc3RhbXAi
KSwgdGltZXN0YW1wKTsKQEAgLTE1NTYsNiArMTU3Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNw
ZWN0b3I7CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCisgICAgVEhST1df
RVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QUk9QRVJUWShtZXNzYWdlLCBAIm1lc3NhZ2UiKTsKKwog
ICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2U7CiAgICAgc2VsZi5jb2RlID0gY29kZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4
cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29u
LXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9l
eHBlY3RlZC9jb21tYW5kcy13aXRoLW9wdGlvbmFsLWNhbGwtcmV0dXJuLXBhcmFtZXRlcnMuanNv
bi1yZXN1bHQKaW5kZXggMDBmMzJmMS4uMGU3NDdmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgt
b3B0aW9uYWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvY29tbWFuZHMt
d2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CkBAIC05NTQs
NiArOTU0LDExIEBAIHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6
OmV4ZWN1dGVBbGxPcHRpb25hbFBhcmFtZXRlcnMobG9uZyBjCiAKICAgICBpZCBzdWNjZXNzQ2Fs
bGJhY2sgPSBeKE5TQXJyYXkvKjxOU1N0cmluZz4qLyAqKmNvbHVtbk5hbWVzLCBOU1N0cmluZyAq
Km5vdGVzLCBkb3VibGUgKnRpbWVzdGFtcCwgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqdmFsdWVz
LCBSV0lQcm90b2NvbEpTT05PYmplY3QgKipwYXlsb2FkLCBOU0ludGVnZXIgKmRhdGFiYXNlSWQs
IFJXSVByb3RvY29sRGF0YWJhc2VFcnJvciAqKnNxbEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNl
UHJpbWFyeUNvbG9ycyAqc2NyZWVuQ29sb3IsIFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlQWxs
T3B0aW9uYWxQYXJhbWV0ZXJzUHJpbnRDb2xvciAqcHJpbnRDb2xvcikgewogICAgICAgICBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiByZXN1bHRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpOworICAgICAgICBUSFJPV19FWENFUFRJT05fRk9SX0JBRF9PUFRJT05BTF9QQVJBTUVURVIo
Y29sdW1uTmFtZXMsIEAiY29sdW1uTmFtZXMiKTsKKyAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZP
Ul9CQURfT1BUSU9OQUxfUEFSQU1FVEVSKG5vdGVzLCBAIm5vdGVzIik7CisgICAgICAgIFRIUk9X
X0VYQ0VQVElPTl9GT1JfQkFEX09QVElPTkFMX1BBUkFNRVRFUih2YWx1ZXMsIEAidmFsdWVzIik7
CisgICAgICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfQkFEX09QVElPTkFMX1BBUkFNRVRFUihwYXls
b2FkLCBAInBheWxvYWQiKTsKKyAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9CQURfT1BUSU9O
QUxfUEFSQU1FVEVSKHNxbEVycm9yLCBAInNxbEVycm9yIik7CiAgICAgICAgIGlmIChjb2x1bW5O
YW1lcykKICAgICAgICAgICAgIHJlc3VsdE9iamVjdC0+c2V0QXJyYXkoQVNDSUlMaXRlcmFsKCJj
b2x1bW5OYW1lcyIpLCBpbnNwZWN0b3JTdHJpbmdBcnJheSgqY29sdW1uTmFtZXMpKTsKICAgICAg
ICAgaWYgKG5vdGVzKQpAQCAtMTAxNCw2ICsxMDE5LDExIEBAIHZvaWQgT2JqQ0luc3BlY3RvckRh
dGFiYXNlQmFja2VuZERpc3BhdGNoZXI6OmV4ZWN1dGVOb09wdGlvbmFsUGFyYW1ldGVycyhsb25n
IGNhCiAKICAgICBpZCBzdWNjZXNzQ2FsbGJhY2sgPSBeKE5TQXJyYXkvKjxOU1N0cmluZz4qLyAq
Y29sdW1uTmFtZXMsIE5TU3RyaW5nICpub3RlcywgZG91YmxlIHRpbWVzdGFtcCwgUldJUHJvdG9j
b2xKU09OT2JqZWN0ICp2YWx1ZXMsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqcGF5bG9hZCwgTlNJ
bnRlZ2VyIGRhdGFiYXNlSWQsIFJXSVByb3RvY29sRGF0YWJhc2VFcnJvciAqc3FsRXJyb3IsIFJX
SVByb3RvY29sRGF0YWJhc2VQcmltYXJ5Q29sb3JzIHNjcmVlbkNvbG9yLCBSV0lQcm90b2NvbERh
dGFiYXNlRXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJzUHJpbnRDb2xvciBwcmludENvbG9yKSB7
CiAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdE9iamVjdCA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CisgICAgICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURf
UEFSQU1FVEVSKGNvbHVtbk5hbWVzLCBAImNvbHVtbk5hbWVzIik7CisgICAgICAgIFRIUk9XX0VY
Q0VQVElPTl9GT1JfUkVRVUlSRURfUEFSQU1FVEVSKG5vdGVzLCBAIm5vdGVzIik7CisgICAgICAg
IFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUEFSQU1FVEVSKHZhbHVlcywgQCJ2YWx1ZXMi
KTsKKyAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QQVJBTUVURVIocGF5bG9h
ZCwgQCJwYXlsb2FkIik7CisgICAgICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUEFS
QU1FVEVSKHNxbEVycm9yLCBAInNxbEVycm9yIik7CiAgICAgICAgIHJlc3VsdE9iamVjdC0+c2V0
QXJyYXkoQVNDSUlMaXRlcmFsKCJjb2x1bW5OYW1lcyIpLCBpbnNwZWN0b3JTdHJpbmdBcnJheShj
b2x1bW5OYW1lcykpOwogICAgICAgICByZXN1bHRPYmplY3QtPnNldFN0cmluZyhBU0NJSUxpdGVy
YWwoIm5vdGVzIiksIG5vdGVzKTsKICAgICAgICAgcmVzdWx0T2JqZWN0LT5zZXREb3VibGUoQVND
SUlMaXRlcmFsKCJ0aW1lc3RhbXAiKSwgdGltZXN0YW1wKTsKQEAgLTE0MTQsNiArMTQyNCw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1
cm4gbmlsOwogCisgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QUk9QRVJUWShtZXNz
YWdlLCBAIm1lc3NhZ2UiKTsKKwogICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2U7CiAgICAgc2Vs
Zi5jb2RlID0gY29kZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2V2ZW50cy13aXRoLW9wdGlvbmFsLXBhcmFtZXRl
cnMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZXhwZWN0ZWQvZXZlbnRzLXdpdGgtb3B0aW9uYWwtcGFyYW1ldGVycy5qc29uLXJlc3Vs
dAppbmRleCBhNTA1Y2ZiLi4yNGMyYTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZXZlbnRzLXdpdGgtb3B0aW9uYWwt
cGFyYW1ldGVycy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZXZlbnRzLXdpdGgtb3B0aW9uYWwtcGFyYW1ldGVy
cy5qc29uLXJlc3VsdApAQCAtODc5LDYgKzg3OSwxNCBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVj
dG9yOwogICAgIGlmICghZnJvbnRlbmRDaGFubmVsKQogICAgICAgICByZXR1cm47CiAKKyAgICBU
SFJPV19FWENFUFRJT05fRk9SX0JBRF9PUFRJT05BTF9QQVJBTUVURVIoY29sdW1uTmFtZXMsIEAi
Y29sdW1uTmFtZXMiKTsKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX0JBRF9PUFRJT05BTF9QQVJB
TUVURVIobm90ZXMsIEAibm90ZXMiKTsKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX0JBRF9PUFRJ
T05BTF9QQVJBTUVURVIodmFsdWVzLCBAInZhbHVlcyIpOworICAgIFRIUk9XX0VYQ0VQVElPTl9G
T1JfQkFEX09QVElPTkFMX1BBUkFNRVRFUihwYXlsb2FkLCBAInBheWxvYWQiKTsKKyAgICBUSFJP
V19FWENFUFRJT05fRk9SX0JBRF9PUFRJT05BTF9QQVJBTUVURVIoc3FsRXJyb3IsIEAic3FsRXJy
b3IiKTsKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX0JBRF9PUFRJT05BTF9QQVJBTUVURVIoc2Ny
ZWVuQ29sb3IsIEAic2NyZWVuQ29sb3IiKTsKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX0JBRF9P
UFRJT05BTF9QQVJBTUVURVIocHJpbnRDb2xvciwgQCJwcmludENvbG9yIik7CisKICAgICBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBqc29uTWVzc2FnZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCk7CiAgICAganNvbk1lc3NhZ2UtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoIm1ldGhvZCIpLCBB
U0NJSUxpdGVyYWwoIkRhdGFiYXNlLmRpZEV4ZWN1dGVPcHRpb25hbFBhcmFtZXRlcnMiKSk7CiAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcGFyYW1zT2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0
OjpjcmVhdGUoKTsKQEAgLTkwOCw2ICs5MTYsMTQgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3Rv
cjsKICAgICBpZiAoIWZyb250ZW5kQ2hhbm5lbCkKICAgICAgICAgcmV0dXJuOwogCisgICAgVEhS
T1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QQVJBTUVURVIoY29sdW1uTmFtZXMsIEAiY29sdW1u
TmFtZXMiKTsKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVEX1BBUkFNRVRFUihub3Rl
cywgQCJub3RlcyIpOworICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUEFSQU1FVEVS
KHZhbHVlcywgQCJ2YWx1ZXMiKTsKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVEX1BB
UkFNRVRFUihwYXlsb2FkLCBAInBheWxvYWQiKTsKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX1JF
UVVJUkVEX1BBUkFNRVRFUihzcWxFcnJvciwgQCJzcWxFcnJvciIpOworICAgIFRIUk9XX0VYQ0VQ
VElPTl9GT1JfUkVRVUlSRURfUEFSQU1FVEVSKHNjcmVlbkNvbG9yLCBAInNjcmVlbkNvbG9yIik7
CisgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QQVJBTUVURVIocHJpbnRDb2xvciwg
QCJwcmludENvbG9yIik7CisKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBqc29uTWVzc2Fn
ZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAganNvbk1lc3NhZ2UtPnNldFN0cmlu
ZyhBU0NJSUxpdGVyYWwoIm1ldGhvZCIpLCBBU0NJSUxpdGVyYWwoIkRhdGFiYXNlLmRpZEV4ZWN1
dGVOb09wdGlvbmFsUGFyYW1ldGVycyIpKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBw
YXJhbXNPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwpAQCAtMTAzNSw2ICsxMDUx
LDggQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKICAgICBpZiAoIXNlbGYpCiAgICAgICAg
IHJldHVybiBuaWw7CiAKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVEX1BST1BFUlRZ
KG1lc3NhZ2UsIEAibWVzc2FnZSIpOworCiAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZTsKICAg
ICBzZWxmLmNvZGUgPSBjb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZl
YXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1
YXJkcy5qc29uLXJlc3VsdAppbmRleCBjZTAyM2M0Li45NWZmZWQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJh
dGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1k
b21haW5zLXdpdGgtZmVhdHVyZS1ndWFyZHMuanNvbi1yZXN1bHQKQEAgLTExMTAsNiArMTExMCw4
IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgaWYgKCFzZWxmKQogICAgICAgICBy
ZXR1cm4gbmlsOwogCisgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QUk9QRVJUWSht
ZXNzYWdlLCBAIm1lc3NhZ2UiKTsKKwogICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2U7CiAgICAg
c2VsZi5jb2RlID0gY29kZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tb2JqZWN0LXR5
cGUuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5qc29uLXJlc3VsdApp
bmRleCAwMjllZjhhLi5jODIyZWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1vYmplY3Qt
dHlwZS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5qc29uLXJl
c3VsdApAQCAtMTMzNyw2ICsxMzM3LDggQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKICAg
ICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKKyAgICBUSFJPV19FWENFUFRJT05f
Rk9SX1JFUVVJUkVEX1BST1BFUlRZKG1lc3NhZ2UsIEAibWVzc2FnZSIpOworCiAgICAgc2VsZi5t
ZXNzYWdlID0gbWVzc2FnZTsKICAgICBzZWxmLmNvZGUgPSBjb2RlOwogCkBAIC0xNDM3LDYgKzE0
MzksMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKICAgICBpZiAoIXNlbGYpCiAgICAg
ICAgIHJldHVybiBuaWw7CiAKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVEX1BST1BF
UlRZKGNvbHVtbk5hbWVzLCBAImNvbHVtbk5hbWVzIik7CisgICAgVEhST1dfRVhDRVBUSU9OX0ZP
Ul9SRVFVSVJFRF9QUk9QRVJUWShub3RlcywgQCJub3RlcyIpOworICAgIFRIUk9XX0VYQ0VQVElP
Tl9GT1JfUkVRVUlSRURfUFJPUEVSVFkodmFsdWVzLCBAInZhbHVlcyIpOworICAgIFRIUk9XX0VY
Q0VQVElPTl9GT1JfUkVRVUlSRURfUFJPUEVSVFkocGF5bG9hZCwgQCJwYXlsb2FkIik7CisgICAg
VEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9QUk9QRVJUWShlcnJvciwgQCJlcnJvciIpOwor
CiAgICAgc2VsZi5jb2x1bW5OYW1lcyA9IGNvbHVtbk5hbWVzOwogICAgIHNlbGYubm90ZXMgPSBu
b3RlczsKICAgICBzZWxmLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDsKQEAgLTE1MTcsNiArMTUyNSwx
MiBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogICAgIGlmICghc2VsZikKICAgICAgICAg
cmV0dXJuIG5pbDsKIAorICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUFJPUEVSVFko
aW50ZWdlciwgQCJpbnRlZ2VyIik7CisgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9Q
Uk9QRVJUWShhcnJheSwgQCJhcnJheSIpOworICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlS
RURfUFJPUEVSVFkoc3RyaW5nLCBAInN0cmluZyIpOworICAgIFRIUk9XX0VYQ0VQVElPTl9GT1Jf
UkVRVUlSRURfUFJPUEVSVFkodmFsdWUsIEAidmFsdWUiKTsKKyAgICBUSFJPV19FWENFUFRJT05f
Rk9SX1JFUVVJUkVEX1BST1BFUlRZKG9iamVjdCwgQCJvYmplY3QiKTsKKwogICAgIHNlbGYuaW50
ZWdlciA9IGludGVnZXI7CiAgICAgc2VsZi5hcnJheSA9IGFycmF5OwogICAgIHNlbGYuc3RyaW5n
ID0gc3RyaW5nOwpAQCAtMTU5MSw2ICsxNjA1LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0
b3I7CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCisgICAgVEhST1dfRVhD
RVBUSU9OX0ZPUl9SRVFVSVJFRF9QUk9QRVJUWShjb2x1bW5OYW1lcywgQCJjb2x1bW5OYW1lcyIp
OworICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUFJPUEVSVFkobm90ZXMsIEAibm90
ZXMiKTsKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVEX1BST1BFUlRZKHZhbHVlcywg
QCJ2YWx1ZXMiKTsKKyAgICBUSFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVEX1BST1BFUlRZKHBh
eWxvYWQsIEAicGF5bG9hZCIpOworICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURfUFJP
UEVSVFkoZXJyb3IsIEAiZXJyb3IiKTsKKwogICAgIHNlbGYuY29sdW1uTmFtZXMgPSBjb2x1bW5O
YW1lczsKICAgICBzZWxmLm5vdGVzID0gbm90ZXM7CiAgICAgc2VsZi50aW1lc3RhbXAgPSB0aW1l
c3RhbXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1yZXF1aXJpbmctcnVudGltZS1jYXN0cy5qc29uLXJlc3Vs
dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3Rl
ZC90eXBlLXJlcXVpcmluZy1ydW50aW1lLWNhc3RzLmpzb24tcmVzdWx0CmluZGV4IGFjYjVjNTMu
LmE4MjdhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLXJlcXVpcmluZy1ydW50aW1lLWNhc3RzLmpzb24tcmVz
dWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9l
eHBlY3RlZC90eXBlLXJlcXVpcmluZy1ydW50aW1lLWNhc3RzLmpzb24tcmVzdWx0CkBAIC0xMjY1
LDYgKzEyNjUsOSBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogICAgIGlmICghc2VsZikK
ICAgICAgICAgcmV0dXJuIG5pbDsKIAorICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURf
UFJPUEVSVFkoc3RyaW5nLCBAInN0cmluZyIpOworICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVR
VUlSRURfUFJPUEVSVFkodHJlZSwgQCJ0cmVlIik7CisKICAgICBzZWxmLnN0cmluZyA9IHN0cmlu
ZzsKICAgICBzZWxmLm51bWJlciA9IG51bWJlcjsKICAgICBzZWxmLmFuaW1hbHMgPSBhbmltYWxz
Owo=
</data>
<flag name="review"
          id="265561"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="265562"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>