<?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>121562</bug_id>
          
          <creation_ts>2013-09-18 11:23:58 -0700</creation_ts>
          <short_desc>[MSE] Implement support for SourceBuffer.remove()</short_desc>
          <delta_ts>2014-03-28 13:09:22 -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>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>930688</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-09-18 11:23:58 -0700</bug_when>
    <thetext>[MSE] Implement support for SourceBuffer.remove()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930689</commentid>
    <comment_count>1</comment_count>
      <attachid>212007</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-09-18 11:29:56 -0700</bug_when>
    <thetext>Created attachment 212007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947342</commentid>
    <comment_count>2</comment_count>
      <attachid>212007</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-11-05 13:55:45 -0800</bug_when>
    <thetext>Comment on attachment 212007
Patch

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

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:112
&gt; +    // FIXME: Add step 6 text when mode attribute is implemented.

Nit: bug number?

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:170
&gt; +void SourceBuffer::remove(double start, double end, ExceptionState&amp; es)

I think this merge was a bit too automatic ;-). Don&apos;t you mean:

void SourceBuffer::remove(double start, double end, ExceptionCode&amp; ec)

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:176
&gt; +        es.throwDOMException(InvalidAccessError);

ec = INVALID_ACCESS_ERR;

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:184
&gt; +        es.throwDOMException(InvalidStateError);

ec = INVALID_STATE_ERR;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993967</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-03-24 14:19:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/16410855&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994207</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2014-03-25 09:32:26 -0700</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995407</commentid>
    <comment_count>5</comment_count>
      <attachid>228072</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-03-28 11:25:30 -0700</bug_when>
    <thetext>Created attachment 228072
Patch

Clearing r+ flag; new patch is significantly different enough from previous patch to warrant re-review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995411</commentid>
    <comment_count>6</comment_count>
      <attachid>228072</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-03-28 11:34:50 -0700</bug_when>
    <thetext>Comment on attachment 228072
Patch

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

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:246
&gt; +    m_source-&gt;openIfInEndedState();

You NULL check m_source above, do you need to so so here as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995427</commentid>
    <comment_count>7</comment_count>
      <attachid>228072</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-03-28 12:39:50 -0700</bug_when>
    <thetext>Comment on attachment 228072
Patch

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

&gt;&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:246
&gt;&gt; +    if (isRemoved() || m_updating) {
&gt;&gt; +        ec = INVALID_ACCESS_ERR;
&gt;&gt; +        return;
&gt;&gt; +    }
&gt;&gt; +
&gt;&gt; +    // 5. If the readyState attribute of the parent media source is in the &quot;ended&quot; state then run the following steps:
&gt;&gt; +    // 5.1. Set the readyState attribute of the parent media source to &quot;open&quot;
&gt;&gt; +    // 5.2. Queue a task to fire a simple event named sourceopen at the parent media source .
&gt;&gt; +    m_source-&gt;openIfInEndedState();
&gt; 
&gt; You NULL check m_source above, do you need to so so here as well?

No, the isRemoved() statement above is effectively a NULL check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995433</commentid>
    <comment_count>8</comment_count>
      <attachid>228072</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-28 13:09:16 -0700</bug_when>
    <thetext>Comment on attachment 228072
Patch

Clearing flags on attachment: 228072

Committed r166423: &lt;http://trac.webkit.org/changeset/166423&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995434</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-28 13:09:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212007</attachid>
            <date>2013-09-18 11:29:56 -0700</date>
            <delta_ts>2014-03-28 11:25:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121562-20130918112955.patch</filename>
            <type>text/plain</type>
            <size>23077</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2MDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E4OTFhODhmODI5OTcz
NzI5NDNkMTQ1MmQ0YjFiNWU3ZjBiZmM1NS4uZTIwMGFiZmQ0OWY0ODM0MTlhNGMyMTUzNWJlZjk2
MTJkOTRmNWYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEzLTA5LTE4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFtNU0VdIEltcGxlbWVudCBz
dXBwb3J0IGZvciBTb3VyY2VCdWZmZXIucmVtb3ZlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTU2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLXJlbW92ZS5odG1sCisKKyAgICAgICAgTWVyZ2UgaHR0cHM6Ly9jaHJv
bWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvZjBlNzEzOTMyZGIyMDBlZGZj
OGNhYWI4MTQ2NTU0ZjRkNTc4YzA0YgorICAgICAgICBieSBBYXJvbiBDb2x3ZWxsLgorCisgICAg
ICAgIEFkZCBzdXBvcnQgZm9yIFNvdXJjZUJ1ZmZlci5yZW1vdmUoKSwgYW5kIGFkZCBjaGVja3Mg
Zm9yIGlzUmVtb3ZlZCgpIGluIGFsbCB0aGUgcGxhY2VzIG1hbmRhdGVkCisgICAgICAgIGJ5IHRo
ZSBNU0Ugc3BlYy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6U291cmNlQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c2V0VGltZXN0YW1wT2Zmc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OlNv
dXJjZUJ1ZmZlcjo6YWJvcnRJZlVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlcjo6cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXI6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpyZW1vdmVUaW1l
ckZpcmVkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmg6CisKKzIwMTMtMDktMTgg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKICAgICAgICAgW01TRV0gVGhyb3cg
ZXhjZXB0aW9uIHdoZW4gc2V0dGluZyB0aW1lc3RhbXBPZmZzZXQgd2hpbGUgJ3VwZGF0aW5nJyBz
dGF0ZSBpcyBzZXQuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjE1NjEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDA2ZGNjNTAyNjYxNThlN2YyNDNmZmE4MDQ2YzZlN2Zh
MzVlYmI5ZGMuLmM3YTBmYWM4YmJmMjQ4NWVkYWEzNTRkNjQ5Y2U3YzBiY2YxNWFkNDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5j
cHAKQEAgLTU3LDYgKzU3LDkgQEAgU291cmNlQnVmZmVyOjpTb3VyY2VCdWZmZXIoUGFzc093blB0
cjxTb3VyY2VCdWZmZXJQcml2YXRlPiBzb3VyY2VCdWZmZXJQcml2YXRlLAogICAgICwgbV91cGRh
dGluZyhmYWxzZSkKICAgICAsIG1fdGltZXN0YW1wT2Zmc2V0KDApCiAgICAgLCBtX2FwcGVuZEJ1
ZmZlclRpbWVyKHRoaXMsICZTb3VyY2VCdWZmZXI6OmFwcGVuZEJ1ZmZlclRpbWVyRmlyZWQpCisg
ICAgLCBtX3JlbW92ZVRpbWVyKHRoaXMsICZTb3VyY2VCdWZmZXI6OnJlbW92ZVRpbWVyRmlyZWQp
CisgICAgLCBtX3BlbmRpbmdSZW1vdmVTdGFydCgtMSkKKyAgICAsIG1fcGVuZGluZ1JlbW92ZUVu
ZCgtMSkKIHsKICAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICBBU1NFUlQobV9zb3VyY2UpOwpA
QCAtODksMTUgKzkyLDExIEBAIGRvdWJsZSBTb3VyY2VCdWZmZXI6OnRpbWVzdGFtcE9mZnNldCgp
IGNvbnN0CiB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSBvZmZz
ZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIFNlY3Rpb24gMy4xIHRpbWVzdGFtcE9m
ZnNldCBhdHRyaWJ1dGUgc2V0dGVyIHN0ZXBzLgotICAgIC8vIDEuIElmIHRoaXMgb2JqZWN0IGhh
cyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgdGhlIHBh
cmVudCBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbgorICAgIC8vIDEuIExldCBuZXcgdGltZXN0
YW1wIG9mZnNldCBlcXVhbCB0aGUgbmV3IHZhbHVlIGJlaW5nIGFzc2lnbmVkIHRvIHRoaXMgYXR0
cmlidXRlLgorICAgIC8vIDIuIElmIHRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0
aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UsIHRo
ZW4gdGhyb3cgYW4KICAgICAvLyAgICBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFi
b3J0IHRoZXNlIHN0ZXBzLgotICAgIGlmIChpc1JlbW92ZWQoKSkgewotICAgICAgICBlYyA9IElO
VkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gMy4gSWYg
dGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSBlcXVhbHMgdHJ1ZSwgdGhlbiB0aHJvdyBhbiBJTlZBTElE
X1NUQVRFX0VSUiBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgIGlmIChtX3Vw
ZGF0aW5nKSB7CisgICAgaWYgKGlzUmVtb3ZlZCgpIHx8IG1fdXBkYXRpbmcpIHsKICAgICAgICAg
ZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwOSwx
MiArMTA4LDE0IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzZXRUaW1lc3RhbXBPZmZzZXQoZG91Ymxl
IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAKICAgICAvLyA1LiBJZiB0aGlzIG9iamVjdCBp
cyB3YWl0aW5nIGZvciB0aGUgZW5kIG9mIGEgbWVkaWEgc2VnbWVudCB0byBiZSBhcHBlbmRlZCwg
dGhlbiB0aHJvdyBhbiBJTlZBTElEX1NUQVRFX0VSUgogICAgIC8vIGFuZCBhYm9ydCB0aGVzZSBz
dGVwcy4KKyAgICAvLworICAgIC8vIEZJWE1FOiBBZGQgc3RlcCA2IHRleHQgd2hlbiBtb2RlIGF0
dHJpYnV0ZSBpcyBpbXBsZW1lbnRlZC4KICAgICBpZiAoIW1fcHJpdmF0ZS0+c2V0VGltZXN0YW1w
T2Zmc2V0KG9mZnNldCkpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIDYuIFVwZGF0ZSB0aGUgYXR0cmlidXRlIHRvIHRo
ZSBuZXcgdmFsdWUuCisgICAgLy8gNy4gVXBkYXRlIHRoZSBhdHRyaWJ1dGUgdG8gbmV3IHRpbWVz
dGFtcCBvZmZzZXQuCiAgICAgbV90aW1lc3RhbXBPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKQEAgLTE2
Niw2ICsxNjcsNDAgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmFib3J0KEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgIC8vIEZJWE1FKDIyOTQwOCkgQWRkIHN0ZXBzIDUtNiB1cGRhdGUgYXBwZW5kV2luZG93
U3RhcnQgJiBhcHBlbmRXaW5kb3dFbmQuCiB9CiAKK3ZvaWQgU291cmNlQnVmZmVyOjpyZW1vdmUo
ZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kLCBFeGNlcHRpb25TdGF0ZSYgZXMpCit7CisgICAgLy8g
U2VjdGlvbiAzLjIgcmVtb3ZlKCkgbWV0aG9kIHN0ZXBzLgorICAgIC8vIDEuIElmIHN0YXJ0IGlz
IG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiBkdXJhdGlvbiwgdGhlbiB0aHJvdyBhbiBJbnZhbGlk
QWNjZXNzRXJyb3IgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAvLyAyLiBJ
ZiBlbmQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHN0YXJ0LCB0aGVuIHRocm93IGFuIEludmFs
aWRBY2Nlc3NFcnJvciBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmIChz
dGFydCA8IDAgfHwgKG1fc291cmNlICYmIChzdGQ6OmlzbmFuKG1fc291cmNlLT5kdXJhdGlvbigp
KSB8fCBzdGFydCA+IG1fc291cmNlLT5kdXJhdGlvbigpKSkgfHwgZW5kIDw9IHN0YXJ0KSB7Cisg
ICAgICAgIGVzLnRocm93RE9NRXhjZXB0aW9uKEludmFsaWRBY2Nlc3NFcnJvcik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAvLyAzLiBJZiB0aGlzIG9iamVjdCBoYXMgYmVlbiByZW1v
dmVkIGZyb20gdGhlIHNvdXJjZUJ1ZmZlcnMgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEg
c291cmNlIHRoZW4gdGhyb3cgYW4KKyAgICAvLyAgICBJbnZhbGlkU3RhdGVFcnJvciBleGNlcHRp
b24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIC8vIDQuIElmIHRoZSB1cGRhdGluZyBhdHRy
aWJ1dGUgZXF1YWxzIHRydWUsIHRoZW4gdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgZXhjZXB0
aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoaXNSZW1vdmVkKCkgfHwgbV91cGRh
dGluZykgeworICAgICAgICBlcy50aHJvd0RPTUV4Y2VwdGlvbihJbnZhbGlkU3RhdGVFcnJvcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyA1LiBJZiB0aGUgcmVhZHlTdGF0ZSBh
dHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgaXMgaW4gdGhlICJlbmRlZCIgc3Rh
dGUgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAvLyA1LjEuIFNldCB0aGUgcmVh
ZHlTdGF0ZSBhdHRyaWJ1dGUgb2YgdGhlIHBhcmVudCBtZWRpYSBzb3VyY2UgdG8gIm9wZW4iCisg
ICAgLy8gNS4yLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBzb3Vy
Y2VvcGVuIGF0IHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIC4KKyAgICBtX3NvdXJjZS0+b3Blbklm
SW5FbmRlZFN0YXRlKCk7CisKKyAgICAvLyA2LiBTZXQgdGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSB0
byB0cnVlLgorICAgIG1fdXBkYXRpbmcgPSB0cnVlOworCisgICAgLy8gNy4gUXVldWUgYSB0YXNr
IHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgdXBkYXRlc3RhcnQgYXQgdGhpcyBTb3VyY2VC
dWZmZXIgb2JqZWN0LgorICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnVwZGF0ZXN0YXJ0
RXZlbnQpOworCisgICAgLy8gOC4gUmV0dXJuIGNvbnRyb2wgdG8gdGhlIGNhbGxlciBhbmQgcnVu
IHRoZSByZXN0IG9mIHRoZSBzdGVwcyBhc3luY2hyb25vdXNseS4KKyAgICBtX3BlbmRpbmdSZW1v
dmVTdGFydCA9IHN0YXJ0OworICAgIG1fcGVuZGluZ1JlbW92ZUVuZCA9IGVuZDsKKyAgICBtX3Jl
bW92ZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KIAogdm9pZCBTb3VyY2VCdWZmZXI6OmFib3J0
SWZVcGRhdGluZygpCiB7CkBAIC0xNzksNiArMjE0LDEwIEBAIHZvaWQgU291cmNlQnVmZmVyOjph
Ym9ydElmVXBkYXRpbmcoKQogICAgIG1fYXBwZW5kQnVmZmVyVGltZXIuc3RvcCgpOwogICAgIG1f
cGVuZGluZ0FwcGVuZERhdGEuY2xlYXIoKTsKIAorICAgIG1fcmVtb3ZlVGltZXIuc3RvcCgpOwor
ICAgIG1fcGVuZGluZ1JlbW92ZVN0YXJ0ID0gLTE7CisgICAgbV9wZW5kaW5nUmVtb3ZlRW5kID0g
LTE7CisKICAgICAvLyAzLjIuIFNldCB0aGUgdXBkYXRpbmcgYXR0cmlidXRlIHRvIGZhbHNlLgog
ICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsKIApAQCAtMTk0LDYgKzIzMyw4IEBAIHZvaWQgU291cmNl
QnVmZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKICAgICBpZiAoaXNSZW1vdmVkKCkpCiAg
ICAgICAgIHJldHVybjsKIAorICAgIGFib3J0SWZVcGRhdGluZygpOworCiAgICAgbV9wcml2YXRl
LT5yZW1vdmVkRnJvbU1lZGlhU291cmNlKCk7CiAgICAgbV9zb3VyY2UgPSAwOwogICAgIG1fYXN5
bmNFdmVudFF1ZXVlLmNsb3NlKCk7CkBAIC0yMDcsNiArMjQ4LDcgQEAgYm9vbCBTb3VyY2VCdWZm
ZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB2b2lkIFNvdXJjZUJ1ZmZlcjo6c3RvcCgp
CiB7CiAgICAgbV9hcHBlbmRCdWZmZXJUaW1lci5zdG9wKCk7CisgICAgbV9yZW1vdmVUaW1lci5z
dG9wKCk7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFNvdXJjZUJ1ZmZlcjo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CkBAIC0zMDIsNiArMzQ0LDMwIEBAIHZvaWQgU291cmNl
QnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmVkKFRpbWVyPFNvdXJjZUJ1ZmZlcj4qKQogICAg
IHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnVwZGF0ZWVuZEV2ZW50KTsKIH0KIAordm9pZCBT
b3VyY2VCdWZmZXI6OnJlbW92ZVRpbWVyRmlyZWQoVGltZXI8U291cmNlQnVmZmVyPiopCit7Cisg
ICAgQVNTRVJUKG1fdXBkYXRpbmcpOworICAgIEFTU0VSVChtX3BlbmRpbmdSZW1vdmVTdGFydCA+
PSAwKTsKKyAgICBBU1NFUlQobV9wZW5kaW5nUmVtb3ZlU3RhcnQgPCBtX3BlbmRpbmdSZW1vdmVF
bmQpOworCisgICAgLy8gU2VjdGlvbiAzLjIgcmVtb3ZlKCkgbWV0aG9kIHN0ZXBzCisgICAgLy8g
aHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sLW1lZGlhL3Jhdy1maWxlL2RlZmF1bHQvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS5odG1sI3dpZGwtU291cmNlQnVmZmVyLXJlbW92ZS12b2lkLWRv
dWJsZS1zdGFydC1kb3VibGUtZW5kCisKKyAgICAvLyA5LiBSdW4gdGhlIGNvZGVkIGZyYW1lIHJl
bW92YWwgYWxnb3JpdGhtIHdpdGggc3RhcnQgYW5kIGVuZCBhcyB0aGUgc3RhcnQgYW5kIGVuZCBv
ZiB0aGUgcmVtb3ZhbCByYW5nZS4KKyAgICBtX3ByaXZhdGUtPnJlbW92ZShtX3BlbmRpbmdSZW1v
dmVTdGFydCwgbV9wZW5kaW5nUmVtb3ZlRW5kKTsKKworICAgIC8vIDEwLiBTZXQgdGhlIHVwZGF0
aW5nIGF0dHJpYnV0ZSB0byBmYWxzZS4KKyAgICBtX3VwZGF0aW5nID0gZmFsc2U7CisgICAgbV9w
ZW5kaW5nUmVtb3ZlU3RhcnQgPSAtMTsKKyAgICBtX3BlbmRpbmdSZW1vdmVFbmQgPSAtMTsKKwor
ICAgIC8vIDExLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCB1cGRh
dGUgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgorICAgIHNjaGVkdWxlRXZlbnQoZXZlbnRO
YW1lcygpLnVwZGF0ZUV2ZW50KTsKKworICAgIC8vIDEyLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBh
IHNpbXBsZSBldmVudCBuYW1lZCB1cGRhdGVlbmQgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0
LgorICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnVwZGF0ZWVuZEV2ZW50KTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IDBhNGVhNTRhZjM0Y2Y2MDg2
Nzk1OWYxNDdhMWE0OGY5MTA0ZTc1ZTYuLmZhNDE3ZmE4MGEzZjAxMzViNjY1Y2QxMGM0ZGUxOGYx
YmM1M2YxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBlbmRC
dWZmZXIoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gZGF0YSwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgYXBwZW5kQnVmZmVyKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBkYXRhLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCBhYm9ydChFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBy
ZW1vdmUoZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2
b2lkIGFib3J0SWZVcGRhdGluZygpOwogICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgp
OwpAQCAtOTQsNiArOTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwZW5kQnVmZmVySW50ZXJu
YWwodW5zaWduZWQgY2hhciosIHVuc2lnbmVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBh
cHBlbmRCdWZmZXJUaW1lckZpcmVkKFRpbWVyPFNvdXJjZUJ1ZmZlcj4qKTsKIAorICAgIHZvaWQg
cmVtb3ZlVGltZXJGaXJlZChUaW1lcjxTb3VyY2VCdWZmZXI+Kik7CisKICAgICBPd25QdHI8U291
cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIE1lZGlhU291cmNlKiBtX3NvdXJjZTsK
ICAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKQEAgLTEwNCw2ICsxMDcs
MTAgQEAgcHJpdmF0ZToKIAogICAgIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBtX3BlbmRpbmdBcHBl
bmREYXRhOwogICAgIFRpbWVyPFNvdXJjZUJ1ZmZlcj4gbV9hcHBlbmRCdWZmZXJUaW1lcjsKKwor
ICAgIGRvdWJsZSBtX3BlbmRpbmdSZW1vdmVTdGFydDsKKyAgICBkb3VibGUgbV9wZW5kaW5nUmVt
b3ZlRW5kOworICAgIFRpbWVyPFNvdXJjZUJ1ZmZlcj4gbV9yZW1vdmVUaW1lcjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbAppbmRleCBjMTkwYjFjMjdjMDVhMTk1NDZkZGVlZjlh
MWI4ZTc4ODllYzZkZDFiLi44MTJiNDE5OTY4NDBkOTEyMTg2Y2NhY2NlZGQ4NzUxN2UxNzkxM2Jh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuaWRsCkBAIC01MCw1ICs1MCw2IEBACiAKICAgICAvLyBBYm9ydCB0aGUgY3VycmVudCBz
ZWdtZW50IGFwcGVuZCBzZXF1ZW5jZS4KICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGFib3J0
KCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCByZW1vdmUoZG91YmxlIHN0YXJ0LCBkb3Vi
bGUgZW5kKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAppbmRleCAwMDliYWRmNzdlNWFiMjI2YmFmMGViZjJj
YTJkNzVmZjc0ODRkM2QyLi5lNDcyNDQwYzEwODhlNjcwZWJmYmE5OTE4MTlkOWMyNzI2YmE2NDdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZm
ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNl
QnVmZmVyUHJpdmF0ZS5oCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFw
cGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgYWJvcnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShkb3Vi
bGUgc3RhcnQsIGRvdWJsZSBlbmQpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2V0VGltZXN0YW1w
T2Zmc2V0KGRvdWJsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291
cmNlKCkgPSAwOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YzNjYmZmOWM3MzlhNTc4NmU5ZDZhODcxNTUzMzBhNGM2
MTljZDMyLi4xZGM5YTdjMzBjNTA3NzQ0YTRjN2Y0MDQ1ZTM2Y2I0YzI4OTczN2FjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMTcgQEAKIDIwMTMtMDktMTggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKKyAgICAgICAgW01TRV0gSW1wbGVtZW50IHN1cHBvcnQgZm9yIFNvdXJjZUJ1ZmZlci5y
ZW1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIxNTYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJlZC5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXJl
bW92ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLXJlbW92ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS11dGlsLmpzOgorCisyMDEzLTA5
LTE4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCiAgICAgICAgIFtNU0VdIFRo
cm93IGV4Y2VwdGlvbiB3aGVuIHNldHRpbmcgdGltZXN0YW1wT2Zmc2V0IHdoaWxlICd1cGRhdGlu
Zycgc3RhdGUgaXMgc2V0LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIxNTYxCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWJ1ZmZlcmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1idWZmZXJlZC5odG1sCmlu
ZGV4IDU3MjgzOGEwNjQ3YjE5M2JiMWQyZTRiY2E2NzdmNzg4YmNiMjNlMTAuLmViOTNkNjFiMTcx
Yjk5MDE0MjY1N2QzMzIxZjUwMTQwNDAxNjQ2NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWJ1ZmZlcmVkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
YnVmZmVyZWQuaHRtbApAQCAtNTIsMjEgKzUyLDYgQEAKICAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgZnVuY3Rpb24gdGltZVJhbmdlc1RvU3RyaW5nKHJh
bmdlcykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIHZhciBzID0gInsiOwotICAgICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICAgICBzICs9ICIgWyIgKyByYW5nZXMuc3RhcnQoaSkudG9GaXhlZCgzKSArICIs
ICIgKyByYW5nZXMuZW5kKGkpLnRvRml4ZWQoMykgKyAiKSI7Ci0gICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICByZXR1cm4gcyArICIgfSI7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGZ1bmN0aW9uIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKG9iaiwgZXhwZWN0ZWQsIGRlc2NyaXB0
aW9uKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBhY3R1YWwgPSB0aW1lUmFu
Z2VzVG9TdHJpbmcob2JqLmJ1ZmZlcmVkKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKTsKLSAgICAgICAgICAgIH0KLQogICAgICAg
ICAgICAgbWVkaWFTb3VyY2VEZW11eGVkVGVzdChmdW5jdGlvbih0ZXN0LCBtZWRpYUVsZW1lbnQs
IG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIpIHsKICAgICAgICAgICAgICAgICBhcHBlbmREYXRh
KHRlc3QsIG1lZGlhU291cmNlLCBkYXRhQSwgZGF0YUIsIGZ1bmN0aW9uKCkKICAgICAgICAgICAg
ICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1yZW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcmVtb3ZlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44NjVjMThlMTRlM2U5NTcyNDFiYjlmMTc5MmYzYTA1MDE3ZmM4ODBmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtcmVtb3ZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACisgCitQQVNT
IFRlc3QgcmVtb3ZlIHdpdGggYW4gbmVnYXRpdmUgc3RhcnQuIAorUEFTUyBUZXN0IHJlbW92ZSB3
aXRoIGEgc3RhcnQgYmV5b25kIHRoZSBkdXJhdGlvbi4gCitQQVNTIFRlc3QgcmVtb3ZlIHdpdGgg
YSBzdGFydCBsYXJnZXIgdGhhbiB0aGUgZW5kLiAKK1BBU1MgVGVzdCByZW1vdmUgYWZ0ZXIgU291
cmNlQnVmZmVyIHJlbW92ZWQgZnJvbSBtZWRpYVNvdXJjZS4gCitQQVNTIFRlc3QgcmVtb3ZlIHdo
aWxlIHVwZGF0ZSBwZW5kaW5nLiAKK1BBU1MgVGVzdCBhYm9ydGluZyBhIHJlbW92ZSBvcGVyYXRp
b24uIAorUEFTUyBUZXN0IHJlbW92ZSB0cmFuc2l0aW9uaW5nIHJlYWR5U3RhdGUgZnJvbSAnZW5k
ZWQnIHRvICdvcGVuJy4gCitQQVNTIFRlc3QgcmVtb3ZpbmcgYWxsIGFwcGVuZGVkIGRhdGEuIAor
UEFTUyBUZXN0IHJlbW92aW5nIGJlZ2lubmluZyBvZiBhcHBlbmRlZCBkYXRhLiAKK1BBU1MgVGVz
dCByZW1vdmluZyB0aGUgbWlkZGxlIG9mIGFwcGVuZGVkIGRhdGEuIAorUEFTUyBUZXN0IHJlbW92
aW5nIHRoZSBlbmQgb2YgYXBwZW5kZWQgZGF0YS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXJlbW92ZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcmVt
b3ZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk5YzZmODFjMDI5OTVlOGI4ZmJmYzU5YjdjMTc3OTkyZWYx
Y2FiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLXJlbW92ZS5odG1sCkBAIC0wLDAgKzEsMjE3IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0ibWVkaWFzb3VyY2UtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxs
aW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3Nz
Jz4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0
ZXN0LCBtZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNv
dXJjZVV0aWwuQVVESU9fVklERU9fVFlQRSk7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cygiSW52YWxpZEFjY2Vzc0Vycm9yIiwgZnVuY3Rpb24oKQorICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIucmVtb3ZlKC0xLCAyKTsKKyAgICAgICAgICAgICAg
fSwgInJlbW92ZSIpOworCisgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgIH0s
ICJUZXN0IHJlbW92ZSB3aXRoIGFuIG5lZ2F0aXZlIHN0YXJ0LiIpOworCisKKyAgICAgICAgICBt
ZWRpYXNvdXJjZV90ZXN0KGZ1bmN0aW9uKHRlc3QsIG1lZGlhRWxlbWVudCwgbWVkaWFTb3VyY2Up
CisgICAgICAgICAgeworICAgICAgICAgICAgICB2YXIgc291cmNlQnVmZmVyID0gbWVkaWFTb3Vy
Y2UuYWRkU291cmNlQnVmZmVyKE1lZGlhU291cmNlVXRpbC5BVURJT19WSURFT19UWVBFKTsKKwor
ICAgICAgICAgICAgICBtZWRpYVNvdXJjZS5kdXJhdGlvbiA9IDEwOworCisgICAgICAgICAgICAg
IGFzc2VydF90aHJvd3MoIkludmFsaWRBY2Nlc3NFcnJvciIsIGZ1bmN0aW9uKCkKKyAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyLnJlbW92ZSgxMSwgMTIpOwor
ICAgICAgICAgICAgICB9LCAicmVtb3ZlIik7CisKKyAgICAgICAgICAgICAgdGVzdC5kb25lKCk7
CisgICAgICAgICAgfSwgIlRlc3QgcmVtb3ZlIHdpdGggYSBzdGFydCBiZXlvbmQgdGhlIGR1cmF0
aW9uLiIpOworCisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBtZWRp
YUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFyIHNv
dXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNvdXJjZVV0aWwu
QVVESU9fVklERU9fVFlQRSk7CisKKyAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuZHVyYXRpb24g
PSAxMDsKKworICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkQWNjZXNzRXJyb3Ii
LCBmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1
ZmZlci5yZW1vdmUoMiwgMSk7CisgICAgICAgICAgICAgIH0sICJyZW1vdmUiKTsKKworICAgICAg
ICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICB9LCAiVGVzdCByZW1vdmUgd2l0aCBhIHN0
YXJ0IGxhcmdlciB0aGFuIHRoZSBlbmQuIik7CisKKworICAgICAgICAgIG1lZGlhc291cmNlX3Rl
c3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7
CisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VC
dWZmZXIoTWVkaWFTb3VyY2VVdGlsLkFVRElPX1ZJREVPX1RZUEUpOworCisgICAgICAgICAgICAg
IG1lZGlhU291cmNlLmR1cmF0aW9uID0gMTA7CisKKyAgICAgICAgICAgICAgbWVkaWFTb3VyY2Uu
cmVtb3ZlU291cmNlQnVmZmVyKHNvdXJjZUJ1ZmZlcik7CisKKyAgICAgICAgICAgICAgYXNzZXJ0
X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpCisgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5yZW1vdmUoMSwgMik7CisgICAgICAgICAg
ICAgIH0sICJyZW1vdmUiKTsKKworICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAg
ICB9LCAiVGVzdCByZW1vdmUgYWZ0ZXIgU291cmNlQnVmZmVyIHJlbW92ZWQgZnJvbSBtZWRpYVNv
dXJjZS4iKTsKKworCisgICAgICAgICAgbWVkaWFzb3VyY2VfdGVzdChmdW5jdGlvbih0ZXN0LCBt
ZWRpYUVsZW1lbnQsIG1lZGlhU291cmNlKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgdmFy
IHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihNZWRpYVNvdXJjZVV0
aWwuQVVESU9fVklERU9fVFlQRSk7CisKKyAgICAgICAgICAgICAgbWVkaWFTb3VyY2UuZHVyYXRp
b24gPSAxMDsKKworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwg
InVwZGF0ZXN0YXJ0Iik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVm
ZmVyLCAidXBkYXRlIik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVm
ZmVyLCAidXBkYXRlZW5kIik7CisgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5yZW1vdmUoMSwg
Mik7CisKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAi
dXBkYXRpbmciKTsKKworICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVF
cnJvciIsIGZ1bmN0aW9uKCkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgc291
cmNlQnVmZmVyLnJlbW92ZSgzLCA0KTsKKyAgICAgICAgICAgICAgfSwgInJlbW92ZSIpOworCisg
ICAgICAgICAgICAgIHRlc3Qud2FpdEZvckV4cGVjdGVkRXZlbnRzKGZ1bmN0aW9uKCkKKyAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgdGVzdC5kb25lKCk7CisgICAgICAgICAgICAg
IH0pOworICAgICAgICAgIH0sICJUZXN0IHJlbW92ZSB3aGlsZSB1cGRhdGUgcGVuZGluZy4iKTsK
KworICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50
LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZm
ZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoTWVkaWFTb3VyY2VVdGlsLkFVRElPX1ZJ
REVPX1RZUEUpOworCisgICAgICAgICAgICAgIG1lZGlhU291cmNlLmR1cmF0aW9uID0gMTA7CisK
KyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVzdGFy
dCIpOworICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgImFib3J0
Iik7CisgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRl
ZW5kIik7CisgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5yZW1vdmUoMSwgMik7CisKKyAgICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmciKTsK
KworICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIuYWJvcnQoKTsKKworICAgICAgICAgICAgICBh
c3NlcnRfZmFsc2Uoc291cmNlQnVmZmVyLnVwZGF0aW5nLCAidXBkYXRpbmciKTsKKworICAgICAg
ICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICB9LCAiVGVzdCBhYm9ydGluZyBhIHJlbW92ZSBvcGVyYXRpb24uIik7CisKKwor
ICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50LCBt
ZWRpYVNvdXJjZSkKKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHZhciBtZWRpYVR5cGUgPSAn
dmlkZW8vd2VibTtjb2RlY3M9InZwOCx2b3JiaXMiJzsKKyAgICAgICAgICAgICAgdmFyIG1lZGlh
VVJMID0gJy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0vdGVzdC53ZWJtJzsKKyAg
ICAgICAgICAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZl
cihtZWRpYVR5cGUpOworICAgICAgICAgICAgICBNZWRpYVNvdXJjZVV0aWwubG9hZEJpbmFyeURh
dGEodGVzdCwgbWVkaWFVUkwsIGZ1bmN0aW9uKGRhdGEpCisgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlc3RhcnQi
KTsKKyAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBk
YXRlIik7CisgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwg
InVwZGF0ZWVuZCIpOworICAgICAgICAgICAgICAgICAgc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZl
cihkYXRhKTsKKworICAgICAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMo
ZnVuY3Rpb24oKQorICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIG1l
ZGlhU291cmNlLmVuZE9mU3RyZWFtKCk7CisKKyAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICJlbmRlZCIpOworCisgICAgICAgICAgICAg
ICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVzdGFydCIpOwor
ICAgICAgICAgICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBk
YXRlIik7CisgICAgICAgICAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZm
ZXIsICJ1cGRhdGVlbmQiKTsKKyAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VCdWZmZXIucmVt
b3ZlKDEsIDIpOworCisgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoc291cmNlQnVm
ZmVyLnVwZGF0aW5nLCAidXBkYXRpbmciKTsKKyAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKG1lZGlhU291cmNlLnJlYWR5U3RhdGUsICJvcGVuIik7CisgICAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgICAgICAgdGVzdC53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoZnVu
Y3Rpb24oKQorICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9mYWxzZShzb3VyY2VCdWZmZXIudXBkYXRpbmcsICJ1cGRhdGluZyIpOworICAgICAgICAgICAg
ICAgICAgICAgIHRlc3QuZG9uZSgpOworICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgIH0sICJUZXN0IHJlbW92ZSB0cmFuc2l0aW9uaW5nIHJlYWR5U3Rh
dGUgZnJvbSAnZW5kZWQnIHRvICdvcGVuJy4iKTsKKworICAgICAgICAgIGZ1bmN0aW9uIHJlbW92
ZUFwcGVuZGVkRGF0YVRlc3RzKGNhbGxiYWNrLCBkZXNjcmlwdGlvbikKKyAgICAgICAgICB7Cisg
ICAgICAgICAgICAgIG1lZGlhc291cmNlX3Rlc3QoZnVuY3Rpb24odGVzdCwgbWVkaWFFbGVtZW50
LCBtZWRpYVNvdXJjZSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgdmFyIG1l
ZGlhVHlwZSA9ICd2aWRlby93ZWJtO2NvZGVjcz0idnA4LHZvcmJpcyInOworICAgICAgICAgICAg
ICAgICAgdmFyIG1lZGlhVVJMID0gJy9tZWRpYS9yZXNvdXJjZXMvbWVkaWEtc291cmNlL3dlYm0v
dGVzdC53ZWJtJzsKKyAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2VCdWZmZXIgPSBtZWRpYVNv
dXJjZS5hZGRTb3VyY2VCdWZmZXIobWVkaWFUeXBlKTsKKyAgICAgICAgICAgICAgICAgIE1lZGlh
U291cmNlVXRpbC5sb2FkQmluYXJ5RGF0YSh0ZXN0LCBtZWRpYVVSTCwgZnVuY3Rpb24oZGF0YSkK
KyAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmV4cGVjdEV2
ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZXN0YXJ0Iik7CisgICAgICAgICAgICAgICAgICAgICAg
dGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0LmV4cGVjdEV2ZW50KHNvdXJjZUJ1ZmZlciwgInVwZGF0ZWVuZCIpOworICAg
ICAgICAgICAgICAgICAgICAgIHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoZGF0YSk7CisKKyAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigp
CisgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRCdWZmZXJlZEVxdWFscyhzb3VyY2VCdWZmZXIsICJ7IFswLjAwMCwgNi4wNDIpIH0iLCAiSW5p
dGlhbCBidWZmZXJlZCByYW5nZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJh
Y2sodGVzdCwgc291cmNlQnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICB9LCBkZXNjcmlwdGlvbik7CisgICAgICAg
ICAgfTsKKworICAgICAgICAgIGZ1bmN0aW9uIHJlbW92ZUFuZENoZWNrQnVmZmVyZWRSYW5nZXMo
dGVzdCwgc291cmNlQnVmZmVyLCBzdGFydCwgZW5kLCBleHBlY3RlZCkKKyAgICAgICAgICB7Cisg
ICAgICAgICAgICAgIHRlc3QuZXhwZWN0RXZlbnQoc291cmNlQnVmZmVyLCAidXBkYXRlc3RhcnQi
KTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGUi
KTsKKyAgICAgICAgICAgICAgdGVzdC5leHBlY3RFdmVudChzb3VyY2VCdWZmZXIsICJ1cGRhdGVl
bmQiKTsKKyAgICAgICAgICAgICAgc291cmNlQnVmZmVyLnJlbW92ZShzdGFydCwgZW5kKTsKKwor
ICAgICAgICAgICAgICB0ZXN0LndhaXRGb3JFeHBlY3RlZEV2ZW50cyhmdW5jdGlvbigpCisgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydEJ1ZmZlcmVkRXF1YWxzKHNvdXJj
ZUJ1ZmZlciwgZXhwZWN0ZWQsICJCdWZmZXJlZCByYW5nZXMgYWZ0ZXIgcmVtb3ZlKCkuIik7Cisg
ICAgICAgICAgICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgfQorCisgICAgICAgICAgcmVtb3ZlQXBwZW5kZWREYXRhVGVzdHMoZnVuY3Rpb24odGVzdCwg
c291cmNlQnVmZmVyKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgcmVtb3ZlQW5kQ2hlY2tC
dWZmZXJlZFJhbmdlcyh0ZXN0LCBzb3VyY2VCdWZmZXIsIDAsIE51bWJlci5QT1NJVElWRV9JTkZJ
TklUWSwgInsgfSIpOworICAgICAgICAgIH0sICJUZXN0IHJlbW92aW5nIGFsbCBhcHBlbmRlZCBk
YXRhLiIpOworCisgICAgICAgICAgcmVtb3ZlQXBwZW5kZWREYXRhVGVzdHMoZnVuY3Rpb24odGVz
dCwgc291cmNlQnVmZmVyKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgLy8gTm90ZTogUmFu
Z2UgZG9lc24ndCBzdGFydCBleGFjdGx5IGF0IHRoZSBlbmQgb2YgdGhlIHJlbW92ZSByYW5nZSBi
ZWNhdXNlIHRoZXJlIGlzbid0CisgICAgICAgICAgICAgIC8vIGEga2V5ZnJhbWUgdGhlcmUuIFRo
ZSByZXN1bHRpbmcgcmFuZ2Ugc3RhcnRzIGF0IHRoZSBmaXJzdCBrZXlmcmFtZSA+PSB0aGUgZW5k
IHRpbWUuCisgICAgICAgICAgICAgIHJlbW92ZUFuZENoZWNrQnVmZmVyZWRSYW5nZXModGVzdCwg
c291cmNlQnVmZmVyLCAwLCAzLCAieyBbMy4xODcsIDYuMDQyKSB9Iik7CisgICAgICAgICAgfSwg
IlRlc3QgcmVtb3ZpbmcgYmVnaW5uaW5nIG9mIGFwcGVuZGVkIGRhdGEuIik7CisKKyAgICAgICAg
ICByZW1vdmVBcHBlbmRlZERhdGFUZXN0cyhmdW5jdGlvbih0ZXN0LCBzb3VyY2VCdWZmZXIpCisg
ICAgICAgICAgeworICAgICAgICAgICAgICAvLyBOb3RlOiBUaGUgZmlyc3QgcmVzdWx0aW5nIHJh
bmdlIGVuZHMgc2xpZ2h0bHkgYWZ0ZXIgc3RhcnQgYmVjYXVzZSB0aGUgcmVtb3ZhbCBhbGdvcml0
aG0gb25seSByZW1vdmVzCisgICAgICAgICAgICAgIC8vIGZyYW1lcyB3aXRoIGEgdGltZXN0YW1w
ID49IHRoZSBzdGFydCB0aW1lLiBJZiBhIGZyYW1lIHN0YXJ0cyBiZWZvcmUgYW5kIGVuZHMgYWZ0
ZXIgdGhlIHJlbW92ZSgpIHN0YXJ0CisgICAgICAgICAgICAgIC8vIHRpbWVzdGFtcCwgdGhlbiBp
dCBzdGF5cyBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgICAgICByZW1vdmVBbmRDaGVja0J1ZmZl
cmVkUmFuZ2VzKHRlc3QsIHNvdXJjZUJ1ZmZlciwgMSwgMywgInsgWzAuMDAwLCAxLjAxMikgWzMu
MTg3LCA2LjA0MikgfSIpOworICAgICAgICAgIH0sICJUZXN0IHJlbW92aW5nIHRoZSBtaWRkbGUg
b2YgYXBwZW5kZWQgZGF0YS4iKTsKKworICAgICAgICAgIHJlbW92ZUFwcGVuZGVkRGF0YVRlc3Rz
KGZ1bmN0aW9uKHRlc3QsIHNvdXJjZUJ1ZmZlcikKKyAgICAgICAgICB7CisgICAgICAgICAgICAg
IHJlbW92ZUFuZENoZWNrQnVmZmVyZWRSYW5nZXModGVzdCwgc291cmNlQnVmZmVyLCAxLCBOdW1i
ZXIuUE9TSVRJVkVfSU5GSU5JVFksICJ7IFswLjAwMCwgMS4wMTIpIH0iKTsKKyAgICAgICAgICB9
LCAiVGVzdCByZW1vdmluZyB0aGUgZW5kIG9mIGFwcGVuZGVkIGRhdGEuIik7CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXV0aWwuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS11dGlsLmpzCmlu
ZGV4IDQ1NmYwMTJmNGQ5OWRjNjEzZGJkZjNhYzA3ZjIyNGQ1MTgwOTdlNzYuLmE2NTNhMTJiN2E2
NDM0ZDc4YWVmZmQ1NWQ2OGIwMWM3NzFmMjFlNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXV0aWwuanMKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtdXRpbC5q
cwpAQCAtMjI0LDYgKzIyNCwyMCBAQAogICAgICAgICAgICAgICAgIHRlc3RGdW5jdGlvbih0ZXN0
LCBtZWRpYVRhZywgbWVkaWFTb3VyY2UpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0sIGRl
c2NyaXB0aW9uLCBvcHRpb25zKTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gdGltZVJhbmdlc1Rv
U3RyaW5nKHJhbmdlcykKKyAgICB7CisgICAgICAgIHZhciBzID0gInsiOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgcyArPSAi
IFsiICsgcmFuZ2VzLnN0YXJ0KGkpLnRvRml4ZWQoMykgKyAiLCAiICsgcmFuZ2VzLmVuZChpKS50
b0ZpeGVkKDMpICsgIikiOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzICsgIiB9IjsKKyAg
ICB9CiAKKyAgICB3aW5kb3dbJ2Fzc2VydEJ1ZmZlcmVkRXF1YWxzJ10gPSBmdW5jdGlvbihvYmos
IGV4cGVjdGVkLCBkZXNjcmlwdGlvbikKKyAgICB7CisgICAgICAgIHZhciBhY3R1YWwgPSB0aW1l
UmFuZ2VzVG9TdHJpbmcob2JqLmJ1ZmZlcmVkKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhhY3R1
YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbik7CiAgICAgfTsKIH0pKHdpbmRvdyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228072</attachid>
            <date>2014-03-28 11:25:30 -0700</date>
            <delta_ts>2014-03-28 13:09:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121562-20140328112513.patch</filename>
            <type>text/plain</type>
            <size>16409</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGU4NmEyMGNkMmQ2MmNi
NzI1N2JmYzA3NjBiYjU0MTkxN2MxMGVjNS4uNTk0Y2FlYjg2ZGVhYThkOWI0MzE4MzhhN2ZjM2Ex
N2NlNDU3ZDk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAzLTI4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdIEltcGxlbWVudCBz
dXBwb3J0IGZvciBTb3VyY2VCdWZmZXIucmVtb3ZlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTU2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtcmVtb3ZlLmh0bWwKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgU291cmNlQnVmZmVy
LnJlbW92ZSgpLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpTb3VyY2VCdWZmZXIpOiBJbml0
aWFsaXplIG5ldyBtZW1iZXIgdmFyaWFibGVzLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyOjpzZXRUaW1lc3RhbXBPZmZzZXQpOiBVcGRhdGUgY29tbWVudHMgdG8gbWF0Y2ggc3BlYy4K
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cmVtb3ZlKTogQWRkZWQ7IHN0YXJ0IHJl
bW92ZVRpbWVyLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphYm9ydElmVXBkYXRp
bmcpOiBDYW5jZWwgcmVtb3ZlVGltZXIuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6
OnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UpOiBDYWxsIGFib3J0SWZVcGRhdGluZygpLgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzdG9wKTogQ2FuY2VsIHJlbW92ZVRpbWVyLgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpyZW1vdmVDb2RlZEZyYW1lcyk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpyZW1vdmVUaW1lckZpcmVkKTogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGw6CisKIDIwMTQtMDMtMjcgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gSExTIHN0cmVh
bXMgd2lsbCByZXBvcnQgYW4gaW5jb3JyZWN0IG5hdHVyYWwgc2l6ZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCAxM2Fm
YzI1ZDMxYmEzNzIwYmZkMTA1MDZjZjFiNDNhYTJkMmMwNThlLi44YTkyMjNhMTI3ZmUwMzBkYTgy
ZmY4YTA0YWQ0ZjA4MmU2ZmJlMjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0xMDMsNiArMTAzLDkgQEAgU291cmNl
QnVmZmVyOjpTb3VyY2VCdWZmZXIoUGFzc1JlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiBzb3VyY2VC
dWZmZXJQcml2YXRlLCBNZWQKICAgICAsIG1fdGltZU9mQnVmZmVyaW5nTW9uaXRvcihtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKSkKICAgICAsIG1fYnVmZmVyZWRTaW5jZUxhc3RNb25pdG9y
KDApCiAgICAgLCBtX2F2ZXJhZ2VCdWZmZXJSYXRlKDApCisgICAgLCBtX3BlbmRpbmdSZW1vdmVT
dGFydChNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCisgICAgLCBtX3BlbmRpbmdSZW1vdmVFbmQo
TWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQorICAgICwgbV9yZW1vdmVUaW1lcih0aGlzLCAmU291
cmNlQnVmZmVyOjpyZW1vdmVUaW1lckZpcmVkKQogewogICAgIEFTU0VSVChtX3ByaXZhdGUpOwog
ICAgIEFTU0VSVChtX3NvdXJjZSk7CkBAIC0xNDYsMTUgKzE0OSwxMSBAQCB2b2lkIFNvdXJjZUJ1
ZmZlcjo6c2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIC8vIFNlY3Rpb24gMy4xIHRpbWVzdGFtcE9mZnNldCBhdHRyaWJ1dGUgc2V0dGVy
IHN0ZXBzLgogICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1tZWRpYS9yYXctZmls
ZS9kZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCNhdHRyaWJ1dGVzLTEKLSAg
ICAvLyAxLiBJZiB0aGlzIG9iamVjdCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNvdXJjZUJ1
ZmZlcnMgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIHRoZW4gdGhyb3cgYW4K
KyAgICAvLyAxLiBMZXQgbmV3IHRpbWVzdGFtcCBvZmZzZXQgZXF1YWwgdGhlIG5ldyB2YWx1ZSBi
ZWluZyBhc3NpZ25lZCB0byB0aGlzIGF0dHJpYnV0ZS4KKyAgICAvLyAyLiBJZiB0aGlzIG9iamVj
dCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHNvdXJjZUJ1ZmZlcnMgYXR0cmlidXRlIG9mIHRo
ZSBwYXJlbnQgbWVkaWEgc291cmNlLCB0aGVuIHRocm93IGFuCiAgICAgLy8gICAgSU5WQUxJRF9T
VEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICBpZiAoaXNSZW1v
dmVkKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQogICAgIC8vIDMuIElmIHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgZXF1YWxzIHRy
dWUsIHRoZW4gdGhyb3cgYW4gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIGFuZCBhYm9ydCB0
aGVzZSBzdGVwcy4KLSAgICBpZiAobV91cGRhdGluZykgeworICAgIGlmIChpc1JlbW92ZWQoKSB8
fCBtX3VwZGF0aW5nKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xNzAsNyArMTY5LDggQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNl
dFRpbWVzdGFtcE9mZnNldChkb3VibGUgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIDYuIFVwZGF0ZSB0aGUgYXR0cmlidXRlIHRvIHRo
ZSBuZXcgdmFsdWUuCisgICAgLy8gRklYTUU6IEFkZCBzdGVwIDYgdGV4dCB3aGVuIG1vZGUgYXR0
cmlidXRlIGlzIGltcGxlbWVudGVkLgorICAgIC8vIDcuIFVwZGF0ZSB0aGUgYXR0cmlidXRlIHRv
IHRoZSBuZXcgdmFsdWUuCiAgICAgbV90aW1lc3RhbXBPZmZzZXQgPSBNZWRpYVRpbWU6OmNyZWF0
ZVdpdGhEb3VibGUob2Zmc2V0KTsKIH0KIApAQCAtMjIyLDYgKzIyMiw0MCBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgLy8gRklYTUUoMjI5NDA4KSBB
ZGQgc3RlcHMgNS02IHVwZGF0ZSBhcHBlbmRXaW5kb3dTdGFydCAmIGFwcGVuZFdpbmRvd0VuZC4K
IH0KIAordm9pZCBTb3VyY2VCdWZmZXI6OnJlbW92ZShkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIFNlY3Rpb24gMy4yIHJlbW92ZSgpIG1ldGhv
ZCBzdGVwcy4KKyAgICAvLyAxLiBJZiBzdGFydCBpcyBuZWdhdGl2ZSBvciBncmVhdGVyIHRoYW4g
ZHVyYXRpb24sIHRoZW4gdGhyb3cgYW4gSW52YWxpZEFjY2Vzc0Vycm9yIGV4Y2VwdGlvbiBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gMi4gSWYgZW5kIGlzIGxlc3MgdGhhbiBvciBlcXVh
bCB0byBzdGFydCwgdGhlbiB0aHJvdyBhbiBJbnZhbGlkQWNjZXNzRXJyb3IgZXhjZXB0aW9uIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoc3RhcnQgPCAwIHx8IChtX3NvdXJjZSAmJiAo
c3RkOjppc25hbihtX3NvdXJjZS0+ZHVyYXRpb24oKSkgfHwgc3RhcnQgPiBtX3NvdXJjZS0+ZHVy
YXRpb24oKSkpIHx8IGVuZCA8PSBzdGFydCkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIDMuIElmIHRoaXMgb2JqZWN0
IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YgdGhl
IHBhcmVudCBtZWRpYSBzb3VyY2UgdGhlbiB0aHJvdyBhbgorICAgIC8vICAgIEludmFsaWRTdGF0
ZUVycm9yIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgLy8gNC4gSWYgdGhl
IHVwZGF0aW5nIGF0dHJpYnV0ZSBlcXVhbHMgdHJ1ZSwgdGhlbiB0aHJvdyBhbiBJbnZhbGlkU3Rh
dGVFcnJvciBleGNlcHRpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgIGlmIChpc1JlbW92
ZWQoKSB8fCBtX3VwZGF0aW5nKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gNS4gSWYgdGhlIHJlYWR5U3RhdGUgYXR0
cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIGlzIGluIHRoZSAiZW5kZWQiIHN0YXRl
IHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgLy8gNS4xLiBTZXQgdGhlIHJlYWR5
U3RhdGUgYXR0cmlidXRlIG9mIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlIHRvICJvcGVuIgorICAg
IC8vIDUuMi4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgc291cmNl
b3BlbiBhdCB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSAuCisgICAgbV9zb3VyY2UtPm9wZW5JZklu
RW5kZWRTdGF0ZSgpOworCisgICAgLy8gNi4gU2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8g
dHJ1ZS4KKyAgICBtX3VwZGF0aW5nID0gdHJ1ZTsKKworICAgIC8vIDcuIFF1ZXVlIGEgdGFzayB0
byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHVwZGF0ZXN0YXJ0IGF0IHRoaXMgU291cmNlQnVm
ZmVyIG9iamVjdC4KKyAgICBzY2hlZHVsZUV2ZW50KGV2ZW50TmFtZXMoKS51cGRhdGVzdGFydEV2
ZW50KTsKKworICAgIC8vIDguIFJldHVybiBjb250cm9sIHRvIHRoZSBjYWxsZXIgYW5kIHJ1biB0
aGUgcmVzdCBvZiB0aGUgc3RlcHMgYXN5bmNocm9ub3VzbHkuCisgICAgbV9wZW5kaW5nUmVtb3Zl
U3RhcnQgPSBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUoc3RhcnQpOworICAgIG1fcGVuZGlu
Z1JlbW92ZUVuZCA9IE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJsZShlbmQpOworICAgIG1fcmVt
b3ZlVGltZXIuc3RhcnRPbmVTaG90KDApOworfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6YWJvcnRJ
ZlVwZGF0aW5nKCkKIHsKQEAgLTIzNSw2ICsyNjksMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmFi
b3J0SWZVcGRhdGluZygpCiAgICAgbV9hcHBlbmRCdWZmZXJUaW1lci5zdG9wKCk7CiAgICAgbV9w
ZW5kaW5nQXBwZW5kRGF0YS5jbGVhcigpOwogCisgICAgbV9yZW1vdmVUaW1lci5zdG9wKCk7Cisg
ICAgbV9wZW5kaW5nUmVtb3ZlU3RhcnQgPSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CisgICAg
bV9wZW5kaW5nUmVtb3ZlRW5kID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOworCiAgICAgLy8g
My4yLiBTZXQgdGhlIHVwZGF0aW5nIGF0dHJpYnV0ZSB0byBmYWxzZS4KICAgICBtX3VwZGF0aW5n
ID0gZmFsc2U7CiAKQEAgLTI1MCw2ICsyODgsOCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVtb3Zl
ZEZyb21NZWRpYVNvdXJjZSgpCiAgICAgaWYgKGlzUmVtb3ZlZCgpKQogICAgICAgICByZXR1cm47
CiAKKyAgICBhYm9ydElmVXBkYXRpbmcoKTsKKwogICAgIG1fcHJpdmF0ZS0+cmVtb3ZlZEZyb21N
ZWRpYVNvdXJjZSgpOwogICAgIG1fc291cmNlID0gMDsKICAgICBtX2FzeW5jRXZlbnRRdWV1ZS5j
bG9zZSgpOwpAQCAtMzQ2LDYgKzM4Niw3IEBAIGJvb2wgU291cmNlQnVmZmVyOjpoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdAogdm9pZCBTb3VyY2VCdWZmZXI6OnN0b3AoKQogewogICAgIG1fYXBw
ZW5kQnVmZmVyVGltZXIuc3RvcCgpOworICAgIG1fcmVtb3ZlVGltZXIuc3RvcCgpOwogfQogCiBi
b29sIFNvdXJjZUJ1ZmZlcjo6aXNSZW1vdmVkKCkgY29uc3QKQEAgLTQ3MCw2ICs1MTEsNzkgQEAg
dm9pZCBTb3VyY2VCdWZmZXI6OmFwcGVuZEJ1ZmZlclRpbWVyRmlyZWQoVGltZXI8U291cmNlQnVm
ZmVyPiYpCiAgICAgICAgIHByb3ZpZGVNZWRpYURhdGEoaXRlci0+dmFsdWUsIGl0ZXItPmtleSk7
CiB9CiAKK3ZvaWQgU291cmNlQnVmZmVyOjpyZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCkKK3sKKyAgICAvLyAzLjUuOSBDb2RlZCBG
cmFtZSBSZW1vdmFsIEFsZ29yaXRobQorICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRt
bC1tZWRpYS9yYXctZmlsZS90aXAvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5odG1sI3NvdXJj
ZWJ1ZmZlci1jb2RlZC1mcmFtZS1yZW1vdmFsCisKKyAgICAvLyAxLiBMZXQgc3RhcnQgYmUgdGhl
IHN0YXJ0aW5nIHByZXNlbnRhdGlvbiB0aW1lc3RhbXAgZm9yIHRoZSByZW1vdmFsIHJhbmdlLgor
ICAgIE1lZGlhVGltZSBkdXJhdGlvbk1lZGlhVGltZSA9IE1lZGlhVGltZTo6Y3JlYXRlV2l0aERv
dWJsZShtX3NvdXJjZS0+ZHVyYXRpb24oKSk7CisgICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRp
bWUgPSBNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUobV9zb3VyY2UtPmN1cnJlbnRUaW1lKCkp
OworCisgICAgLy8gMi4gTGV0IGVuZCBiZSB0aGUgZW5kIHByZXNlbnRhdGlvbiB0aW1lc3RhbXAg
Zm9yIHRoZSByZW1vdmFsIHJhbmdlLgorICAgIC8vIDMuIEZvciBlYWNoIHRyYWNrIGJ1ZmZlciBp
biB0aGlzIHNvdXJjZSBidWZmZXIsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgIGZvciAo
YXV0byBpdGVyIDogbV90cmFja0J1ZmZlck1hcCkgeworICAgICAgICBUcmFja0J1ZmZlciYgdHJh
Y2tCdWZmZXIgPSBpdGVyLnZhbHVlOworICAgICAgICAvLyAzLjEuIExldCByZW1vdmUgZW5kIHRp
bWVzdGFtcCBiZSB0aGUgY3VycmVudCB2YWx1ZSBvZiBkdXJhdGlvbgorICAgICAgICBTYW1wbGVN
YXA6Oml0ZXJhdG9yIHJlbW92ZUVuZCA9IHRyYWNrQnVmZmVyLnNhbXBsZXMucHJlc2VudGF0aW9u
RW5kKCk7CisKKyAgICAgICAgLy8gMy4yIElmIHRoaXMgdHJhY2sgYnVmZmVyIGhhcyBhIHJhbmRv
bSBhY2Nlc3MgcG9pbnQgdGltZXN0YW1wIHRoYXQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRv
IGVuZCwgdGhlbiB1cGRhdGUKKyAgICAgICAgLy8gcmVtb3ZlIGVuZCB0aW1lc3RhbXAgdG8gdGhh
dCByYW5kb20gYWNjZXNzIHBvaW50IHRpbWVzdGFtcC4KKyAgICAgICAgU2FtcGxlTWFwOjppdGVy
YXRvciBuZXh0UmFuZG9tQWNjZXNzUG9pbnQgPSB0cmFja0J1ZmZlci5zYW1wbGVzLmZpbmRTeW5j
U2FtcGxlQWZ0ZXJQcmVzZW50YXRpb25UaW1lKGVuZCk7CisgICAgICAgIGlmIChuZXh0UmFuZG9t
QWNjZXNzUG9pbnQtPmZpcnN0ID49IGVuZCkKKyAgICAgICAgICAgIHJlbW92ZUVuZCA9IHRyYWNr
QnVmZmVyLnNhbXBsZXMuZmluZFNhbXBsZUNvbnRhaW5pbmdQcmVzZW50YXRpb25UaW1lKG5leHRS
YW5kb21BY2Nlc3NQb2ludC0+Zmlyc3QpOworCisgICAgICAgIC8vIDMuMyBSZW1vdmUgYWxsIG1l
ZGlhIGRhdGEsIGZyb20gdGhpcyB0cmFjayBidWZmZXIsIHRoYXQgY29udGFpbiBzdGFydGluZyB0
aW1lc3RhbXBzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bworICAgICAgICAvLyBzdGFydCBhbmQg
bGVzcyB0aGFuIHRoZSByZW1vdmUgZW5kIHRpbWVzdGFtcC4KKyAgICAgICAgU2FtcGxlTWFwOjpp
dGVyYXRvciByZW1vdmVTdGFydCA9IHRyYWNrQnVmZmVyLnNhbXBsZXMuZmluZFNhbXBsZUFmdGVy
UHJlc2VudGF0aW9uVGltZShzdGFydCk7CisgICAgICAgIFNhbXBsZU1hcDo6TWFwVHlwZSBlcmFz
ZWRTYW1wbGVzKHJlbW92ZVN0YXJ0LCByZW1vdmVFbmQpOworICAgICAgICBSZWZQdHI8VGltZVJh
bmdlcz4gZXJhc2VkUmFuZ2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKCk7CisgICAgICAgIE1lZGlh
VGltZSBtaWNyb3NlY29uZCgxLCAxMDAwMDAwKTsKKyAgICAgICAgZm9yIChhdXRvIGVyYXNlZEl0
IDogZXJhc2VkU2FtcGxlcykgeworICAgICAgICAgICAgdHJhY2tCdWZmZXIuc2FtcGxlcy5yZW1v
dmVTYW1wbGUoZXJhc2VkSXQuc2Vjb25kLmdldCgpKTsKKyAgICAgICAgICAgIGRvdWJsZSBzdGFy
dFRpbWUgPSBlcmFzZWRJdC5maXJzdC50b0RvdWJsZSgpOworICAgICAgICAgICAgZG91YmxlIGVu
ZFRpbWUgPSAoKGVyYXNlZEl0LmZpcnN0ICsgZXJhc2VkSXQuc2Vjb25kLT5kdXJhdGlvbigpKSAr
IG1pY3Jvc2Vjb25kKS50b0RvdWJsZSgpOworICAgICAgICAgICAgZXJhc2VkUmFuZ2VzLT5hZGQo
c3RhcnRUaW1lLCBlbmRUaW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIGVyYXNlZFJhbmdlcy0+
aW52ZXJ0KCk7CisgICAgICAgIG1fYnVmZmVyZWQtPmludGVyc2VjdFdpdGgoKmVyYXNlZFJhbmdl
cyk7CisKKyAgICAgICAgLy8gMy40IElmIHRoaXMgb2JqZWN0IGlzIGluIGFjdGl2ZVNvdXJjZUJ1
ZmZlcnMsIHRoZSBjdXJyZW50IHBsYXliYWNrIHBvc2l0aW9uIGlzIGdyZWF0ZXIgdGhhbiBvciBl
cXVhbCB0byBzdGFydAorICAgICAgICAvLyBhbmQgbGVzcyB0aGFuIHRoZSByZW1vdmUgZW5kIHRp
bWVzdGFtcCwgYW5kIEhUTUxNZWRpYUVsZW1lbnQucmVhZHlTdGF0ZSBpcyBncmVhdGVyIHRoYW4g
SEFWRV9NRVRBREFUQSwgdGhlbiBzZXQKKyAgICAgICAgLy8gdGhlIEhUTUxNZWRpYUVsZW1lbnQu
cmVhZHlTdGF0ZSBhdHRyaWJ1dGUgdG8gSEFWRV9NRVRBREFUQSBhbmQgc3RhbGwgcGxheWJhY2su
CisgICAgICAgIGlmIChtX2FjdGl2ZSAmJiBjdXJyZW50TWVkaWFUaW1lID49IHN0YXJ0ICYmIGN1
cnJlbnRNZWRpYVRpbWUgPCBlbmQgJiYgbV9wcml2YXRlLT5yZWFkeVN0YXRlKCkgPiBNZWRpYVBs
YXllcjo6SGF2ZU1ldGFkYXRhKQorICAgICAgICAgICAgbV9wcml2YXRlLT5zZXRSZWFkeVN0YXRl
KE1lZGlhUGxheWVyOjpIYXZlTWV0YWRhdGEpOworICAgIH0KKworICAgIC8vIDQuIElmIGJ1ZmZl
ciBmdWxsIGZsYWcgZXF1YWxzIHRydWUgYW5kIHRoaXMgb2JqZWN0IGlzIHJlYWR5IHRvIGFjY2Vw
dCBtb3JlIGJ5dGVzLCB0aGVuIHNldCB0aGUgYnVmZmVyIGZ1bGwgZmxhZyB0byBmYWxzZS4KKyAg
ICAvLyBOby1vcAorfQorCit2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVtb3ZlVGltZXJGaXJlZChUaW1l
cjxTb3VyY2VCdWZmZXI+KikKK3sKKyAgICBBU1NFUlQobV91cGRhdGluZyk7CisgICAgQVNTRVJU
KG1fcGVuZGluZ1JlbW92ZVN0YXJ0LmlzVmFsaWQoKSk7CisgICAgQVNTRVJUKG1fcGVuZGluZ1Jl
bW92ZVN0YXJ0IDwgbV9wZW5kaW5nUmVtb3ZlRW5kKTsKKworICAgIC8vIFNlY3Rpb24gMy4yIHJl
bW92ZSgpIG1ldGhvZCBzdGVwcworICAgIC8vIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC1t
ZWRpYS9yYXctZmlsZS9kZWZhdWx0L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UuaHRtbCN3aWRs
LVNvdXJjZUJ1ZmZlci1yZW1vdmUtdm9pZC1kb3VibGUtc3RhcnQtZG91YmxlLWVuZAorCisgICAg
Ly8gOS4gUnVuIHRoZSBjb2RlZCBmcmFtZSByZW1vdmFsIGFsZ29yaXRobSB3aXRoIHN0YXJ0IGFu
ZCBlbmQgYXMgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIHJlbW92YWwgcmFuZ2UuCisgICAgcmVt
b3ZlQ29kZWRGcmFtZXMobV9wZW5kaW5nUmVtb3ZlU3RhcnQsIG1fcGVuZGluZ1JlbW92ZUVuZCk7
CisKKyAgICAvLyAxMC4gU2V0IHRoZSB1cGRhdGluZyBhdHRyaWJ1dGUgdG8gZmFsc2UuCisgICAg
bV91cGRhdGluZyA9IGZhbHNlOworICAgIG1fcGVuZGluZ1JlbW92ZVN0YXJ0ID0gTWVkaWFUaW1l
OjppbnZhbGlkVGltZSgpOworICAgIG1fcGVuZGluZ1JlbW92ZUVuZCA9IE1lZGlhVGltZTo6aW52
YWxpZFRpbWUoKTsKKworICAgIC8vIDExLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBl
dmVudCBuYW1lZCB1cGRhdGUgYXQgdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgorICAgIHNjaGVk
dWxlRXZlbnQoZXZlbnROYW1lcygpLnVwZGF0ZUV2ZW50KTsKKworICAgIC8vIDEyLiBRdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCB1cGRhdGVlbmQgYXQgdGhpcyBTb3Vy
Y2VCdWZmZXIgb2JqZWN0LgorICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLnVwZGF0ZWVu
ZEV2ZW50KTsKK30KKwogY29uc3QgQXRvbWljU3RyaW5nJiBTb3VyY2VCdWZmZXI6OmRlY29kZUVy
cm9yKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBkZWNvZGUo
ImRlY29kZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggMzc0
MTRiMzQ3NzIwNDQzMTFkYzA5NzBkMzJkNzUyMmYyN2VkYTdkYS4uNTdiMTNlZWNhYjhiOWYxNGI4
Y2E3Y2UzMmVjODBmNGZlM2ZkNjMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFwcGVuZEJ1ZmZlcihQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBkYXRhLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdm9pZCBhcHBlbmRCdWZmZXIoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZp
ZXc+IGRhdGEsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGFib3J0KEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICB2b2lkIHJlbW92ZShkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAogICAgIHZvaWQgYWJvcnRJZlVwZGF0aW5nKCk7CiAgICAgdm9pZCByZW1vdmVkRnJv
bU1lZGlhU291cmNlKCk7CkBAIC0xNTIsNiArMTUzLDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
bW9uaXRvckJ1ZmZlcmluZ1JhdGUoKTsKIAorICAgIHZvaWQgcmVtb3ZlVGltZXJGaXJlZChUaW1l
cjxTb3VyY2VCdWZmZXI+Kik7CisgICAgdm9pZCByZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCk7CisKICAgICBSZWZQdHI8U291cmNl
QnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIE1lZGlhU291cmNlKiBtX3NvdXJjZTsKICAg
ICBHZW5lcmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKQEAgLTE4Myw2ICsxODcsMTAg
QEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV90aW1lT2ZCdWZmZXJpbmdNb25pdG9yOwogICAgIGRv
dWJsZSBtX2J1ZmZlcmVkU2luY2VMYXN0TW9uaXRvcjsKICAgICBkb3VibGUgbV9hdmVyYWdlQnVm
ZmVyUmF0ZTsKKworICAgIE1lZGlhVGltZSBtX3BlbmRpbmdSZW1vdmVTdGFydDsKKyAgICBNZWRp
YVRpbWUgbV9wZW5kaW5nUmVtb3ZlRW5kOworICAgIFRpbWVyPFNvdXJjZUJ1ZmZlcj4gbV9yZW1v
dmVUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbAppbmRleCBmMTNjNmZj
ZDM5ZjlmNWM5MjA5MTczNTAwYzIyMzAzYTEwYzI0MGY0Li40NWE0NjViYjMzNmI0MmFmZGViZWUy
MDdhNDIyZGVlYWY0ZGJlZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaWRsCkBAIC01MSw2ICs1MSw3IEBACiAKICAgICAvLyBB
Ym9ydCB0aGUgY3VycmVudCBzZWdtZW50IGFwcGVuZCBzZXF1ZW5jZS4KICAgICBbUmFpc2VzRXhj
ZXB0aW9uXSB2b2lkIGFib3J0KCk7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCByZW1vdmUo
ZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kKTsKICAgICAKICAgICAvLyBUcmFjayBzdXBwb3J0CiAg
ICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLXSByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9UcmFj
a0xpc3QgYXVkaW9UcmFja3M7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGEwNmNkNDE4ODQzNmE3MTMzMjcyZDZhZDQ4NTRl
Y2MxODJjZjY2Yi4uNThmMTU3MTAwZmE4NzlhM2E2YjZhNmEwNGE1MDBhNzg0ODI4N2E1MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTAzLTI4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIFtNU0VdIEltcGxlbWVudCBzdXBwb3J0IGZvciBTb3VyY2VCdWZm
ZXIucmVtb3ZlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMTU2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZW1vdmUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlbW92
ZS5odG1sOiBBZGRlZC4KKwogMjAxNC0wMy0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVuZGVyIHRyZWUgY29uc3RydWN0aW9uIGlzIE8oTl4yKSBpbiBu
dW1iZXIgb2Ygc2libGluZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UtcmVtb3ZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVtb3ZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43OTI2M2ZhMWIzZjYzNGNlMDlkZWQ0ZGE4NDMxYmJkNDBkODZlNDk0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZW1vdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdHMgdGhlIFNvdXJjZUJ1ZmZl
ci5yZW1vdmUoKSBBUEkuIFRoZSB0ZXN0IHdpbGwgcmVtb3ZlIHNhbXBsZXMgZnJvbSB0aGUgZ2l2
ZW4gc3RhcnRUaW1lICgwKSB1cCB0byBidXQgbm90IGluY2x1ZGluZyB0aGUgcHJlc2VudGF0aW9u
IHN0YXJ0IHRpbWUgb2YgdGhlIHN5bmMgc2FtcGxlICg0KSBhZnRlciBlbmRUaW1lICgyKS4KKwor
UlVOKHZpZGVvLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc291cmNlKSkKK0VWRU5UKHNvdXJj
ZW9wZW4pCitSVU4oc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8v
bW9jazsgY29kZWNzPW1vY2siKSkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGluaXRT
ZWdtZW50KSkKK0VWRU5UKHVwZGF0ZWVuZCkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVy
KHNhbXBsZXMpKQorRVZFTlQodXBkYXRlZW5kKQorUlVOKHNvdXJjZUJ1ZmZlci5yZW1vdmUoMCwg
MikpCitFVkVOVCh1cGRhdGVlbmQpCitFWFBFQ1RFRCAoc291cmNlQnVmZmVyLmJ1ZmZlcmVkLnN0
YXJ0KDApLnRvRml4ZWQoMSkgPT0gJzQnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZW1vdmUuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVtb3ZlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDk0ODU5MTU5NTUwZWU4YWYyOGM3MDRjODQxMDU4ZjgxYTE2M2QxMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtcmVtb3ZlLmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDx0aXRsZT5tb2NrLW1lZGlhLXNvdXJjZTwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Im1vY2stbWVkaWEtc291cmNlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB2YXIgc291cmNl
OworICAgIHZhciBzb3VyY2VCdWZmZXI7CisgICAgdmFyIGluaXRTZWdtZW50OworCisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5pbml0aWFsaXplTW9ja01lZGlh
U291cmNlKCk7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBmaW5kTWVkaWFF
bGVtZW50KCk7CisKKyAgICAgICAgc291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAg
IHdhaXRGb3JFdmVudE9uKHNvdXJjZSwgJ3NvdXJjZW9wZW4nLCBzb3VyY2VPcGVuKTsKKyAgICAg
ICAgcnVuKCd2aWRlby5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNvdXJjZSknKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBzb3VyY2VPcGVuKCkgeworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZl
ciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21vY2s7IGNvZGVjcz1tb2NrIiknKTsK
KyAgICAgICAgd2FpdEZvckV2ZW50T24oc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJywgbG9hZFNh
bXBsZXMsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgaW5pdFNlZ21lbnQgPSBtYWtlQUluaXQoOCwg
W21ha2VBVHJhY2soMSwgJ21vY2snLCBUUkFDS19LSU5ELlZJREVPKV0pOworICAgICAgICBydW4o
J3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaW5pdFNlZ21lbnQpJyk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gbG9hZFNhbXBsZXMoKSB7CisgICAgICAgIHNhbXBsZXMgPSBjb25jYXRlbmF0ZVNh
bXBsZXMoWworICAgICAgICAgICAgbWFrZUFTYW1wbGUoMCwgMCwgMSwgMSwgU0FNUExFX0ZMQUcu
U1lOQyksCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgxLCAxLCAxLCAxLCBTQU1QTEVfRkxBRy5O
T05FKSwKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDIsIDIsIDEsIDEsIFNBTVBMRV9GTEFHLk5P
TkUpLAorICAgICAgICAgICAgbWFrZUFTYW1wbGUoMywgMywgMSwgMSwgU0FNUExFX0ZMQUcuTk9O
RSksCisgICAgICAgICAgICBtYWtlQVNhbXBsZSg0LCA0LCAxLCAxLCBTQU1QTEVfRkxBRy5TWU5D
KSwKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDUsIDUsIDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUp
LAorICAgICAgICAgICAgbWFrZUFTYW1wbGUoNiwgNiwgMSwgMSwgU0FNUExFX0ZMQUcuTk9ORSks
CisgICAgICAgICAgICBtYWtlQVNhbXBsZSg3LCA3LCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FKSwK
KyAgICAgICAgXSk7CisgICAgICAgIHdhaXRGb3JFdmVudE9uKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0
ZWVuZCcsIHJlbW92ZSwgZmFsc2UsIHRydWUpOworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5h
cHBlbmRCdWZmZXIoc2FtcGxlcyknKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZW1vdmUoKSB7
CisgICAgICAgIHdhaXRGb3JFdmVudE9uKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZWVuZCcsIGNoZWNr
UmVtb3ZlZCwgZmFsc2UsIHRydWUpOworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5yZW1vdmUo
MCwgMiknKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja1JlbW92ZWQoKSB7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgnc291cmNlQnVmZmVyLmJ1ZmZlcmVkLnN0YXJ0KDApLnRvRml4ZWQoMSkn
LCA0KTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0KKworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXY+VGhpcyB0ZXN0cyB0aGUgU291
cmNlQnVmZmVyLnJlbW92ZSgpIEFQSS4gVGhlIHRlc3Qgd2lsbCByZW1vdmUgc2FtcGxlcyBmcm9t
IHRoZSBnaXZlbiBzdGFydFRpbWUgKDApIHVwIHRvIGJ1dCBub3QgaW5jbHVkaW5nIHRoZSBwcmVz
ZW50YXRpb24gc3RhcnQgdGltZSBvZiB0aGUgc3luYyBzYW1wbGUgKDQpIGFmdGVyIGVuZFRpbWUg
KDIpLjwvZGl2PgorICAgIDx2aWRlbz48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>