<?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>119127</bug_id>
          
          <creation_ts>2013-07-25 22:18:04 -0700</creation_ts>
          <short_desc>Make SuspendableTimer safer</short_desc>
          <delta_ts>2013-07-31 11:23:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jeffrey+webkit</cc>
    
    <cc>kangil.han</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>911872</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-25 22:18:04 -0700</bug_when>
    <thetext>SuspendableTimer is fairly difficult to understand, or to use safely. It does not enforce the invariant that fired() cannot be called when the timer is suspended. And a debug-only m_suspended member variable that&apos;s used for assertions doesn&apos;t accurately track whether ActiveDOMObject is suspended.

Most ActiveDOMObjects are pretty sloppy about this, but timers are easiest to misuse, especially through DocumentEventQueue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911885</commentid>
    <comment_count>1</comment_count>
      <attachid>207510</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-25 23:33:47 -0700</bug_when>
    <thetext>Created attachment 207510
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911886</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-25 23:36:43 -0700</bug_when>
    <thetext>Attachment 207510 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/dom/DocumentEventQueue.cpp&apos;, u&apos;Source/WebCore/page/DOMTimer.cpp&apos;, u&apos;Source/WebCore/page/DOMTimer.h&apos;, u&apos;Source/WebCore/page/SuspendableTimer.cpp&apos;, u&apos;Source/WebCore/page/SuspendableTimer.h&apos;]&quot; exit_code: 1
Source/WebCore/page/SuspendableTimer.cpp:141:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912266</commentid>
    <comment_count>3</comment_count>
      <attachid>207510</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-07-27 14:14:53 -0700</bug_when>
    <thetext>Comment on attachment 207510
proposed patch

Nice. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912285</commentid>
    <comment_count>4</comment_count>
      <attachid>207510</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-27 17:03:03 -0700</bug_when>
    <thetext>Comment on attachment 207510
proposed patch

Clearing flags on attachment: 207510

Committed r153406: &lt;http://trac.webkit.org/changeset/153406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912286</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-27 17:03:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913431</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-31 11:23:34 -0700</bug_when>
    <thetext>This caused bug 119345.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207510</attachid>
            <date>2013-07-25 23:33:47 -0700</date>
            <delta_ts>2013-07-27 17:03:03 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>SuspendableTimer.txt</filename>
            <type>text/plain</type>
            <size>14692</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MzM2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBACisyMDEzLTA3LTI1ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU3VzcGVuZGFibGVU
aW1lciBzYWZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE5MTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3VzcGVuZGFibGVUaW1lciBub3cgZW5mb3JjZXMgdGhhdCBpdCBzdGF5cyBzdXNwZW5kZWQg
dW50aWwgcmVzdW1lZCAob3IgdW50aWwgc3RvcHBlZAorICAgICAgICBhbmQgc3RhcnRlZCBhZ2Fp
bikuIFRvIGVuc3VyZSB0aGlzLCBUaW1lckJhc2UgaXMgbm93IGEgcHJpdmF0ZSBiYXNlIGNsYXNz
LCBhbmQgcGFydHMgb2YKKyAgICAgICAgaXRzIGludGVyZmFjZSB0aGF0IGNsaWVudHMgdXNlIGFy
ZSByZWltcGxlbWVudGVkIHdpdGggc3VzcGVuZC9yZXN1bWUgaW4gbWluZC4KKworICAgICAgICBE
ZXJpdmVkIGNsYXNzZXMgYXJlIHN0aWxsIGFsbG93ZWQgdG8gb3ZlcnJpZGUgVGltZXJCYXNlIHZp
cnR1YWwgZnVuY3Rpb25zIChub3RhYmx5CisgICAgICAgIGZpcmVkKCkgYW5kIGFsaWduZWRGaXJl
VGltZSgpKS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlVGltZXIpOiBSZW1vdmVkIGFuIGV4dHJhbmVv
dXMgV1RGX01BS0VfTk9OQ09QWUFCTEUsCisgICAgICAgIFRpbWVyQmFzZSBoYXMgaXQgYWxyZWFk
eS4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZVRpbWVyOjpjcmVhdGUpOiBV
c2Ugb3VyIG5vcm1hbCBjcmVhdGUoKSBwYXR0ZXJuLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRFdmVudFF1ZXVlOjpEb2N1bWVudEV2ZW50UXVldWUpOiBNYWRlIHRoZSBjb25zdHJ1Y3RvciBw
cml2YXRlLCBhY2NvcmRpbmdseS4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1
ZTo6Y2FuY2VsRXZlbnQpOiBVc2UgU3VzcGVuZGFibGVUaW1lcjo6Y2FuY2VsKCksIHdoaWNoCisg
ICAgICAgIGlzIGEgbmV3IG5hbWUgdG8gZGlzYW1iaWd1YXRlIFRpbWVyQmFzZTo6c3RvcCgpIGFu
ZCBBY3RpdmVET01PYmplY3Q6OnN0b3AoKS4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZl
bnRRdWV1ZTo6Y2xvc2UpOiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKTogTm93IHRoYXQgU3VzcGVuZGFibGVU
aW1lciBrbm93cyB3aGV0aGVyIGl0J3MgY3VycmVudGx5CisgICAgICAgIHN1c3BlbmRlZCwgYXNz
ZXJ0IHRoYXQgaXQncyBub3QuCisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6ZGlkU3RvcCk6
IFNlcGFyYXRlZCBBY3RpdmVET01PYmplY3Q6OnN0b3AoKSBpbXBsZW1lbnRhdGlvbiBmcm9tCisg
ICAgICAgIGFkZGl0aW9uYWwgY2xlYW51cCwgYWxsb3dpbmcgZm9yIGJldHRlciBTdXNwZW5kYWJs
ZVRpbWVyIGVuY2Fwc3VsYXRpb24uCisKKyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmg6IEFkZGVk
IEZJTkFMIGFuZCBPVlZFUklERSBzcGVjaWZpZXJzIGFzIGFwcHJvcHJpYXRlLgorCisgICAgICAg
ICogcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmg6IEFkZGVkIEZJTkFMIChhbmQgT1ZFUlJJREUpIHF1
YWxpZmllcnMgdG8gQWN0aXZlRE9NT2JqZWN0CisgICAgICAgIG1ldGhvZHMuIEEgZGVyaXZlZCBj
bGFzcyB0aGF0IHdhbnRzIHRvIG92ZXJyaWRlIGN1cnJlbnQgYmVoYXZpb3IgaXMgbW9zdCBsaWtl
bHkgbm90CisgICAgICAgIGEgdGltZXIsIGFuZCB0aHVzIHNob3VsZG4ndCBiZSBhIGRlcml2ZWQg
Y2xhc3MuCisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjppc0FjdGl2ZSk6IFN1
c3BlbmRhYmxlVGltZXIgd2l0aCBhIG5leHQgZmlyZSB0aW1lIGlzCisgICAgICAgIGFjdGl2ZSBl
dmVuIGlmIHN1c3BlbmRlZCwgd2Ugc2hvdWxkbid0IG92ZXJ3cml0ZSBpdHMgc2F2ZWQgZGF0YSB0
aGlua2luZyB0aGF0IGl0J3MKKyAgICAgICAgaW5hY3RpdmUuCisgICAgICAgIChXZWJDb3JlOjpT
dXNwZW5kYWJsZVRpbWVyOjppc1N1c3BlbmRlZCk6IEV4cG9zZWQgdG8gY2xpZW50cyAobV9zdXNw
ZW5kZWQgaXMgbm8KKyAgICAgICAgbG9uZ2VyIGRlYnVnIG9ubHkpLgorCisgICAgICAgICogcGFn
ZS9TdXNwZW5kYWJsZVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGlt
ZXI6OlN1c3BlbmRhYmxlVGltZXIpOiBVcGRhdGVkIGZvciBuZXcgdmFyaWFibGUgbmFtZXMuCisg
ICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdG9wKTogVGhpcyBpcyBBY3RpdmVE
T01PYmplY3Q6OnN0b3AoKSwgd2hpY2ggaXMgY2FsbGVkCisgICAgICAgIGJlZm9yZSBmaW5hbCBk
ZXN0cnVjdGlvbi4gV2UgZG9uJ3QgdHJhY2sgdGhpcyBzdGF0ZSBkaXJlY3RseSwgYnV0IGNhbiBh
cHByb3hpbWF0ZQorICAgICAgICB3aXRoIHNldHRpbmcgbV9zdXNwZW5kZWQsIHNvIGV2ZW4gaWYg
c29tZW9uZSB0cmllcyB0byBzdGFydCB0aGUgdGltZXIgYWZ0ZXJ3YXJkcywKKyAgICAgICAgaXQg
d29uJ3QgZmlyZS4KKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OnN1c3BlbmQp
OiBVcGRhdGVkIGZvciBuZXcgbmFtZXMuCisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRp
bWVyOjpyZXN1bWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6
OmRpZFN0b3ApOiBOby1vcCBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBjbGllbnQgaG9vay4K
KyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OmNhbmNlbCk6IEVxdWl2YWxlbnQg
b2YgVGltZXJCYXNlOjpzdG9wKCksIHdoaWNoIGFsc28KKyAgICAgICAgd29ya3Mgd2hlbiBzdXNw
ZW5kZWQuIAorICAgICAgICAoV2ViQ29yZTo6U3VzcGVuZGFibGVUaW1lcjo6c3RhcnRSZXBlYXRp
bmcpOiBSZXBsYWNlbWVudCBmb3IgVGltZXJCYXNlIGZ1bmN0aW9uIHdpdGgKKyAgICAgICAgdGhl
IHNhbWUgbmFtZSwgd2hpY2ggd29ya3MgY29ycmVjdGx5IHdoZW4gc3VzcGVuZGVkLiBXZSBkb24n
dCB3YW50IHRvIGFjdHVhbGx5IHN0YXJ0CisgICAgICAgIHRoZSB0aW1lciBpbiB0aGlzIGNhc2Uu
CisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjpzdGFydE9uZVNob3QpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlN1c3BlbmRhYmxlVGltZXI6OnJlcGVhdEludGVydmFsKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjphdWdtZW50RmlyZUlu
dGVydmFsKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdXNwZW5kYWJsZVRpbWVyOjphdWdt
ZW50UmVwZWF0SW50ZXJ2YWwpOiBEaXR0by4KKwogMjAxMy0wNy0yNSAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50Ojp0ZXh0UmVuZGVyZXJBZnRlclVwZGF0ZUxheW91dApJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAJKHJldmlzaW9uIDE1MzM2NikKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNywxNSArMzcsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotY2xhc3Mg
RG9jdW1lbnRFdmVudFF1ZXVlVGltZXIgOiBwdWJsaWMgU3VzcGVuZGFibGVUaW1lciB7Ci0gICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoRG9jdW1lbnRFdmVudFF1ZXVlVGltZXIpOworY2xhc3MgRG9j
dW1lbnRFdmVudFF1ZXVlVGltZXIgRklOQUwgOiBwdWJsaWMgU3VzcGVuZGFibGVUaW1lciB7CiBw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RG9jdW1lbnRFdmVudFF1ZXVlVGltZXI+IGNy
ZWF0ZShEb2N1bWVudEV2ZW50UXVldWUqIGV2ZW50UXVldWUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERvY3VtZW50
RXZlbnRRdWV1ZVRpbWVyKGV2ZW50UXVldWUsIGNvbnRleHQpKTsKKyAgICB9CisKK3ByaXZhdGU6
CiAgICAgRG9jdW1lbnRFdmVudFF1ZXVlVGltZXIoRG9jdW1lbnRFdmVudFF1ZXVlKiBldmVudFF1
ZXVlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgICAgICA6IFN1c3BlbmRh
YmxlVGltZXIoY29udGV4dCkKICAgICAgICAgLCBtX2V2ZW50UXVldWUoZXZlbnRRdWV1ZSkgeyB9
CiAKLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgeyBtX2V2ZW50UXVldWUtPnBl
bmRpbmdFdmVudFRpbWVyRmlyZWQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpIE9WRVJS
SURFCisgICAgeworICAgICAgICBBU1NFUlQoIWlzU3VzcGVuZGVkKCkpOworICAgICAgICBtX2V2
ZW50UXVldWUtPnBlbmRpbmdFdmVudFRpbWVyRmlyZWQoKTsKKyAgICB9CisKICAgICBEb2N1bWVu
dEV2ZW50UXVldWUqIG1fZXZlbnRRdWV1ZTsKIH07CiAKQEAgLTU1LDcgKzY0LDcgQEAgUGFzc1Jl
ZlB0cjxEb2N1bWVudEV2ZW50UXVldWU+IERvY3VtZW50RQogfQogCiBEb2N1bWVudEV2ZW50UXVl
dWU6OkRvY3VtZW50RXZlbnRRdWV1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQot
ICAgIDogbV9wZW5kaW5nRXZlbnRUaW1lcihhZG9wdFB0cihuZXcgRG9jdW1lbnRFdmVudFF1ZXVl
VGltZXIodGhpcywgY29udGV4dCkpKQorICAgIDogbV9wZW5kaW5nRXZlbnRUaW1lcihEb2N1bWVu
dEV2ZW50UXVldWVUaW1lcjo6Y3JlYXRlKHRoaXMsIGNvbnRleHQpKQogICAgICwgbV9pc0Nsb3Nl
ZChmYWxzZSkKIHsKICAgICBtX3BlbmRpbmdFdmVudFRpbWVyLT5zdXNwZW5kSWZOZWVkZWQoKTsK
QEAgLTEwMywxNCArMTEyLDE0IEBAIGJvb2wgRG9jdW1lbnRFdmVudFF1ZXVlOjpjYW5jZWxFdmVu
dChFdmUKICAgICBpZiAoZm91bmQpCiAgICAgICAgIG1fcXVldWVkRXZlbnRzLnJlbW92ZShpdCk7
CiAgICAgaWYgKG1fcXVldWVkRXZlbnRzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9wZW5kaW5nRXZl
bnRUaW1lci0+c3RvcCgpOworICAgICAgICBtX3BlbmRpbmdFdmVudFRpbWVyLT5jYW5jZWwoKTsK
ICAgICByZXR1cm4gZm91bmQ7CiB9CiAKIHZvaWQgRG9jdW1lbnRFdmVudFF1ZXVlOjpjbG9zZSgp
CiB7CiAgICAgbV9pc0Nsb3NlZCA9IHRydWU7Ci0gICAgbV9wZW5kaW5nRXZlbnRUaW1lci0+c3Rv
cCgpOworICAgIG1fcGVuZGluZ0V2ZW50VGltZXItPmNhbmNlbCgpOwogICAgIG1fcXVldWVkRXZl
bnRzLmNsZWFyKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCShyZXZpc2lv
biAxNTMzNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBAIHZvaWQgRE9NVGltZXI6OmZpcmVkKCkKIHsKICAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OwogICAgIHRpbWVyTmVzdGluZ0xldmVsID0gbV9uZXN0aW5nTGV2ZWw7CisgICAgQVNTRVJUKCFp
c1N1c3BlbmRlZCgpKTsKICAgICBBU1NFUlQoIWNvbnRleHQtPmFjdGl2ZURPTU9iamVjdHNBcmVT
dXNwZW5kZWQoKSk7CiAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvciht
X3Nob3VsZEZvcndhcmRVc2VyR2VzdHVyZSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1
cmUgOiBQb3NzaWJseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7CiAgICAgLy8gT25seSB0aGUgZmly
c3QgZXhlY3V0aW9uIG9mIGEgbXVsdGktc2hvdCB0aW1lciBzaG91bGQgZ2V0IGFuIGFmZmlybWF0
aXZlIHVzZXIgZ2VzdHVyZSBpbmRpY2F0b3IuCkBAIC0xNTAsOSArMTUxLDggQEAgdm9pZCBET01U
aW1lcjo6Y29udGV4dERlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgRE9N
VGltZXI6OnN0b3AoKQordm9pZCBET01UaW1lcjo6ZGlkU3RvcCgpCiB7Ci0gICAgU3VzcGVuZGFi
bGVUaW1lcjo6c3RvcCgpOwogICAgIC8vIE5lZWQgdG8gcmVsZWFzZSBKUyBvYmplY3RzIHBvdGVu
dGlhbGx5IHByb3RlY3RlZCBieSBTY2hlZHVsZWRBY3Rpb24KICAgICAvLyBiZWNhdXNlIHRoZXkg
Y2FuIGZvcm0gY2lyY3VsYXIgcmVmZXJlbmNlcyBiYWNrIHRvIHRoZSBTY3JpcHRFeGVjdXRpb25D
b250ZXh0CiAgICAgLy8gd2hpY2ggd2lsbCBjYXVzZSBhIG1lbW9yeSBsZWFrLgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NVGltZXIuaAkocmV2aXNpb24gMTUzMzY2KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01UaW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKIAotICAgIGNsYXNzIERPTVRp
bWVyIDogcHVibGljIFN1c3BlbmRhYmxlVGltZXIgeworICAgIGNsYXNzIERPTVRpbWVyIEZJTkFM
IDogcHVibGljIFN1c3BlbmRhYmxlVGltZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVh
bCB+RE9NVGltZXIoKTsKICAgICAgICAgLy8gQ3JlYXRlcyBhIG5ldyB0aW1lciBvd25lZCBieSBz
cGVjaWZpZWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RhcnRzIGl0CkBAIC00NCw4ICs0NCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgcmVtb3ZlQnlJZChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50IHRpbWVvdXRJZCk7CiAKICAgICAgICAgLy8gQWN0
aXZlRE9NT2JqZWN0Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCk7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0
RGVzdHJveWVkKCkgT1ZFUlJJREU7CiAKICAgICAgICAgLy8gQWRqdXN0IHRvIGEgY2hhbmdlIGlu
IHRoZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0J3MgbWluaW11bSB0aW1lciBpbnRlcnZhbC4KICAg
ICAgICAgLy8gVGhpcyBhbGxvd3MgdGhlIG1pbmltdW0gYWxsb3dhYmxlIGludGVydmFsIHRpbWUg
dG8gYmUgY2hhbmdlZCBpbiByZXNwb25zZQpAQCAtNTQsMTIgKzUzLDE1IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIERPTVRpbWVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCBpbnRlcnZhbCwgYm9v
bCBzaW5nbGVTaG90KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCk7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBmaXJlZCgpIE9WRVJSSURFOworCisgICAgICAgIC8vIFN1c3BlbmRhYmxlVGlt
ZXIKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFN0b3AoKSBPVkVSUklERTsKIAogICAgICAgICBk
b3VibGUgaW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKGludCB0aW1lb3V0LCBkb3VibGUgbWluaW11
bVRpbWVySW50ZXJ2YWwpIGNvbnN0OwogCiAgICAgICAgIC8vIFJldHVucyB0aW1lciBmaXJlIHRp
bWUgcm91bmRlZCB0byB0aGUgbmV4dCBtdWx0aXBsZSBvZiB0aW1lciBhbGlnbm1lbnQgaW50ZXJ2
YWwuCi0gICAgICAgIHZpcnR1YWwgZG91YmxlIGFsaWduZWRGaXJlVGltZShkb3VibGUpIGNvbnN0
OworICAgICAgICB2aXJ0dWFsIGRvdWJsZSBhbGlnbmVkRmlyZVRpbWUoZG91YmxlKSBjb25zdCBP
VkVSUklERTsKIAogICAgICAgICBpbnQgbV90aW1lb3V0SWQ7CiAgICAgICAgIGludCBtX25lc3Rp
bmdMZXZlbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAko
cmV2aXNpb24gMTUzMzY2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMTIgKzMzLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogU3VzcGVuZGFibGVUaW1lcjo6U3VzcGVuZGFibGVUaW1lcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCi0gICAgLCBtX25l
eHRGaXJlSW50ZXJ2YWwoMCkKLSAgICAsIG1fcmVwZWF0SW50ZXJ2YWwoMCkKLSAgICAsIG1fYWN0
aXZlKGZhbHNlKQotI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAsIG1fc3VzcGVuZGVkKGZhbHNl
KQotI2VuZGlmCisgICAgLCBtX3NhdmVkTmV4dEZpcmVJbnRlcnZhbCgwKQorICAgICwgbV9zYXZl
ZFJlcGVhdEludGVydmFsKDApCisgICAgLCBtX3NhdmVkSXNBY3RpdmUoZmFsc2UpCiB7CiB9CiAK
QEAgLTUzLDMxICs1MSwzNyBAQCBib29sIFN1c3BlbmRhYmxlVGltZXI6Omhhc1BlbmRpbmdBY3Rp
dml0CiAKIHZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3RvcCgpCiB7Ci0gICAgVGltZXJCYXNlOjpz
dG9wKCk7CisgICAgaWYgKCFtX3N1c3BlbmRlZCkKKyAgICAgICAgVGltZXJCYXNlOjpzdG9wKCk7
CisKKyAgICAvLyBNYWtlIGl0IGxlc3MgbGlrZWx5IHRoYXQgU3VzcGVuZGFibGVUaW1lciBpcyBh
Y2NpZGVudGFsbHkgcmV2aXZlZCBhbmQgZmlyZXMgYWZ0ZXIgYmVpbmcgc3RvcHBlZC4KKyAgICAv
LyBJdCBpcyBub3QgYWxsb3dlZCBmb3IgYW4gQWN0aXZlRE9NT2JqZWN0IHRvIGJlY29tZSBhY3Rp
dmUgYWdhaW4gYWZ0ZXIgc3RvcCgpLgorICAgIG1fc3VzcGVuZGVkID0gdHJ1ZTsKKyAgICBtX3Nh
dmVkSXNBY3RpdmUgPSBmYWxzZTsKKworICAgIGRpZFN0b3AoKTsKIH0KIAogdm9pZCBTdXNwZW5k
YWJsZVRpbWVyOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pCiB7Ci0jaWYgIUFTU0VSVF9E
SVNBQkxFRAogICAgIEFTU0VSVCghbV9zdXNwZW5kZWQpOwogICAgIG1fc3VzcGVuZGVkID0gdHJ1
ZTsKLSNlbmRpZgotICAgIG1fYWN0aXZlID0gaXNBY3RpdmUoKTsKLSAgICBpZiAobV9hY3RpdmUp
IHsKLSAgICAgICAgbV9uZXh0RmlyZUludGVydmFsID0gbmV4dFVuYWxpZ25lZEZpcmVJbnRlcnZh
bCgpOwotICAgICAgICBtX3JlcGVhdEludGVydmFsID0gcmVwZWF0SW50ZXJ2YWwoKTsKKworICAg
IG1fc2F2ZWRJc0FjdGl2ZSA9IFRpbWVyQmFzZTo6aXNBY3RpdmUoKTsKKyAgICBpZiAobV9zYXZl
ZElzQWN0aXZlKSB7CisgICAgICAgIG1fc2F2ZWROZXh0RmlyZUludGVydmFsID0gbmV4dFVuYWxp
Z25lZEZpcmVJbnRlcnZhbCgpOworICAgICAgICBtX3NhdmVkUmVwZWF0SW50ZXJ2YWwgPSByZXBl
YXRJbnRlcnZhbCgpOwogICAgICAgICBUaW1lckJhc2U6OnN0b3AoKTsKICAgICB9CiB9CiAKIHZv
aWQgU3VzcGVuZGFibGVUaW1lcjo6cmVzdW1lKCkKIHsKLSNpZiAhQVNTRVJUX0RJU0FCTEVECiAg
ICAgQVNTRVJUKG1fc3VzcGVuZGVkKTsKICAgICBtX3N1c3BlbmRlZCA9IGZhbHNlOwotI2VuZGlm
Ci0gICAgaWYgKG1fYWN0aXZlKQotICAgICAgICBzdGFydChtX25leHRGaXJlSW50ZXJ2YWwsIG1f
cmVwZWF0SW50ZXJ2YWwpOworCisgICAgaWYgKG1fc2F2ZWRJc0FjdGl2ZSkKKyAgICAgICAgc3Rh
cnQobV9zYXZlZE5leHRGaXJlSW50ZXJ2YWwsIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbCk7CiB9CiAK
IGJvb2wgU3VzcGVuZGFibGVUaW1lcjo6Y2FuU3VzcGVuZCgpIGNvbnN0CkBAIC04NSw0ICs4OSw3
NCBAQCBib29sIFN1c3BlbmRhYmxlVGltZXI6OmNhblN1c3BlbmQoKSBjb25zCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3ZvaWQgU3VzcGVuZGFibGVUaW1lcjo6ZGlkU3RvcCgpCit7Cit9CisKK3Zv
aWQgU3VzcGVuZGFibGVUaW1lcjo6Y2FuY2VsKCkKK3sKKyAgICBpZiAoIW1fc3VzcGVuZGVkKQor
ICAgICAgICBUaW1lckJhc2U6OnN0b3AoKTsKKyAgICBlbHNlCisgICAgICAgIG1fc3VzcGVuZGVk
ID0gZmFsc2U7Cit9CisKK3ZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3RhcnRSZXBlYXRpbmcoZG91
YmxlIHJlcGVhdEludGVydmFsKQoreworICAgIGlmICghbV9zdXNwZW5kZWQpCisgICAgICAgIFRp
bWVyQmFzZTo6c3RhcnRSZXBlYXRpbmcocmVwZWF0SW50ZXJ2YWwpOworICAgIGVsc2UgeworICAg
ICAgICBtX3NhdmVkSXNBY3RpdmUgPSB0cnVlOworICAgICAgICBtX3NhdmVkTmV4dEZpcmVJbnRl
cnZhbCA9IHJlcGVhdEludGVydmFsOworICAgICAgICBtX3NhdmVkUmVwZWF0SW50ZXJ2YWwgPSBy
ZXBlYXRJbnRlcnZhbDsKKyAgICB9Cit9CisKK3ZvaWQgU3VzcGVuZGFibGVUaW1lcjo6c3RhcnRP
bmVTaG90KGRvdWJsZSBpbnRlcnZhbCkKK3sKKyAgICBpZiAoIW1fc3VzcGVuZGVkKQorICAgICAg
ICBUaW1lckJhc2U6OnN0YXJ0T25lU2hvdChpbnRlcnZhbCk7CisgICAgZWxzZSB7CisgICAgICAg
IG1fc2F2ZWRJc0FjdGl2ZSA9IHRydWU7CisgICAgICAgIG1fc2F2ZWROZXh0RmlyZUludGVydmFs
ID0gaW50ZXJ2YWw7CisgICAgICAgIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbCA9IDA7CisgICAgfQor
fQorCitkb3VibGUgU3VzcGVuZGFibGVUaW1lcjo6cmVwZWF0SW50ZXJ2YWwoKSBjb25zdAorewor
ICAgIGlmICghbV9zdXNwZW5kZWQpCisgICAgICAgIHJldHVybiBUaW1lckJhc2U6OnJlcGVhdElu
dGVydmFsKCk7CisgICAgaWYgKG1fc2F2ZWRJc0FjdGl2ZSkKKyAgICAgICAgcmV0dXJuIG1fc2F2
ZWRSZXBlYXRJbnRlcnZhbDsKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBTdXNwZW5kYWJsZVRp
bWVyOjphdWdtZW50RmlyZUludGVydmFsKGRvdWJsZSBkZWx0YSkKK3sKKyAgICBpZiAoIW1fc3Vz
cGVuZGVkKQorICAgICAgICBUaW1lckJhc2U6OmF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEpOwor
ICAgIGVsc2UgaWYgKG1fc2F2ZWRJc0FjdGl2ZSkgeworICAgICAgICBtX3NhdmVkTmV4dEZpcmVJ
bnRlcnZhbCArPSBkZWx0YTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3NhdmVkSXNBY3RpdmUg
PSB0cnVlOworICAgICAgICBtX3NhdmVkTmV4dEZpcmVJbnRlcnZhbCA9IGRlbHRhOworICAgICAg
ICBtX3NhdmVkUmVwZWF0SW50ZXJ2YWwgPSAwOworICAgIH0KK30KKwordm9pZCBTdXNwZW5kYWJs
ZVRpbWVyOjphdWdtZW50UmVwZWF0SW50ZXJ2YWwoZG91YmxlIGRlbHRhKQoreworICAgIGlmICgh
bV9zdXNwZW5kZWQpCisgICAgICAgIFRpbWVyQmFzZTo6YXVnbWVudFJlcGVhdEludGVydmFsKGRl
bHRhKTsKKyAgICBlbHNlIGlmIChtX3NhdmVkSXNBY3RpdmUpIHsKKyAgICAgICAgbV9zYXZlZE5l
eHRGaXJlSW50ZXJ2YWwgKz0gZGVsdGE7CisgICAgICAgIG1fc2F2ZWRSZXBlYXRJbnRlcnZhbCAr
PSBkZWx0YTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3NhdmVkSXNBY3RpdmUgPSB0cnVlOwor
ICAgICAgICBtX3NhdmVkTmV4dEZpcmVJbnRlcnZhbCA9IGRlbHRhOworICAgICAgICBtX3NhdmVk
UmVwZWF0SW50ZXJ2YWwgPSBkZWx0YTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oCShyZXZpc2lvbiAx
NTMzNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEzIEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzIsMjcgKzMyLDQzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
U3VzcGVuZGFibGVUaW1lciA6IHB1YmxpYyBUaW1lckJhc2UsIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QgeworY2xhc3MgU3VzcGVuZGFibGVUaW1lciA6IHByaXZhdGUgVGltZXJCYXNlLCBwdWJsaWMg
QWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBTdXNwZW5kYWJsZVRpbWVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICB2aXJ0dWFsIH5TdXNwZW5kYWJsZVRpbWVy
KCk7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKLSAgICB2aXJ0dWFs
IGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb24pOwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKTsKKyAgICB2aXJ0dWFs
IGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgRklOQUwgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHN0b3AoKSBGSU5BTCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuU3Vz
cGVuZCgpIGNvbnN0IEZJTkFMIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24pIEZJTkFMIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN1
bWUoKSBGSU5BTCBPVkVSUklERTsKKworICAgIC8vIEEgaG9vayBmb3IgZGVyaXZlZCBjbGFzc2Vz
IHRvIHBlcmZvcm0gY2xlYW51cC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcCgpOworCisgICAg
Ly8gUGFydCBvZiBUaW1lckJhc2UgaW50ZXJmYWNlIHVzZWQgYnkgU3VzcGVuZGFibGVUaW1lciBj
bGllbnRzLCBtb2RpZmllZCB0byB3b3JrIHdoZW4gc3VzcGVuZGVkLgorICAgIGJvb2wgaXNBY3Rp
dmUoKSBjb25zdCB7IHJldHVybiBUaW1lckJhc2U6OmlzQWN0aXZlKCkgfHwgKG1fc3VzcGVuZGVk
ICYmIG1fc2F2ZWRJc0FjdGl2ZSk7IH0KKyAgICBib29sIGlzU3VzcGVuZGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdXNwZW5kZWQ7IH0KKyAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJsZSByZXBl
YXRJbnRlcnZhbCk7CisgICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKTsKKyAg
ICBkb3VibGUgcmVwZWF0SW50ZXJ2YWwoKSBjb25zdDsKKyAgICB2b2lkIGF1Z21lbnRGaXJlSW50
ZXJ2YWwoZG91YmxlIGRlbHRhKTsKKyAgICB2b2lkIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChkb3Vi
bGUgZGVsdGEpOworICAgIHVzaW5nIFRpbWVyQmFzZTo6ZGlkQ2hhbmdlQWxpZ25tZW50SW50ZXJ2
YWw7CisgICAgdXNpbmcgVGltZXJCYXNlOjpvcGVyYXRvciBuZXc7CisgICAgdXNpbmcgVGltZXJC
YXNlOjpvcGVyYXRvciBkZWxldGU7CisKKyAgICB2b2lkIGNhbmNlbCgpOyAvLyBFcXVpdmFsZW50
IHRvIFRpbWVyQmFzZTo6c3RvcCgpLCB3aG9zZSBuYW1lIGNvbmZsaWN0cyB3aXRoIEFjdGl2ZURP
TU9iamVjdDo6c3RvcCgpLgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0g
MDsKIAotICAgIGRvdWJsZSBtX25leHRGaXJlSW50ZXJ2YWw7Ci0gICAgZG91YmxlIG1fcmVwZWF0
SW50ZXJ2YWw7Ci0gICAgYm9vbCBtX2FjdGl2ZTsKLSNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAg
Ym9vbCBtX3N1c3BlbmRlZDsKLSNlbmRpZgorCisgICAgZG91YmxlIG1fc2F2ZWROZXh0RmlyZUlu
dGVydmFsOworICAgIGRvdWJsZSBtX3NhdmVkUmVwZWF0SW50ZXJ2YWw7CisgICAgYm9vbCBtX3Nh
dmVkSXNBY3RpdmU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>