<?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>104593</bug_id>
          
          <creation_ts>2012-12-10 13:47:09 -0800</creation_ts>
          <short_desc>Add in-band text track cues only once</short_desc>
          <delta_ts>2012-12-18 07:24:40 -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>Media</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="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>dino</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>787691</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-12-10 13:47:09 -0800</bug_when>
    <thetext>A media engine may deliver cues from in-band tracks every time the media data is parsed, but we should only add each cue to WebKit&apos;s TextTrack once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787693</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-12-10 13:47:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/12849532&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793084</commentid>
    <comment_count>2</comment_count>
      <attachid>179813</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-12-17 15:29:57 -0800</bug_when>
    <thetext>Created attachment 179813
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793132</commentid>
    <comment_count>3</comment_count>
      <attachid>179813</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-17 16:14:30 -0800</bug_when>
    <thetext>Comment on attachment 179813
Proposed patch

Attachment 179813 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15363937

New failing tests:
media/track/track-in-band-cues-added-once.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793144</commentid>
    <comment_count>4</comment_count>
      <attachid>179828</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-12-17 16:29:14 -0800</bug_when>
    <thetext>Created attachment 179828
Skipped new tests on platforms that don&apos;t support it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793146</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-17 16:31:44 -0800</bug_when>
    <thetext>Attachment 179828 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/medi...&quot; exit_code: 1
Source/WebCore/html/track/InbandTextTrack.cpp:139:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/html/track/InbandTextTrack.cpp:163:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 2 in 18 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>793156</commentid>
    <comment_count>6</comment_count>
      <attachid>179832</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-12-17 16:41:25 -0800</bug_when>
    <thetext>Created attachment 179832
Fix style errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793194</commentid>
    <comment_count>7</comment_count>
      <attachid>179832</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-12-17 17:15:09 -0800</bug_when>
    <thetext>Comment on attachment 179832
Fix style errors

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

&gt; Source/WebCore/html/track/InbandTextTrack.cpp:154
&gt; +            if (!cue)
&gt; +                return false;
&gt; +            if (cue-&gt;startTime() != startTime)
&gt; +                return false;
&gt; +            if (cue-&gt;endTime() != endTime)
&gt; +                return false;
&gt; +            if (cue-&gt;text() != content)
&gt; +                return false;
&gt; +            if (cue-&gt;cueSettings() != settings)
&gt; +                return false;
&gt; +            if (cue-&gt;id() != id)
&gt; +                return false;

Is there any reason you chose this form over a single if statement? It is easier to read :)

&gt; LayoutTests/media/track/track-in-band-cues-added-once.html:4
&gt; +    &lt;head&gt;
&gt; +        &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;

No title?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793617</commentid>
    <comment_count>8</comment_count>
      <attachid>179832</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 07:24:35 -0800</bug_when>
    <thetext>Comment on attachment 179832
Fix style errors

Clearing flags on attachment: 179832

Committed r138017: &lt;http://trac.webkit.org/changeset/138017&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793619</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 07:24:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179813</attachid>
            <date>2012-12-17 15:29:57 -0800</date>
            <delta_ts>2012-12-17 16:29:14 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_5.txt</filename>
            <type>text/plain</type>
            <size>16175</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzkyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEyLTE3ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbi1iYW5kIHRl
eHQgdHJhY2sgY3VlcyBvbmx5IG9uY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDU5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRl
ZC1vbmNlLmh0bWwKKworICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6aGFzQ3VlKTogTmV3LgorICAgICAg
ICAqIGh0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmg6CisKKyAgICAgICAgKiBodG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnNldEN1
ZVNldHRpbmdzKTogUmVtZW1iZXIgdGhlIHJhdyBjdWUgc2V0dGluZ3Mgc28gdGhleSBjYW4gYmUg
YWNjZXNzZWQgbGF0ZXIuCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaDoKKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQu
aDogRGVjbGFyZSBoYXNDdWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKTogRWFybHkgcmV0dXJuIGlmIG1f
cGxheWVyIGhhcyBiZWVuIGNsZWFyZWQuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGOjpzZXRNb2RlKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vlayk6IENs
ZWFyIHRoZSBwYXJ0aWFsbHkgYWNjdW11bGF0ZWQgY3VlIHdoZW4gdGhlIHNlZWsgCisgICAgICAg
ICAgICBzdGFydHMsIG5vdCB3aGVuIGl0IGNvbXBsZXRlcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vla0NvbXBsZXRlZCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpmbHVzaEN1cnJl
bnRDdWUpOiBEb24ndCBhZGQgYSBjdWUgaWYgaXQgaXMgYWxyZWFkeSBpbiB0aGUKKyAgICAgICAg
ICAgIHRleHQgdHJhY2sgY3VlIGxpc3QuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNsZWFy
VGV4dFRyYWNrcyk6IERyaXZlLWJ5IGNsZWFudXAsIGNsZWFyIHRoZSB0cmFjayBsaXN0IGNvbXBs
ZXRlbHkuCisKIDIwMTItMTItMTcgIEVkdWFyZG8gTGltYSBNaXRldiAgPGVsaW1hQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gVXNlIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxs
KCkgd2l0aCBDSEVDS19OT1RISU5HIGZvciBzcGVlZCBhbmQgc2FuaXR5CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCShyZXZpc2lvbiAxMzc5
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExNSw3ICsxMTUsNTkgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2s6OmFk
ZEN1ZShJbmJhbmRUZXh0VAogICAgIGlmIChjbGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnRl
eHRUcmFja0FkZEN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsKIH0KKworYm9vbCBJbmJhbmRUZXh0
VHJhY2s6Omhhc0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgZG91YmxlIHN0YXJ0VGltZSwg
ZG91YmxlIGVuZFRpbWUsIGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYgY29udGVudCwg
Y29uc3QgU3RyaW5nJiBzZXR0aW5ncykKK3sKKworICAgIGlmIChzdGFydFRpbWUgPCAwIHx8IGVu
ZFRpbWUgPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWN1ZXMoKS0+bGVu
Z3RoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHNpemVfdCBzZWFyY2hTdGFydCA9
IDA7CisgICAgc2l6ZV90IHNlYXJjaEVuZCA9IGN1ZXMoKS0+bGVuZ3RoKCk7CisKKyAgICB3aGls
ZSAoMSkgeworICAgICAgICBBU1NFUlQoc2VhcmNoU3RhcnQgPD0gY3VlcygpLT5sZW5ndGgoKSk7
CisgICAgICAgIEFTU0VSVChzZWFyY2hFbmQgPD0gY3VlcygpLT5sZW5ndGgoKSk7CisgICAgICAg
IAorICAgICAgICBUZXh0VHJhY2tDdWUqIGN1ZTsKKyAgICAgICAgCisgICAgICAgIC8vIEN1ZXMg
aW4gdGhlIFRleHRUcmFja0N1ZUxpc3QgYXJlIG1haW50YWluZWQgaW4gc3RhcnQgdGltZSBvcmRl
ci4KKyAgICAgICAgaWYgKHNlYXJjaFN0YXJ0ID09IHNlYXJjaEVuZCkgeworICAgICAgICAgICAg
aWYgKHNlYXJjaFN0YXJ0ID09IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBjdWUgPSBjdWVzKCktPml0ZW0oc2VhcmNoU3RhcnQgLSAx
KTsKKyAgICAgICAgICAgIGlmICghY3VlKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIGlmIChjdWUtPnN0YXJ0VGltZSgpICE9IHN0YXJ0VGltZSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoY3VlLT5lbmRUaW1lKCkgIT0g
ZW5kVGltZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAo
Y3VlLT50ZXh0KCkgIT0gY29udGVudCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICBpZiAoY3VlLT5jdWVTZXR0aW5ncygpICE9IHNldHRpbmdzKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChjdWUtPmlkKCkgIT0gaWQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2l6ZV90IGluZGV4ID0g
KHNlYXJjaFN0YXJ0ICsgc2VhcmNoRW5kKSAvIDI7CisgICAgICAgIGN1ZSA9IGN1ZXMoKS0+aXRl
bShpbmRleCk7CisgICAgICAgIGlmIChzdGFydFRpbWUgPCBjdWUtPnN0YXJ0VGltZSgpIHx8IChz
dGFydFRpbWUgPT0gY3VlLT5zdGFydFRpbWUoKSAmJiBlbmRUaW1lID4gY3VlLT5lbmRUaW1lKCkp
KSB7CisgICAgICAgICAgICBzZWFyY2hFbmQgPSBpbmRleDsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBzZWFyY2hTdGFydCA9IGluZGV4ICsgMTsKKyAgICB9CiAgICAgCisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRU
ZXh0VHJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZFRleHRUcmFjay5oCShyZXZpc2lvbiAxMzc5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZFRleHRUcmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHBy
aXZhdGU6CiAgICAgSW5iYW5kVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0
VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKIAogICAg
IHZpcnR1YWwgdm9pZCBhZGRDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGRvdWJsZSwgZG91
YmxlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBkb3Vi
bGUsIGRvdWJsZSwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikg
T1ZFUlJJREU7CiAKICAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gbV9wcml2YXRl
OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAJ
KHJldmlzaW9uIDEzNzkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODI3LDYgKzgyNyw3IEBAIFRleHRUcmFja0N1ZTo6
Q3VlU2V0dGluZyBUZXh0VHJhY2tDdWU6OnMKIAogdm9pZCBUZXh0VHJhY2tDdWU6OnNldEN1ZVNl
dHRpbmdzKGNvbnN0IFN0cmluZyYgaW5wdXQpCiB7CisgICAgbV9zZXR0aW5ncyA9IGlucHV0Owog
ICAgIHVuc2lnbmVkIHBvc2l0aW9uID0gMDsKIAogICAgIHdoaWxlIChwb3NpdGlvbiA8IGlucHV0
Lmxlbmd0aCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmgJKHJldmlzaW9uIDEzNzkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrQ3VlLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksNyBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgU3RyaW5nJiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50OyB9CiAgICAgdm9p
ZCBzZXRUZXh0KGNvbnN0IFN0cmluZyYpOwogCisgICAgY29uc3QgU3RyaW5nJiBjdWVTZXR0aW5n
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KICAgICB2b2lkIHNldEN1ZVNldHRpbmdz
KGNvbnN0IFN0cmluZyYpOwogCiAgICAgaW50IGN1ZUluZGV4KCk7CkBAIC0xODQsNiArMTg1LDcg
QEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9zdGFydFRpbWU7CiAgICAgZG91YmxlIG1fZW5kVGlt
ZTsKICAgICBTdHJpbmcgbV9jb250ZW50OworICAgIFN0cmluZyBtX3NldHRpbmdzOwogICAgIGlu
dCBtX2xpbmVQb3NpdGlvbjsKICAgICBpbnQgbV9jb21wdXRlZExpbmVQb3NpdGlvbjsKICAgICBp
bnQgbV90ZXh0UG9zaXRpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oCShy
ZXZpc2lvbiAxMzc5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJh
bmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgfkluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQoKSB7
IH0KICAgICAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBkb3VibGUgLypzdGFydCovLCBkb3VibGUgLyplbmQqLywgY29uc3QgU3RyaW5nJiAvKmlkKi8s
IGNvbnN0IFN0cmluZyYgLypjb250ZW50Ki8sIGNvbnN0IFN0cmluZyYgLypzZXR0aW5ncyovKSA9
IDA7CisgICAgdmlydHVhbCBib29sIGhhc0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgZG91
YmxlIC8qc3RhcnQqLywgZG91YmxlIC8qZW5kKi8sIGNvbnN0IFN0cmluZyYgLyppZCovLCBjb25z
dCBTdHJpbmcmIC8qY29udGVudCovLCBjb25zdCBTdHJpbmcmIC8qc2V0dGluZ3MqLykgPSAwOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAkocmV2aXNpb24gMTM3OTA4KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjIsNiArMjIyLDkgQEAgdm9pZCBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQwogCiB2b2lkIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3RyaW5ncywgZG91
YmxlIHRpbWUpCiB7CisgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgcmV0dXJuOworICAgIAog
ICAgIGlmIChtX2hhdmVQYXJ0aWFsQ3VlKSB7CiAgICAgICAgIC8vIEN1ZXMgZG8gbm90IGhhdmUg
YW4gZXhwbGljaXQgZHVyYXRpb24sIHRoZXkgYXJlIGRpc3BsYXllZCB1bnRpbCB0aGUgbmV4dCAi
Y3VlIiAod2hpY2ggbWlnaHQgYmUgZW1wdHkpIGlzIGVtaXR0ZWQuCiAgICAgICAgIG1fY3VycmVu
dEN1ZUVuZFRpbWUgPSB0aW1lOwpAQCAtMjY4LDYgKzI3MSw5IEBAIHZvaWQgSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUFWRjo6cmVzZXRDdWUKIAogdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
OjpzZXRNb2RlKEluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUgbmV3TW9kZSkKIHsKKyAgICBp
ZiAoIW1fcGxheWVyKQorICAgICAgICByZXR1cm47CisKICAgICBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlOjpNb2RlIG9sZE1vZGUgPSBtb2RlKCk7CiAgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6
c2V0TW9kZShuZXdNb2RlKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAJKHJldmlzaW9uIDEzNzkwOCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNiArMjY2LDE0IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZWUKICAgICBpZiAoY3VycmVu
dFRpbWUoKSA9PSB0aW1lKQogICAgICAgICByZXR1cm47CiAKKyNpZiBIQVZFKEFWRk9VTkRBVElP
Tl9URVhUX1RSQUNLX1NVUFBPUlQpCisgICAgLy8gRm9yZ2V0IGFueSBwYXJ0aWFsbHkgYWNjdW11
bGF0ZWQgY3VlIGRhdGEgYXMgdGhlIHNlZWsgY291bGQgYmUgdG8gYSB0aW1lIG91dHNpZGUgb2Yg
dGhlIGN1ZSdzCisgICAgLy8gcmFuZ2UsIHdoaWNoIHdpbGwgbWVhbiB0aGF0IHRoZSBuZXh0IGN1
ZSBkZWxpdmVyZWQgd2lsbCByZXN1bHQgaW4gdGhlIGN1cnJlbnQgY3VlIGdldHRpbmcgdGhlCisg
ICAgLy8gaW5jb3JyZWN0IGR1cmF0aW9uLgorICAgIGlmIChjdXJyZW50VHJhY2soKSkKKyAgICAg
ICAgY3VycmVudFRyYWNrKCktPnJlc2V0Q3VlVmFsdWVzKCk7CisjZW5kaWYKKyAgICAKICAgICBM
T0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNlZWsoJXApIC0gc2Vl
a2luZyB0byAlZiIsIHRoaXMsIHRpbWUpOwogICAgIG1fc2Vla1RvID0gdGltZTsKIApAQCAtNTc0
LDE0ICs1ODIsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2VlCiAg
ICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZWVrQ29tcGxl
dGVkKCVwKSAtIGZpbmlzaGVkID0gJWQiLCB0aGlzLCBmaW5pc2hlZCk7CiAgICAgVU5VU0VEX1BB
UkFNKGZpbmlzaGVkKTsKIAotI2lmIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9S
VCkKLSAgICAvLyBGb3JnZXQgYW55IHBhcnRpYWxseSBhY2N1bXVsYXRlZCBjdWUgZGF0YSBhcyB0
aGUgc2VlayBjb3VsZCBiZSB0byBhIHRpbWUgb3V0c2lkZSBvZiB0aGUgY3VlJ3MKLSAgICAvLyBy
YW5nZSwgd2hpY2ggd2lsbCBtZWFuIHRoYXQgdGhlIG5leHQgY3VlIGRlbGl2ZXJlZCB3aWxsIHJl
c3VsdCBpbiB0aGUgY3VycmVudCBjdWUgZ2V0dGluZyB0aGUKLSAgICAvLyBpbmNvcnJlY3QgZHVy
YXRpb24uCi0gICAgaWYgKGN1cnJlbnRUcmFjaygpKQotICAgICAgICBjdXJyZW50VHJhY2soKS0+
cmVzZXRDdWVWYWx1ZXMoKTsKLSNlbmRpZgotCiAgICAgbV9zZWVrVG8gPSBNZWRpYVBsYXllcjo6
aW52YWxpZFRpbWUoKTsKICAgICB1cGRhdGVTdGF0ZXMoKTsKICAgICBtX3BsYXllci0+dGltZUNo
YW5nZWQoKTsKQEAgLTgxNiw2ICs4MTYsMTMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OmZsdQogICAgIGlmICghdHJhY2stPmNsaWVudCgpKQogICAgICAgICByZXR1cm47
CiAKKyAgICAvLyBBVkZvdW5kYXRpb24gcmV0dXJucyBhIGN1ZSBldmVyeSB0aW1lIHRoZSBkYXRh
IGlzIGJ1ZmZlcmVkLCBvbmx5IGFkZCBpdCBvbmNlLgorICAgIGlmICh0cmFjay0+Y2xpZW50KCkt
Pmhhc0N1ZSh0cmFjaywgdHJhY2stPnN0YXJ0KCksIHRyYWNrLT5lbmQoKSwgdHJhY2stPmlkKCks
IHRyYWNrLT5jb250ZW50KCksIHRyYWNrLT5zZXR0aW5ncygpKSkgeworICAgICAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmZsdXNoQ3VycmVudEN1ZSglcCkg
LSBhbHJlYWR5IGhhdmUgY3VlIGZvciB0aW1lICUuMmYiLCB0aGlzLCB0cmFjay0+c3RhcnQoKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246OmZsdXNoQ3VycmVudEN1ZSglcCkgLSBhZGRpbmcgY3VlIGZvciB0
aW1lICUuMmYiLCB0aGlzLCB0cmFjay0+c3RhcnQoKSk7CiAgICAgdHJhY2stPmNsaWVudCgpLT5h
ZGRDdWUodHJhY2ssIHRyYWNrLT5zdGFydCgpLCB0cmFjay0+ZW5kKCksIHRyYWNrLT5pZCgpLCB0
cmFjay0+Y29udGVudCgpLCB0cmFjay0+c2V0dGluZ3MoKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQkocmV2aXNpb24gMTM3OTA4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE5Nyw4ICsxMTk3LDEyIEBAIE1lZGlhUGxh
eWVyOjpNZWRpYUtleUV4Y2VwdGlvbiBNZWRpYVBsYXkKIAogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpjbGVhclRleHRUcmFja3MoKQogewotICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX3RleHRUcmFja3Muc2l6ZSgpOyArK2kpCi0gICAgICAgIHBsYXllcigp
LT5yZW1vdmVUZXh0VHJhY2sobV90ZXh0VHJhY2tzW2ldLmdldCgpKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV90ZXh0VHJhY2tzLnNpemUoKTsgKytpKSB7CisgICAgICAgIFJlZlB0
cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGPiB0cmFjayA9IG1fdGV4dFRyYWNrc1tpXTsKKyAg
ICAgICAgcGxheWVyKCktPnJlbW92ZVRleHRUcmFjayh0cmFjayk7CisgICAgICAgIHRyYWNrLT5k
aXNjb25uZWN0KCk7CisgICAgfQorICAgIG1fdGV4dFRyYWNrcy5jbGVhcigpOwogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnByb2Nlc3NUZXh0VHJhY2tzKCkK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEzNzkyNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTE3ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbi1iYW5kIHRleHQgdHJhY2sg
Y3VlcyBvbmx5IG9uY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNDU5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3QgdG8gZW5zdXJlIHRoYXQgaW4tYmFuZCB0ZXh0IHRyYWNrIGN1ZXMgYXJlIG5v
dCBhZGRlZCB0byB0aGUgdGhlIGN1ZSBsaXN0IG1vcmUgdGhhbiBvbmNlLgorCisgICAgICAgICog
bWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25j
ZS5odG1sOiBBZGRlZC4KKwogMjAxMi0xMi0xNyAgQmVtIEpvbmVzLUJleSAgPGJqb25lc2JlQGFk
b2JlLmNvbT4KIAogICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEZsb2F0cyBzaG91bGQgcmVzcGVj
dCBzaGFwZS1pbnNpZGUgb24gZXhjbHVzaW9ucwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyNyBAQAorSW4tYmFuZCB0ZXh0IHRyYWNrcy4KKworRVZFTlQoYWRkdHJhY2spCitF
WFBFQ1RFRCAoZXZlbnQudHJhY2sgPT0gJ3ZpZGVvLnRleHRUcmFja3NbMF0nKSBPSworCitFVkVO
VChjYW5wbGF5dGhyb3VnaCkKKworKiogQ2hlY2sgaW5pdGlhbCBpbi1iYW5kIHRyYWNrIHN0YXRl
cworRVhQRUNURUQgKHZpZGVvLnRleHRUcmFja3MubGVuZ3RoID09ICcxJykgT0sKK1JVTihpbmJh
bmRUcmFjazEgPSB2aWRlby50ZXh0VHJhY2tzWzBdKQorRVhQRUNURUQgKGluYmFuZFRyYWNrMS5t
b2RlID09ICdkaXNhYmxlZCcpIE9LCitFWFBFQ1RFRCAoaW5iYW5kVHJhY2sxLmN1ZXMgPT0gJ251
bGwnKSBPSworRVhQRUNURUQgKGluYmFuZFRyYWNrMS5sYW5ndWFnZSA9PSAnZW4nKSBPSworRVhQ
RUNURUQgKGluYmFuZFRyYWNrMS5raW5kID09ICdjYXB0aW9ucycpIE9LCisKK1JVTihpbmJhbmRU
cmFjazEubW9kZSA9ICdzaG93aW5nJykKK1JVTih2aWRlby5wbGF5KCkpCitFWFBFQ1RFRCAoaW5i
YW5kVHJhY2sxLmN1ZXMubGVuZ3RoID4gJzAnKSBPSworUlVOKHZpZGVvLnBhdXNlKCkpCitSVU4o
dmlkZW8uY3VycmVudFRpbWUgPSAwKQorUlVOKHZpZGVvLnBsYXkoKSkKKworRVZFTlQoc2Vla2Vk
KQorRVhQRUNURUQgKGluYmFuZFRyYWNrMS5jdWVzLmxlbmd0aCA+ICcwJykgT0sKK1JVTih2aWRl
by5wYXVzZSgpKQorRU5EIE9GIFRFU1QKKwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2sv
dHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFk
ZGVkLW9uY2UuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CisKKyAgICAgICAg
PHNjcmlwdCBzcmM9Li4vbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Li4vdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKworICAgICAg
ICAgICAgdmFyIGFkZHRyYWNrRXZlbnRDb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgc2Vla2Vk
Q291bnQgPSAwOworICAgICAgICAgICAgdmFyIGN1ZXNTdGFydHMgPSBbXTsKKworICAgICAgICAg
ICAgZnVuY3Rpb24gdHJhY2tBZGRlZChldmVudCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIkVWRU5UKCIgKyBldmVudC50eXBlICsgIikiKTsKKyAgICAgICAg
ICAgICAgICBjb21wYXJlVHJhY2tzKCJldmVudC50cmFjayIsICJ2aWRlby50ZXh0VHJhY2tzWyIg
KyBhZGR0cmFja0V2ZW50Q291bnQgKyAiXSIpOworICAgICAgICAgICAgICAgICsrYWRkdHJhY2tF
dmVudENvdW50OworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVUcmFja3ModHJhY2sxLCB0cmFjazIp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIGVxdWFsID0gKGV2YWwodHJhY2sx
KSA9PSBldmFsKHRyYWNrMikpOworICAgICAgICAgICAgICAgIHJlcG9ydEV4cGVjdGVkKGVxdWFs
LCB0cmFjazEsICI9PSIsIHRyYWNrMiwgdHJhY2sxKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgZnVuY3Rpb24gcG9sbFByb2dyZXNzKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBpZiAodmlkZW8uY3VycmVudFRpbWUgPCAyKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImluYmFuZFRyYWNrMS5jdWVzLmxl
bmd0aCIsIDAsICI+Iik7CisKKyAgICAgICAgICAgICAgICBpZiAoIXNlZWtlZENvdW50KSB7Cisg
ICAgICAgICAgICAgICAgICAgIC8vIENvbGxlY3QgdGhlIHN0YXJ0IHRpbWVzIG9mIGFsbCBjdWVz
LCBzZWVrIGJhY2sgdG8gdGhlIGJlZ2lubmluZyBhbmQgcGxheQorICAgICAgICAgICAgICAgICAg
ICAvLyB0aGUgc2FtZSBzZWdtZW50IG9mIHRoZSB2aWRlbyBmaWxlLgorICAgICAgICAgICAgICAg
ICAgICBydW4oInZpZGVvLnBhdXNlKCkiKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBpbmJhbmRUcmFjazEuY3Vlcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGN1ZXNTdGFydHMucHVzaChpbmJhbmRUcmFjazEuY3Vlc1tpXS5zdGFydFRpbWUp
OworICAgICAgICAgICAgICAgICAgICBydW4oInZpZGVvLmN1cnJlbnRUaW1lID0gMCIpOworICAg
ICAgICAgICAgICAgICAgICBydW4oInZpZGVvLnBsYXkoKSIpOworICAgICAgICAgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcnVuKCJ2aWRlby5wYXVzZSgpIik7CisgICAg
ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjdWVzU3RhcnRzLmxlbmd0aDsgKytpKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChjdWVzU3RhcnRzW2ldICE9IGluYmFuZFRyYWNrMS5j
dWVzW2ldLnN0YXJ0VGltZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1Jlc3VsdChmYWxz
ZSwgIkZvdW5kIHVuZXhwZWN0ZWQgY3VlIHN0YXJ0aW5nIGF0ICIgKyBpbmJhbmRUcmFjazEuY3Vl
c1tpXS5zdGFydFRpbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbmRU
ZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbnBsYXl0aHJv
dWdoKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2aWRlby50ZXh0VHJhY2tzLnJl
bW92ZUV2ZW50TGlzdGVuZXIoImFkZHRyYWNrIiwgdHJhY2tBZGRlZCwgZmFsc2UpOworCisgICAg
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+PGk+KiogQ2hlY2sgaW5pdGlhbCBpbi1iYW5k
IHRyYWNrIHN0YXRlczwiICsgIi9pPiIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dmlkZW8udGV4dFRyYWNrcy5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgICAgICBydW4oImluYmFu
ZFRyYWNrMSA9IHZpZGVvLnRleHRUcmFja3NbMF0iKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoImluYmFuZFRyYWNrMS5tb2RlIiwgImRpc2FibGVkIik7CisgICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJpbmJhbmRUcmFjazEuY3VlcyIsIG51bGwpOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgiaW5iYW5kVHJhY2sxLmxhbmd1YWdlIiwgImVuIik7CisgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJpbmJhbmRUcmFjazEua2luZCIsICJjYXB0aW9ucyIpOworCisK
KyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworCisgICAgICAgICAgICAgICAgd2Fp
dEZvckV2ZW50KCdzZWVrZWQnLCBmdW5jdGlvbigpIHsgKytzZWVrZWRDb3VudDsgfSk7CisgICAg
ICAgICAgICAgICAgc2V0SW50ZXJ2YWwocG9sbFByb2dyZXNzLCAxMDApOworICAgICAgICAgICAg
ICAgIHJ1bigiaW5iYW5kVHJhY2sxLm1vZGUgPSAnc2hvd2luZyciKTsKKyAgICAgICAgICAgICAg
ICBydW4oInZpZGVvLnBsYXkoKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5j
dGlvbiBzZXR1cCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmluZE1lZGlhRWxl
bWVudCgpOworICAgICAgICAgICAgICAgIHZpZGVvLnRleHRUcmFja3MuYWRkRXZlbnRMaXN0ZW5l
cigiYWRkdHJhY2siLCB0cmFja0FkZGVkKTsKKyAgICAgICAgICAgICAgICB2aWRlby5zcmMgPSAn
Li4vY29udGVudC9jb3VudGluZy1jYXB0aW9uZWQubW92JzsKKyAgICAgICAgICAgICAgICB3YWl0
Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgY2FucGxheXRocm91Z2gpOworICAgICAgICAgICAg
fQorCisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InNl
dHVwKCkiPgorICAgICAgICA8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKyAgICAgICAgPHA+SW4t
YmFuZCB0ZXh0IHRyYWNrcy48L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="commit-queue"
          id="196859"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179828</attachid>
            <date>2012-12-17 16:29:14 -0800</date>
            <delta_ts>2012-12-17 16:41:25 -0800</delta_ts>
            <desc>Skipped new tests on platforms that don&apos;t support it.</desc>
            <filename>patch_6.txt</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179832</attachid>
            <date>2012-12-17 16:41:25 -0800</date>
            <delta_ts>2012-12-18 07:24:34 -0800</delta_ts>
            <desc>Fix style errors</desc>
            <filename>patch_8.txt</filename>
            <type>text/plain</type>
            <size>20152</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzkyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEyLTE3ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbi1iYW5kIHRl
eHQgdHJhY2sgY3VlcyBvbmx5IG9uY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDU5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRl
ZC1vbmNlLmh0bWwKKworICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6aGFzQ3VlKTogTmV3LgorICAgICAg
ICAqIGh0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmg6CisKKyAgICAgICAgKiBodG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnNldEN1
ZVNldHRpbmdzKTogUmVtZW1iZXIgdGhlIHJhdyBjdWUgc2V0dGluZ3Mgc28gdGhleSBjYW4gYmUg
YWNjZXNzZWQgbGF0ZXIuCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaDoKKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQu
aDogRGVjbGFyZSBoYXNDdWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKTogRWFybHkgcmV0dXJuIGlmIG1f
cGxheWVyIGhhcyBiZWVuIGNsZWFyZWQuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGOjpzZXRNb2RlKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vlayk6IENs
ZWFyIHRoZSBwYXJ0aWFsbHkgYWNjdW11bGF0ZWQgY3VlIHdoZW4gdGhlIHNlZWsgCisgICAgICAg
ICAgICBzdGFydHMsIG5vdCB3aGVuIGl0IGNvbXBsZXRlcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vla0NvbXBsZXRlZCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpmbHVzaEN1cnJl
bnRDdWUpOiBEb24ndCBhZGQgYSBjdWUgaWYgaXQgaXMgYWxyZWFkeSBpbiB0aGUKKyAgICAgICAg
ICAgIHRleHQgdHJhY2sgY3VlIGxpc3QuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNsZWFy
VGV4dFRyYWNrcyk6IERyaXZlLWJ5IGNsZWFudXAsIGNsZWFyIHRoZSB0cmFjayBsaXN0IGNvbXBs
ZXRlbHkuCisKIDIwMTItMTItMTcgIEVkdWFyZG8gTGltYSBNaXRldiAgPGVsaW1hQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gVXNlIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxs
KCkgd2l0aCBDSEVDS19OT1RISU5HIGZvciBzcGVlZCBhbmQgc2FuaXR5CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCShyZXZpc2lvbiAxMzc5
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExNSw3ICsxMTUsNTkgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2s6OmFk
ZEN1ZShJbmJhbmRUZXh0VAogICAgIGlmIChjbGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnRl
eHRUcmFja0FkZEN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsKIH0KKworYm9vbCBJbmJhbmRUZXh0
VHJhY2s6Omhhc0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgZG91YmxlIHN0YXJ0VGltZSwg
ZG91YmxlIGVuZFRpbWUsIGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYgY29udGVudCwg
Y29uc3QgU3RyaW5nJiBzZXR0aW5ncykKK3sKKworICAgIGlmIChzdGFydFRpbWUgPCAwIHx8IGVu
ZFRpbWUgPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWN1ZXMoKS0+bGVu
Z3RoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHNpemVfdCBzZWFyY2hTdGFydCA9
IDA7CisgICAgc2l6ZV90IHNlYXJjaEVuZCA9IGN1ZXMoKS0+bGVuZ3RoKCk7CisKKyAgICB3aGls
ZSAoMSkgeworICAgICAgICBBU1NFUlQoc2VhcmNoU3RhcnQgPD0gY3VlcygpLT5sZW5ndGgoKSk7
CisgICAgICAgIEFTU0VSVChzZWFyY2hFbmQgPD0gY3VlcygpLT5sZW5ndGgoKSk7CisgICAgICAg
IAorICAgICAgICBUZXh0VHJhY2tDdWUqIGN1ZTsKKyAgICAgICAgCisgICAgICAgIC8vIEN1ZXMg
aW4gdGhlIFRleHRUcmFja0N1ZUxpc3QgYXJlIG1haW50YWluZWQgaW4gc3RhcnQgdGltZSBvcmRl
ci4KKyAgICAgICAgaWYgKHNlYXJjaFN0YXJ0ID09IHNlYXJjaEVuZCkgeworICAgICAgICAgICAg
aWYgKCFzZWFyY2hTdGFydCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGN1ZSA9IGN1ZXMoKS0+aXRlbShzZWFyY2hTdGFydCAtIDEpOwor
ICAgICAgICAgICAgaWYgKCFjdWUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgaWYgKGN1ZS0+c3RhcnRUaW1lKCkgIT0gc3RhcnRUaW1lKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChjdWUtPmVuZFRpbWUoKSAhPSBlbmRU
aW1lKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChjdWUt
PnRleHQoKSAhPSBjb250ZW50KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgIGlmIChjdWUtPmN1ZVNldHRpbmdzKCkgIT0gc2V0dGluZ3MpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKGN1ZS0+aWQoKSAhPSBpZCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzaXplX3QgaW5kZXggPSAoc2Vh
cmNoU3RhcnQgKyBzZWFyY2hFbmQpIC8gMjsKKyAgICAgICAgY3VlID0gY3VlcygpLT5pdGVtKGlu
ZGV4KTsKKyAgICAgICAgaWYgKHN0YXJ0VGltZSA8IGN1ZS0+c3RhcnRUaW1lKCkgfHwgKHN0YXJ0
VGltZSA9PSBjdWUtPnN0YXJ0VGltZSgpICYmIGVuZFRpbWUgPiBjdWUtPmVuZFRpbWUoKSkpCisg
ICAgICAgICAgICBzZWFyY2hFbmQgPSBpbmRleDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
c2VhcmNoU3RhcnQgPSBpbmRleCArIDE7CisgICAgfQogICAgIAorICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJh
Y2suaAkocmV2aXNpb24gMTM3OTA4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmRUZXh0VHJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBwcml2YXRlOgog
ICAgIEluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xp
ZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CiAKICAgICB2aXJ0dWFs
IHZvaWQgYWRkQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBkb3VibGUsIGRvdWJsZSwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGhhc0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgZG91YmxlLCBkb3Vi
bGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIE9WRVJSSURF
OwogCiAgICAgUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKIH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCShyZXZpc2lv
biAxMzc5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTgyNyw2ICs4MjcsNyBAQCBUZXh0VHJhY2tDdWU6OkN1ZVNldHRp
bmcgVGV4dFRyYWNrQ3VlOjpzCiAKIHZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRDdWVTZXR0aW5ncyhj
b25zdCBTdHJpbmcmIGlucHV0KQogeworICAgIG1fc2V0dGluZ3MgPSBpbnB1dDsKICAgICB1bnNp
Z25lZCBwb3NpdGlvbiA9IDA7CiAKICAgICB3aGlsZSAocG9zaXRpb24gPCBpbnB1dC5sZW5ndGgo
KSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCShyZXZp
c2lvbiAxMzc5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiArMTE5LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFN0
cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudDsgfQogICAgIHZvaWQgc2V0VGV4
dChjb25zdCBTdHJpbmcmKTsKIAorICAgIGNvbnN0IFN0cmluZyYgY3VlU2V0dGluZ3MoKSBjb25z
dCB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgdm9pZCBzZXRDdWVTZXR0aW5ncyhjb25zdCBT
dHJpbmcmKTsKIAogICAgIGludCBjdWVJbmRleCgpOwpAQCAtMTg0LDYgKzE4NSw3IEBAIHByaXZh
dGU6CiAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwogICAgIGRvdWJsZSBtX2VuZFRpbWU7CiAgICAg
U3RyaW5nIG1fY29udGVudDsKKyAgICBTdHJpbmcgbV9zZXR0aW5nczsKICAgICBpbnQgbV9saW5l
UG9zaXRpb247CiAgICAgaW50IG1fY29tcHV0ZWRMaW5lUG9zaXRpb247CiAgICAgaW50IG1fdGV4
dFBvc2l0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaAkocmV2aXNpb24g
MTM3OTA4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KCkgeyB9CiAgICAg
CiAgICAgdmlydHVhbCB2b2lkIGFkZEN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgZG91Ymxl
IC8qc3RhcnQqLywgZG91YmxlIC8qZW5kKi8sIGNvbnN0IFN0cmluZyYgLyppZCovLCBjb25zdCBT
dHJpbmcmIC8qY29udGVudCovLCBjb25zdCBTdHJpbmcmIC8qc2V0dGluZ3MqLykgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBoYXNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGRvdWJsZSAvKnN0
YXJ0Ki8sIGRvdWJsZSAvKmVuZCovLCBjb25zdCBTdHJpbmcmIC8qaWQqLywgY29uc3QgU3RyaW5n
JiAvKmNvbnRlbnQqLywgY29uc3QgU3RyaW5nJiAvKnNldHRpbmdzKi8pID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAJKHJldmlzaW9uIDEzNzkwOCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
QVZGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIyLDYgKzIyMiw5IEBAIHZvaWQgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0MKIAogdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
QVZGOjpwcm9jZXNzQ3VlKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0cmluZ3MsIGRvdWJsZSB0aW1l
KQogeworICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBpZiAo
bV9oYXZlUGFydGlhbEN1ZSkgewogICAgICAgICAvLyBDdWVzIGRvIG5vdCBoYXZlIGFuIGV4cGxp
Y2l0IGR1cmF0aW9uLCB0aGV5IGFyZSBkaXNwbGF5ZWQgdW50aWwgdGhlIG5leHQgImN1ZSIgKHdo
aWNoIG1pZ2h0IGJlIGVtcHR5KSBpcyBlbWl0dGVkLgogICAgICAgICBtX2N1cnJlbnRDdWVFbmRU
aW1lID0gdGltZTsKQEAgLTI2OCw2ICsyNzEsOSBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZh
dGVBVkY6OnJlc2V0Q3VlCiAKIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6c2V0TW9k
ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNb2RlIG5ld01vZGUpCiB7CisgICAgaWYgKCFtX3Bs
YXllcikKKyAgICAgICAgcmV0dXJuOworCiAgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TW9k
ZSBvbGRNb2RlID0gbW9kZSgpOwogICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OnNldE1vZGUo
bmV3TW9kZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uY3BwCShyZXZpc2lvbiAxMzc5MDgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY2LDYgKzI2NiwxNCBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2VlCiAgICAgaWYgKGN1cnJlbnRUaW1lKCkg
PT0gdGltZSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9U
UkFDS19TVVBQT1JUKQorICAgIC8vIEZvcmdldCBhbnkgcGFydGlhbGx5IGFjY3VtdWxhdGVkIGN1
ZSBkYXRhIGFzIHRoZSBzZWVrIGNvdWxkIGJlIHRvIGEgdGltZSBvdXRzaWRlIG9mIHRoZSBjdWUn
cworICAgIC8vIHJhbmdlLCB3aGljaCB3aWxsIG1lYW4gdGhhdCB0aGUgbmV4dCBjdWUgZGVsaXZl
cmVkIHdpbGwgcmVzdWx0IGluIHRoZSBjdXJyZW50IGN1ZSBnZXR0aW5nIHRoZQorICAgIC8vIGlu
Y29ycmVjdCBkdXJhdGlvbi4KKyAgICBpZiAoY3VycmVudFRyYWNrKCkpCisgICAgICAgIGN1cnJl
bnRUcmFjaygpLT5yZXNldEN1ZVZhbHVlcygpOworI2VuZGlmCisgICAgCiAgICAgTE9HKE1lZGlh
LCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZWVrKCVwKSAtIHNlZWtpbmcgdG8g
JWYiLCB0aGlzLCB0aW1lKTsKICAgICBtX3NlZWtUbyA9IHRpbWU7CiAKQEAgLTU3NCwxNCArNTgy
LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNlZQogICAgIExPRyhN
ZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vla0NvbXBsZXRlZCglcCkg
LSBmaW5pc2hlZCA9ICVkIiwgdGhpcywgZmluaXNoZWQpOwogICAgIFVOVVNFRF9QQVJBTShmaW5p
c2hlZCk7CiAKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCi0gICAg
Ly8gRm9yZ2V0IGFueSBwYXJ0aWFsbHkgYWNjdW11bGF0ZWQgY3VlIGRhdGEgYXMgdGhlIHNlZWsg
Y291bGQgYmUgdG8gYSB0aW1lIG91dHNpZGUgb2YgdGhlIGN1ZSdzCi0gICAgLy8gcmFuZ2UsIHdo
aWNoIHdpbGwgbWVhbiB0aGF0IHRoZSBuZXh0IGN1ZSBkZWxpdmVyZWQgd2lsbCByZXN1bHQgaW4g
dGhlIGN1cnJlbnQgY3VlIGdldHRpbmcgdGhlCi0gICAgLy8gaW5jb3JyZWN0IGR1cmF0aW9uLgot
ICAgIGlmIChjdXJyZW50VHJhY2soKSkKLSAgICAgICAgY3VycmVudFRyYWNrKCktPnJlc2V0Q3Vl
VmFsdWVzKCk7Ci0jZW5kaWYKLQogICAgIG1fc2Vla1RvID0gTWVkaWFQbGF5ZXI6OmludmFsaWRU
aW1lKCk7CiAgICAgdXBkYXRlU3RhdGVzKCk7CiAgICAgbV9wbGF5ZXItPnRpbWVDaGFuZ2VkKCk7
CkBAIC04MTYsNiArODE2LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
OjpmbHUKICAgICBpZiAoIXRyYWNrLT5jbGllbnQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
Ly8gQVZGb3VuZGF0aW9uIHJldHVybnMgYSBjdWUgZXZlcnkgdGltZSB0aGUgZGF0YSBpcyBidWZm
ZXJlZCwgb25seSBhZGQgaXQgb25jZS4KKyAgICBpZiAodHJhY2stPmNsaWVudCgpLT5oYXNDdWUo
dHJhY2ssIHRyYWNrLT5zdGFydCgpLCB0cmFjay0+ZW5kKCksIHRyYWNrLT5pZCgpLCB0cmFjay0+
Y29udGVudCgpLCB0cmFjay0+c2V0dGluZ3MoKSkpIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpmbHVzaEN1cnJlbnRDdWUoJXApIC0gYWxyZWFk
eSBoYXZlIGN1ZSBmb3IgdGltZSAlLjJmIiwgdGhpcywgdHJhY2stPnN0YXJ0KCkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uOjpmbHVzaEN1cnJlbnRDdWUoJXApIC0gYWRkaW5nIGN1ZSBmb3IgdGltZSAlLjJm
IiwgdGhpcywgdHJhY2stPnN0YXJ0KCkpOwogICAgIHRyYWNrLT5jbGllbnQoKS0+YWRkQ3VlKHRy
YWNrLCB0cmFjay0+c3RhcnQoKSwgdHJhY2stPmVuZCgpLCB0cmFjay0+aWQoKSwgdHJhY2stPmNv
bnRlbnQoKSwgdHJhY2stPnNldHRpbmdzKCkpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0JKHJldmlzaW9uIDEzNzkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTExOTcsOCArMTE5NywxMiBAQCBNZWRpYVBsYXllcjo6TWVk
aWFLZXlFeGNlcHRpb24gTWVkaWFQbGF5CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6Y2xlYXJUZXh0VHJhY2tzKCkKIHsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbV90ZXh0VHJhY2tzLnNpemUoKTsgKytpKQotICAgICAgICBwbGF5ZXIoKS0+cmVtb3Zl
VGV4dFRyYWNrKG1fdGV4dFRyYWNrc1tpXS5nZXQoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fdGV4dFRyYWNrcy5zaXplKCk7ICsraSkgeworICAgICAgICBSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRj4gdHJhY2sgPSBtX3RleHRUcmFja3NbaV07CisgICAgICAgIHBs
YXllcigpLT5yZW1vdmVUZXh0VHJhY2sodHJhY2spOworICAgICAgICB0cmFjay0+ZGlzY29ubmVj
dCgpOworICAgIH0KKyAgICBtX3RleHRUcmFja3MuY2xlYXIoKTsKIH0KIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwcm9jZXNzVGV4dFRyYWNrcygpCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxMzc5NTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMi0xNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgaW4tYmFuZCB0ZXh0IHRyYWNrIGN1ZXMgb25s
eSBvbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDQ1OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0IHRvIGVuc3VyZSB0aGF0IGluLWJhbmQgdGV4dCB0cmFjayBjdWVzIGFyZSBub3QgYWRkZWQg
dG8gdGhlIHRoZSBjdWUgbGlzdCBtb3JlIHRoYW4gb25jZS4KKworICAgICAgICAqIG1lZGlhL3Ry
YWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEyLTE3ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCByZXBvc2l0aW9u
aW5nIG9mIGZpeGVkIGVsZW1lbnRzIG9uIHpvb21pbmcKSW5kZXg6IExheW91dFRlc3RzL21lZGlh
L3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQt
b25jZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjcgQEAKK0luLWJhbmQgdGV4dCB0cmFja3MuCisKK0VWRU5UKGFkZHRyYWNr
KQorRVhQRUNURUQgKGV2ZW50LnRyYWNrID09ICd2aWRlby50ZXh0VHJhY2tzWzBdJykgT0sKKwor
RVZFTlQoY2FucGxheXRocm91Z2gpCisKKyoqIENoZWNrIGluaXRpYWwgaW4tYmFuZCB0cmFjayBz
dGF0ZXMKK0VYUEVDVEVEICh2aWRlby50ZXh0VHJhY2tzLmxlbmd0aCA9PSAnMScpIE9LCitSVU4o
aW5iYW5kVHJhY2sxID0gdmlkZW8udGV4dFRyYWNrc1swXSkKK0VYUEVDVEVEIChpbmJhbmRUcmFj
azEubW9kZSA9PSAnZGlzYWJsZWQnKSBPSworRVhQRUNURUQgKGluYmFuZFRyYWNrMS5jdWVzID09
ICdudWxsJykgT0sKK0VYUEVDVEVEIChpbmJhbmRUcmFjazEubGFuZ3VhZ2UgPT0gJ2VuJykgT0sK
K0VYUEVDVEVEIChpbmJhbmRUcmFjazEua2luZCA9PSAnY2FwdGlvbnMnKSBPSworCitSVU4oaW5i
YW5kVHJhY2sxLm1vZGUgPSAnc2hvd2luZycpCitSVU4odmlkZW8ucGxheSgpKQorRVhQRUNURUQg
KGluYmFuZFRyYWNrMS5jdWVzLmxlbmd0aCA+ICcwJykgT0sKK1JVTih2aWRlby5wYXVzZSgpKQor
UlVOKHZpZGVvLmN1cnJlbnRUaW1lID0gMCkKK1JVTih2aWRlby5wbGF5KCkpCisKK0VWRU5UKHNl
ZWtlZCkKK0VYUEVDVEVEIChpbmJhbmRUcmFjazEuY3Vlcy5sZW5ndGggPiAnMCcpIE9LCitSVU4o
dmlkZW8ucGF1c2UoKSkKK0VORCBPRiBURVNUCisKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL3Ry
YWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vl
cy1hZGRlZC1vbmNlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorCisgICAg
ICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPS4uL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisKKyAg
ICAgICAgICAgIHZhciBhZGR0cmFja0V2ZW50Q291bnQgPSAwOworICAgICAgICAgICAgdmFyIHNl
ZWtlZENvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBjdWVzU3RhcnRzID0gW107CisKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHRyYWNrQWRkZWQoZXZlbnQpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCJFVkVOVCgiICsgZXZlbnQudHlwZSArICIpIik7CisgICAg
ICAgICAgICAgICAgY29tcGFyZVRyYWNrcygiZXZlbnQudHJhY2siLCAidmlkZW8udGV4dFRyYWNr
c1siICsgYWRkdHJhY2tFdmVudENvdW50ICsgIl0iKTsKKyAgICAgICAgICAgICAgICArK2FkZHRy
YWNrRXZlbnRDb3VudDsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjb21wYXJlVHJhY2tzKHRyYWNrMSwgdHJh
Y2syKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBlcXVhbCA9IChldmFsKHRy
YWNrMSkgPT0gZXZhbCh0cmFjazIpKTsKKyAgICAgICAgICAgICAgICByZXBvcnRFeHBlY3RlZChl
cXVhbCwgdHJhY2sxLCAiPT0iLCB0cmFjazIsIHRyYWNrMSk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIHBvbGxQcm9ncmVzcygpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgaWYgKHZpZGVvLmN1cnJlbnRUaW1lIDwgMikKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJpbmJhbmRUcmFjazEuY3Vl
cy5sZW5ndGgiLCAwLCAiPiIpOworCisgICAgICAgICAgICAgICAgaWYgKCFzZWVrZWRDb3VudCkg
eworICAgICAgICAgICAgICAgICAgICAvLyBDb2xsZWN0IHRoZSBzdGFydCB0aW1lcyBvZiBhbGwg
Y3Vlcywgc2VlayBiYWNrIHRvIHRoZSBiZWdpbm5pbmcgYW5kIHBsYXkKKyAgICAgICAgICAgICAg
ICAgICAgLy8gdGhlIHNhbWUgc2VnbWVudCBvZiB0aGUgdmlkZW8gZmlsZS4KKyAgICAgICAgICAg
ICAgICAgICAgcnVuKCJ2aWRlby5wYXVzZSgpIik7CisgICAgICAgICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgaW5iYW5kVHJhY2sxLmN1ZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAg
ICAgICAgICAgICAgICBjdWVzU3RhcnRzLnB1c2goaW5iYW5kVHJhY2sxLmN1ZXNbaV0uc3RhcnRU
aW1lKTsKKyAgICAgICAgICAgICAgICAgICAgcnVuKCJ2aWRlby5jdXJyZW50VGltZSA9IDAiKTsK
KyAgICAgICAgICAgICAgICAgICAgcnVuKCJ2aWRlby5wbGF5KCkiKTsKKyAgICAgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJ1bigidmlkZW8ucGF1c2UoKSIpOwor
ICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY3Vlc1N0YXJ0cy5sZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY3Vlc1N0YXJ0c1tpXSAhPSBpbmJhbmRUcmFj
azEuY3Vlc1tpXS5zdGFydFRpbWUpCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dSZXN1bHQo
ZmFsc2UsICJGb3VuZCB1bmV4cGVjdGVkIGN1ZSBzdGFydGluZyBhdCAiICsgaW5iYW5kVHJhY2sx
LmN1ZXNbaV0uc3RhcnRUaW1lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ZW5kVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjYW5wbGF5
dGhyb3VnaCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmlkZW8udGV4dFRyYWNr
cy5yZW1vdmVFdmVudExpc3RlbmVyKCJhZGR0cmFjayIsIHRyYWNrQWRkZWQsIGZhbHNlKTsKKwor
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPjxpPioqIENoZWNrIGluaXRpYWwgaW4t
YmFuZCB0cmFjayBzdGF0ZXM8IiArICIvaT4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInZpZGVvLnRleHRUcmFja3MubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICAgICAgcnVuKCJp
bmJhbmRUcmFjazEgPSB2aWRlby50ZXh0VHJhY2tzWzBdIik7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJpbmJhbmRUcmFjazEubW9kZSIsICJkaXNhYmxlZCIpOworICAgICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgiaW5iYW5kVHJhY2sxLmN1ZXMiLCBudWxsKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoImluYmFuZFRyYWNrMS5sYW5ndWFnZSIsICJlbiIpOworICAgICAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgiaW5iYW5kVHJhY2sxLmtpbmQiLCAiY2FwdGlvbnMiKTsK
KworCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKworICAgICAgICAgICAgICAg
IHdhaXRGb3JFdmVudCgnc2Vla2VkJywgZnVuY3Rpb24oKSB7ICsrc2Vla2VkQ291bnQ7IH0pOwor
ICAgICAgICAgICAgICAgIHNldEludGVydmFsKHBvbGxQcm9ncmVzcywgMTAwKTsKKyAgICAgICAg
ICAgICAgICBydW4oImluYmFuZFRyYWNrMS5tb2RlID0gJ3Nob3dpbmcnIik7CisgICAgICAgICAg
ICAgICAgcnVuKCJ2aWRlby5wbGF5KCkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gc2V0dXAoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZpbmRNZWRp
YUVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICB2aWRlby50ZXh0VHJhY2tzLmFkZEV2ZW50TGlz
dGVuZXIoImFkZHRyYWNrIiwgdHJhY2tBZGRlZCk7CisgICAgICAgICAgICAgICAgdmlkZW8uc3Jj
ID0gJy4uL2NvbnRlbnQvY291bnRpbmctY2FwdGlvbmVkLm1vdic7CisgICAgICAgICAgICAgICAg
d2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGNhbnBsYXl0aHJvdWdoKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2Fk
PSJzZXR1cCgpIj4KKyAgICAgICAgPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+CisgICAgICAgIDxw
PkluLWJhbmQgdGV4dCB0cmFja3MuPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNp
b24gMTM3OTU4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0
aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDIzMCw2ICs0MjMwLDcgQEAgd2Via2l0Lm9yZy9iLzk0
MDAyIFsgTWFjIERlYnVnIF0gaW5zcGVjdAogCiAjIE5vIHN1cHBvcnQgZm9yIGV4cG9zaW5nIGlu
LWJhbmQgdGV4dCB0cmFja3MKIHdlYmtpdC5vcmcvYi8xMDM3NjcgIFsgV2luIE1hYyBMaW51eCBd
IG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzEw
Mzc2NyAgWyBXaW4gTWFjIExpbnV4IF0gbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFk
ZGVkLW9uY2UuaHRtbCBbIFNraXAgXQogCiAjIEZsYWt5IG9uIFdpbiAocGVyaGFwcyBkdWUgdG8g
bGlnaHR0cGQ/KQogd2Via2l0Lm9yZy9iLzEwNDQ4OSBbIFdpbiBdIGh0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX2F0dHJp
YnV0ZV9vcmRlci5odG1sIFsgRmFpbHVyZSBQYXNzIF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzc5NTgpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTY1Miw2
ICsxNjUyLDcgQEAgQnVnKEVGTCkgZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtcwogCiAj
IE5vIHN1cHBvcnQgZm9yIGV4cG9zaW5nIGluLWJhbmQgdGV4dCB0cmFja3MKIEJ1ZyhFRkwpIG1l
ZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbCBbIFNraXAgXQorQnVnKEVGTCkgbWVkaWEvdHJh
Y2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRtbCBbIFNraXAgXQogCiAjIE5ld2x5
IGFkZGVkIHRlc3QgaW4gcjEzNjIyNSBmYWlscyBvbiBHVEsgYm90IHRvby4KIHdlYmtpdC5vcmcv
Yi8xMDM3NDAgZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtYWxpZ25tZW50LWZvci12ZXJ0aWNhbC10
ZXh0Lmh0bWwgWyBGYWlsdXJlIF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzc5NTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDU3LDYgKzQ1Nyw3IEBAIHdl
YmtpdC5vcmcvYi8xMDM5MjYgbWVkaWEvdHJhY2svb3BlcmEvdHIKIAogIyBObyBzdXBwb3J0IGZv
ciBleHBvc2luZyBpbi1iYW5kIHRleHQgdHJhY2tzCiB3ZWJraXQub3JnL2IvMTAzNzcxIG1lZGlh
L3RyYWNrL3RyYWNrLWluLWJhbmQuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMzc3
MSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWN1ZXMtYWRkZWQtb25jZS5odG1sIFsgRmFpbHVy
ZSBdCiAKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBFeHBlY3Rl
ZCBmYWlsdXJlcwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMJKHJldmlzaW9uIDEzNzk1OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQxLDYgKzEyNDEsNyBAQCB3ZWJraXQub3Jn
L2IvMTAyNTc5IGZhc3QvZXZlbnRzL21vdXNlLWN1CiAKICMgTW91bnRhaW4gTGlvbiBhbmQgcHJp
b3IgZG8gbm90IGFsbG93IGFjY2VzcyB0byBpbi1iYW5kIHRleHQgdHJhY2tzCiB3ZWJraXQub3Jn
L2IvMTAzNjYzIFsgTW91bnRhaW5MaW9uIExpb24gU25vd0xlb3BhcmQgXSBtZWRpYS90cmFjay90
cmFjay1pbi1iYW5kLmh0bWwKK3dlYmtpdC5vcmcvYi8xMDM2NjMgWyBNb3VudGFpbkxpb24gTGlv
biBTbm93TGVvcGFyZCBdIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNl
Lmh0bWwKIAogd2Via2l0Lm9yZy9iLzEwNDEwNCBmYXN0L292ZXJmbG93L3Njcm9sbGJhci1jbGlj
ay1yZXRhaW5zLWZvY3VzLmh0bWwgWyBGYWlsdXJlIF0KIApJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzc5NTgpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0yNDQxLDYg
KzI0NDEsNyBAQCB3ZWJraXQub3JnL2IvMTAzNDI0IGZhc3QvYmFja2dyb3VuZHMvYmFjCiAKICMg
Tm8gc3VwcG9ydCBmb3IgZXhwb3NpbmcgaW4tYmFuZCB0ZXh0IHRyYWNrcwogd2Via2l0Lm9yZy9i
LzEwMzc2OSBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5v
cmcvYi8xMDM3NjkgbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRt
bCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTA0MTUwIGZhc3QvbWVkaWEvaW1wbGljaXQtbWVk
aWEtYWxsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIApJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzNzk1OCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0yNDc2
LDYgKzI0NzYsNyBAQCBmYXN0L2pzL2tkZS9BcnJheS5odG1sCiAKICMgTm8gc3VwcG9ydCBmb3Ig
ZXhwb3NpbmcgaW4tYmFuZCB0ZXh0IHRyYWNrcwogd2Via2l0Lm9yZy9iLzEwMzc3MCBtZWRpYS90
cmFjay90cmFjay1pbi1iYW5kLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMDM3NzAgbWVk
aWEvdHJhY2svdHJhY2staW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRtbCBbIFNraXAgXQogCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzAyNgogZmFzdC9ldmVu
dHMva2V5ZG93bi1sZWZ0cmlnaHQta2V5cy5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>