<?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>142941</bug_id>
          
          <creation_ts>2015-03-21 17:24:28 -0700</creation_ts>
          <short_desc>GCTimer should work correctly when invoked multiple times during the same collection</short_desc>
          <delta_ts>2015-03-31 10:12: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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>140774</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenb</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenb</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>mark.lam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1079105</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2015-03-21 17:24:28 -0700</bug_when>
    <thetext>It would be nice to be able to record more fine-grained GC phases during phases that can occur multiple times per collection. For example, visiting live weak handles consists of a number of sub-phases that can be repeated until nothing changes. The current GCTimer implementation doesn&apos;t handle this correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079107</commentid>
    <comment_count>1</comment_count>
      <attachid>249181</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2015-03-21 17:40:32 -0700</bug_when>
    <thetext>Created attachment 249181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079175</commentid>
    <comment_count>2</comment_count>
      <attachid>249207</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2015-03-22 13:38:54 -0700</bug_when>
    <thetext>Created attachment 249207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079309</commentid>
    <comment_count>3</comment_count>
      <attachid>249207</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-23 11:00:41 -0700</bug_when>
    <thetext>Comment on attachment 249207
Patch

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

r=me

&gt; Source/JavaScriptCore/heap/Heap.cpp:83
&gt; +struct TimeRecord {

Can you make this a real class in its own file?

I think we&apos;re supposed to use m_ naming for fields.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079313</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2015-03-23 11:30:52 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 249207 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=249207&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/Heap.cpp:83
&gt; &gt; +struct TimeRecord {
&gt; 
&gt; Can you make this a real class in its own file?
Sure, will do.

&gt; 
&gt; I think we&apos;re supposed to use m_ naming for fields.

Darin requested no &quot;m_&quot; for struct members on a previous patch dealing with GCTimer. Who do I believe!? :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079369</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-23 13:33:11 -0700</bug_when>
    <thetext>I don&apos;t know what the common style is for structs, but if you make it a class, I know what the style is :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080975</commentid>
    <comment_count>6</comment_count>
      <attachid>249674</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2015-03-28 17:02:32 -0700</bug_when>
    <thetext>Created attachment 249674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080976</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2015-03-28 17:03:18 -0700</bug_when>
    <thetext>Split GCTimer and friends out into separate files and moved them over to normal classes w/ accessors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080979</commentid>
    <comment_count>8</comment_count>
      <attachid>249675</attachid>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2015-03-28 17:22:13 -0700</bug_when>
    <thetext>Created attachment 249675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081660</commentid>
    <comment_count>9</comment_count>
      <attachid>249675</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-03-31 10:12:34 -0700</bug_when>
    <thetext>Comment on attachment 249675
Patch

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

r=me

&gt; Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:1806
&gt; -&lt;/Project&gt;
&gt;  \ No newline at end of file
&gt; +&lt;/Project&gt;

Can you fix this?  Seems like an unintended change.

&gt; Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:4433
&gt; -&lt;/Project&gt;
&gt;  \ No newline at end of file
&gt; +&lt;/Project&gt;

Another seemingly unintentional change.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249181</attachid>
            <date>2015-03-21 17:40:32 -0700</date>
            <delta_ts>2015-03-22 13:38:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142941-20150321174002.patch</filename>
            <type>text/plain</type>
            <size>8389</size>
            <attacher name="Mark Hahnenberg">mhahnenb</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxODI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDE1LTAzLTIxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYkBnbWFpbC5jb20+CisKKyAg
ICAgICAgR0NUaW1lciBzaG91bGQgd29yayBjb3JyZWN0bHkgd2hlbiBpbnZva2VkIG11bHRpcGxl
IHRpbWVzIGR1cmluZyB0aGUgc2FtZSBjb2xsZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5NDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCB3b3VsZCBiZSBuaWNlIHRvIGJlIGFibGUgdG8g
cmVjb3JkIG1vcmUgZmluZS1ncmFpbmVkIEdDIHBoYXNlcworICAgICAgICBkdXJpbmcgcGhhc2Vz
IHRoYXQgY2FuIG9jY3VyIG11bHRpcGxlIHRpbWVzIHBlciBjb2xsZWN0aW9uLiBGb3IKKyAgICAg
ICAgZXhhbXBsZSwgdmlzaXRpbmcgbGl2ZSB3ZWFrIGhhbmRsZXMgY29uc2lzdHMgb2YgYSBudW1i
ZXIgb2Ygc3ViLXBoYXNlcworICAgICAgICB0aGF0IGNhbiBiZSByZXBlYXRlZCB1bnRpbCBub3Ro
aW5nIGNoYW5nZXMuIFRoZSBjdXJyZW50IEdDVGltZXIKKyAgICAgICAgaW1wbGVtZW50YXRpb24g
ZGlkbid0IGhhbmRsZSB0aGlzIGNvcnJlY3RseS4KKworICAgICAgICBBbHNvIGFkZGVkIGEgY291
cGxlIG5ldyBHQyBwaGFzZXMuCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAo
SlNDOjpIZWFwOjpoYXJ2ZXN0V2Vha1JlZmVyZW5jZXMpOgorICAgICAgICAoSlNDOjpIZWFwOjp2
aXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVmZXJlbmNlcyk6CisgICAgICAgIChKU0M6OkhlYXA6
OnZpc2l0V2Vha1NldHMpOgorICAgICAgICAoSlNDOjpIZWFwOjpyZXRyYWNlQ29kZUJsb2Nrcyk6
CisgICAgICAgIChKU0M6OkhlYXA6OnZpc2l0V2Vha0hhbmRsZXMpOgorICAgICAgICAoSlNDOjpI
ZWFwOjpkZWxldGVVbm1hcmtlZENvbXBpbGVkQ29kZSk6CisgICAgICAgIChKU0M6OkhlYXA6OmNv
bGxlY3RJbXBsKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKwogMjAxNS0wMy0yMSAgQW5kcmVh
cyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBVbmxpbmtlZEZ1bmN0
aW9uRXhlY3V0YWJsZSBmaXQgaW4gYSAxMjgtYnl0ZSBjZWxsLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDE4MTgyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2MiArNzgsOTEgQEAgX1By
YWdtYSgiY2xhbmcgZGlhZ25vc3RpYyBwb3AiKQogc3RhdGljIHR5cGUgbmFtZSBhcmd1bWVudHM7
CiAjZW5kaWYgLy8gQ09NUElMRVIoQ0xBTkcpCiAKK3N0YXRpYyB1aW50NjRfdCBzX2N1cnJlbnRD
b2xsZWN0aW9uSUQgPSAwOworCitzdHJ1Y3QgVGltZVJlY29yZCB7CisgICAgVGltZVJlY29yZCgp
CisgICAgICAgIDogY3VycmVudFRpbWUoMCkKKyAgICAgICAgLCB0b3RhbFRpbWUoMCkKKyAgICAg
ICAgLCBtaW4oc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpKQorICAgICAg
ICAsIG1heCgwKQorICAgICAgICAsIGNvdW50KDApCisgICAgICAgICwgd2FzVXNlZEluUHJldmlv
dXNDb2xsZWN0aW9uKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIGRpZFN0YXJ0TmV3
Q29sbGVjdGlvbigpCisgICAgeworICAgICAgICBpZiAoIXdhc1VzZWRJblByZXZpb3VzQ29sbGVj
dGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgd2FzVXNlZEluUHJldmlvdXNDb2xs
ZWN0aW9uID0gZmFsc2U7CisKKyAgICAgICAgaWYgKGN1cnJlbnRUaW1lIDwgbWluKQorICAgICAg
ICAgICAgbWluID0gY3VycmVudFRpbWU7CisgICAgICAgIGlmIChjdXJyZW50VGltZSA+IG1heCkK
KyAgICAgICAgICAgIG1heCA9IGN1cnJlbnRUaW1lOworICAgICAgICB0b3RhbFRpbWUgKz0gY3Vy
cmVudFRpbWU7CisgICAgICAgIGNvdW50Kys7CisgICAgICAgIGN1cnJlbnRUaW1lID0gMDsKKyAg
ICB9CisKKyAgICB2b2lkIHVwZGF0ZURhdGEoZG91YmxlIGR1cmF0aW9uKQorICAgIHsKKyAgICAg
ICAgd2FzVXNlZEluUHJldmlvdXNDb2xsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgY3VycmVudFRp
bWUgKz0gZHVyYXRpb247CisgICAgfQorCisgICAgZG91YmxlIGN1cnJlbnRUaW1lOworICAgIGRv
dWJsZSB0b3RhbFRpbWU7CisgICAgZG91YmxlIG1pbjsKKyAgICBkb3VibGUgbWF4OworICAgIHNp
emVfdCBjb3VudDsKKyAgICBib29sIHdhc1VzZWRJblByZXZpb3VzQ29sbGVjdGlvbjsKK307CisK
IHN0cnVjdCBHQ1RpbWVyIHsKICAgICBHQ1RpbWVyKGNvbnN0IGNoYXIqIG5hbWUpCiAgICAgICAg
IDogbmFtZShuYW1lKQorICAgICAgICAsIGxhc3RDb2xsZWN0aW9uSUQoc3RkOjpudW1lcmljX2xp
bWl0czx1aW50NjRfdD46Om1heCgpKQogICAgIHsKICAgICB9CisKICAgICB+R0NUaW1lcigpCiAg
ICAgeworICAgICAgICAvLyBDYWxsIGRpZFN0YXJ0TmV3Q29sbGVjdGlvbiB0byBmbHVzaCB0aGUg
ZGF0YSBmcm9tIHRoZSBsYXN0IGNvbGxlY3Rpb24uCisgICAgICAgIGFsbENvbGxlY3Rpb25EYXRh
LmRpZFN0YXJ0TmV3Q29sbGVjdGlvbigpOwogICAgICAgICBsb2dEYXRhKGFsbENvbGxlY3Rpb25E
YXRhLCAiKEFsbCkiKTsKKyAgICAgICAgZWRlbkNvbGxlY3Rpb25EYXRhLmRpZFN0YXJ0TmV3Q29s
bGVjdGlvbigpOwogICAgICAgICBsb2dEYXRhKGVkZW5Db2xsZWN0aW9uRGF0YSwgIihFZGVuKSIp
OworICAgICAgICBmdWxsQ29sbGVjdGlvbkRhdGEuZGlkU3RhcnROZXdDb2xsZWN0aW9uKCk7CiAg
ICAgICAgIGxvZ0RhdGEoZnVsbENvbGxlY3Rpb25EYXRhLCAiKEZ1bGwpIik7CiAgICAgfQogCi0g
ICAgc3RydWN0IFRpbWVSZWNvcmQgewotICAgICAgICBUaW1lUmVjb3JkKCkKLSAgICAgICAgICAg
IDogdGltZSgwKQotICAgICAgICAgICAgLCBtaW4oc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjppbmZpbml0eSgpKQotICAgICAgICAgICAgLCBtYXgoMCkKLSAgICAgICAgICAgICwgY291bnQo
MCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgZG91YmxlIHRpbWU7Ci0gICAgICAg
IGRvdWJsZSBtaW47Ci0gICAgICAgIGRvdWJsZSBtYXg7Ci0gICAgICAgIHNpemVfdCBjb3VudDsK
LSAgICB9OwotCi0gICAgdm9pZCBsb2dEYXRhKGNvbnN0IFRpbWVSZWNvcmQmIGRhdGEsIGNvbnN0
IGNoYXIqIGV4dHJhKQorICAgIHZvaWQgbG9nRGF0YShjb25zdCBUaW1lUmVjb3JkJiBkYXRhLCBj
b25zdCBjaGFyKiBleHRyYSkgY29uc3QKICAgICB7CiAgICAgICAgIGRhdGFMb2dGKCJbJWRdICVz
IChQYXJlbnQ6ICVzKSAlczogJS4ybGZtcyAoYXZnLiAlLjJsZiwgbWluLiAlLjJsZiwgbWF4LiAl
LjJsZiwgY291bnQgJWx1KVxuIiwgCiAgICAgICAgICAgICBnZXRDdXJyZW50UHJvY2Vzc0lEKCks
CiAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgcGFyZW50ID8gcGFyZW50LT5uYW1lIDog
Im51bGxwdHIiLAogICAgICAgICAgICAgZXh0cmEsIAotICAgICAgICAgICAgZGF0YS50aW1lICog
MTAwMCwgCi0gICAgICAgICAgICBkYXRhLnRpbWUgKiAxMDAwIC8gZGF0YS5jb3VudCwgCisgICAg
ICAgICAgICBkYXRhLnRvdGFsVGltZSAqIDEwMDAsIAorICAgICAgICAgICAgZGF0YS50b3RhbFRp
bWUgKiAxMDAwIC8gZGF0YS5jb3VudCwgCiAgICAgICAgICAgICBkYXRhLm1pbiAqIDEwMDAsIAog
ICAgICAgICAgICAgZGF0YS5tYXggKiAxMDAwLAogICAgICAgICAgICAgZGF0YS5jb3VudCk7CiAg
ICAgfQogCi0gICAgdm9pZCB1cGRhdGVEYXRhKFRpbWVSZWNvcmQmIGRhdGEsIGRvdWJsZSBkdXJh
dGlvbikKLSAgICB7Ci0gICAgICAgIGlmIChkdXJhdGlvbiA8IGRhdGEubWluKQotICAgICAgICAg
ICAgZGF0YS5taW4gPSBkdXJhdGlvbjsKLSAgICAgICAgaWYgKGR1cmF0aW9uID4gZGF0YS5tYXgp
Ci0gICAgICAgICAgICBkYXRhLm1heCA9IGR1cmF0aW9uOwotICAgICAgICBkYXRhLmNvdW50Kys7
Ci0gICAgICAgIGRhdGEudGltZSArPSBkdXJhdGlvbjsKLSAgICB9Ci0KICAgICB2b2lkIGRpZEZp
bmlzaFBoYXNlKEhlYXBPcGVyYXRpb24gY29sbGVjdGlvblR5cGUsIGRvdWJsZSBkdXJhdGlvbikK
ICAgICB7CisgICAgICAgIGlmIChsYXN0Q29sbGVjdGlvbklEICE9IHNfY3VycmVudENvbGxlY3Rp
b25JRCkgeworICAgICAgICAgICAgZWRlbkNvbGxlY3Rpb25EYXRhLmRpZFN0YXJ0TmV3Q29sbGVj
dGlvbigpOworICAgICAgICAgICAgZnVsbENvbGxlY3Rpb25EYXRhLmRpZFN0YXJ0TmV3Q29sbGVj
dGlvbigpOworICAgICAgICAgICAgYWxsQ29sbGVjdGlvbkRhdGEuZGlkU3RhcnROZXdDb2xsZWN0
aW9uKCk7CisgICAgICAgICAgICBsYXN0Q29sbGVjdGlvbklEID0gc19jdXJyZW50Q29sbGVjdGlv
bklEOworICAgICAgICB9CiAgICAgICAgIFRpbWVSZWNvcmQmIGRhdGEgPSBjb2xsZWN0aW9uVHlw
ZSA9PSBFZGVuQ29sbGVjdGlvbiA/IGVkZW5Db2xsZWN0aW9uRGF0YSA6IGZ1bGxDb2xsZWN0aW9u
RGF0YTsKLSAgICAgICAgdXBkYXRlRGF0YShkYXRhLCBkdXJhdGlvbik7Ci0gICAgICAgIHVwZGF0
ZURhdGEoYWxsQ29sbGVjdGlvbkRhdGEsIGR1cmF0aW9uKTsKKyAgICAgICAgZGF0YS51cGRhdGVE
YXRhKGR1cmF0aW9uKTsKKyAgICAgICAgYWxsQ29sbGVjdGlvbkRhdGEudXBkYXRlRGF0YShkdXJh
dGlvbik7CiAgICAgfQogCiAgICAgc3RhdGljIEdDVGltZXIqIHNfY3VycmVudEdsb2JhbFRpbWVy
OwpAQCAtMTQyLDYgKzE3MSw3IEBAIHN0cnVjdCBHQ1RpbWVyIHsKICAgICBUaW1lUmVjb3JkIGZ1
bGxDb2xsZWN0aW9uRGF0YTsKICAgICBUaW1lUmVjb3JkIGVkZW5Db2xsZWN0aW9uRGF0YTsKICAg
ICBjb25zdCBjaGFyKiBuYW1lOworICAgIHVpbnQ2NF90IGxhc3RDb2xsZWN0aW9uSUQ7CiAgICAg
R0NUaW1lciogcGFyZW50IHsgbnVsbHB0ciB9OwogfTsKIApAQCAtNDgwLDYgKzUxMCw3IEBAIHZv
aWQgSGVhcDo6cG9wVGVtcFNvcnRWZWN0b3IoVmVjdG9yPFZhbHUKIAogdm9pZCBIZWFwOjpoYXJ2
ZXN0V2Vha1JlZmVyZW5jZXMoKQogeworICAgIEdDUEhBU0UoSGFydmVzdFdlYWtSZWZlcmVuY2Vz
KTsKICAgICBtX3Nsb3RWaXNpdG9yLmhhcnZlc3RXZWFrUmVmZXJlbmNlcygpOwogfQogCkBAIC02
NjYsNiArNjk3LDcgQEAgdm9pZCBIZWFwOjp2aXNpdENvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcgog
dm9pZCBIZWFwOjp2aXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVmZXJlbmNlcygpCiB7CiAjaWYg
RU5BQkxFKERGR19KSVQpCisgICAgR0NQSEFTRShWaXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVm
ZXJlbmNlcyk7CiAgICAgZm9yIChhdXRvIHdvcmtsaXN0IDogbV9zdXNwZW5kZWRDb21waWxlcldv
cmtsaXN0cykKICAgICAgICAgd29ya2xpc3QtPnZpc2l0V2Vha1JlZmVyZW5jZXMobV9zbG90Vmlz
aXRvciwgbV9jb2RlQmxvY2tzKTsKIApAQCAtNzgzLDE0ICs4MTUsMjcgQEAgdm9pZCBIZWFwOjpj
b252ZXJnZSgpCiAjZW5kaWYKIH0KIAordm9pZCBIZWFwOjp2aXNpdFdlYWtTZXRzKEhlYXBSb290
VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBHQ1BIQVNFKFZpc2l0V2Vha1NldHMpOworICAgIG1f
b2JqZWN0U3BhY2UudmlzaXRXZWFrU2V0cyh2aXNpdG9yKTsKK30KKwordm9pZCBIZWFwOjpyZXRy
YWNlQ29kZUJsb2NrcygpCit7CisgICAgR0NQSEFTRShSZXRyYWNlQ29kZUJsb2Nrcyk7CisgICAg
bV9jb2RlQmxvY2tzLnRyYWNlTWFya2VkKG1fc2xvdFZpc2l0b3IpOworfQorCiB2b2lkIEhlYXA6
OnZpc2l0V2Vha0hhbmRsZXMoSGVhcFJvb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEdDUEhB
U0UoVmlzaXRpbmdMaXZlV2Vha0hhbmRsZXMpOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAg
IG1fb2JqZWN0U3BhY2UudmlzaXRXZWFrU2V0cyh2aXNpdG9yKTsKKyAgICAgICAgdmlzaXRXZWFr
U2V0cyh2aXNpdG9yKTsKICAgICAgICAgaGFydmVzdFdlYWtSZWZlcmVuY2VzKCk7CiAgICAgICAg
IHZpc2l0Q29tcGlsZXJXb3JrbGlzdFdlYWtSZWZlcmVuY2VzKCk7Ci0gICAgICAgIG1fY29kZUJs
b2Nrcy50cmFjZU1hcmtlZChtX3Nsb3RWaXNpdG9yKTsgLy8gTmV3ICJleGVjdXRpbmciIGNvZGUg
YmxvY2tzIG1heSBiZSBkaXNjb3ZlcmVkLgorICAgICAgICByZXRyYWNlQ29kZUJsb2NrcygpOyAv
LyBOZXcgImV4ZWN1dGluZyIgY29kZSBibG9ja3MgbWF5IGJlIGRpc2NvdmVyZWQuCisKICAgICAg
ICAgaWYgKG1fc2xvdFZpc2l0b3IuaXNFbXB0eSgpKQogICAgICAgICAgICAgYnJlYWs7CiAKQEAg
LTc5OCw2ICs4NDMsNyBAQCB2b2lkIEhlYXA6OnZpc2l0V2Vha0hhbmRsZXMoSGVhcFJvb3RWaXNp
CiAgICAgICAgICAgICBkYXRhTG9nKCJMaXZlIFdlYWsgSGFuZGxlczpcbiIsIG1fc2xvdFZpc2l0
b3IpOwogCiAgICAgICAgIHsKKyAgICAgICAgICAgIEdDUEhBU0UoVmlzaXRXZWFrSGFuZGxlc0Rv
bmF0ZUFuZERyYWluKTsKICAgICAgICAgICAgIFBhcmFsbGVsTW9kZUVuYWJsZXIgZW5hYmxlciht
X3Nsb3RWaXNpdG9yKTsKICAgICAgICAgICAgIG1fc2xvdFZpc2l0b3IuZG9uYXRlQW5kRHJhaW4o
KTsKICNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCkBAIC05NzUsOCArMTAyMSwxNiBAQCB2b2lkIEhl
YXA6OmRlbGV0ZVVubWFya2VkQ29tcGlsZWRDb2RlKCkKIHsKICAgICBHQ1BIQVNFKERlbGV0ZUNv
ZGVCbG9ja3MpOwogICAgIGNsZWFyVW5tYXJrZWRFeGVjdXRhYmxlcygpOwotICAgIG1fY29kZUJs
b2Nrcy5kZWxldGVVbm1hcmtlZEFuZFVucmVmZXJlbmNlZChtX29wZXJhdGlvbkluUHJvZ3Jlc3Mp
OwotICAgIG1faml0U3R1YlJvdXRpbmVzLmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0dWJSb3V0
aW5lcygpOworCisgICAgeworICAgICAgICBHQ1BIQVNFKERlbGV0ZVVubWFya2VkQW5kVW5yZWZl
cmVuY2VkQ29kZUJsb2Nrcyk7CisgICAgICAgIG1fY29kZUJsb2Nrcy5kZWxldGVVbm1hcmtlZEFu
ZFVucmVmZXJlbmNlZChtX29wZXJhdGlvbkluUHJvZ3Jlc3MpOworICAgIH0KKworICAgIHsKKyAg
ICAgICAgR0NQSEFTRShEZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91dGluZXMpOworICAg
ICAgICBtX2ppdFN0dWJSb3V0aW5lcy5kZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91dGlu
ZXMoKTsKKyAgICB9CiB9CiAKIHZvaWQgSGVhcDo6YWRkVG9SZW1lbWJlcmVkU2V0KGNvbnN0IEpT
Q2VsbCogY2VsbCkKQEAgLTEwMjIsNiArMTA3Niw5IEBAIE5FVkVSX0lOTElORSB2b2lkIEhlYXA6
OmNvbGxlY3RJbXBsKEhlYXAKICAgICBkYXRhTG9nRigiSlNDIEdDIHN0YXJ0aW5nIGNvbGxlY3Rp
b24uXG4iKTsKICNlbmRpZgogICAgIAorI2lmIEVOQUJMRShHQ19MT0dHSU5HKQorICAgIHNfY3Vy
cmVudENvbGxlY3Rpb25JRCsrOworI2VuZGlmCiAgICAgZG91YmxlIGJlZm9yZSA9IDA7CiAgICAg
aWYgKE9wdGlvbnM6OmxvZ0dDKCkpIHsKICAgICAgICAgZGF0YUxvZygiW0dDOiAiKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDE4MTgyNikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMzA2LDYgKzMwNiw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aXNpdEhhbmRsZVN0YWNrKEhlYXBSb290VmlzaXRvciYp
OwogICAgIHZvaWQgdHJhY2VDb2RlQmxvY2tzQW5kSklUU3R1YlJvdXRpbmVzKCk7CiAgICAgdm9p
ZCBjb252ZXJnZSgpOworICAgIHZvaWQgdmlzaXRXZWFrU2V0cyhIZWFwUm9vdFZpc2l0b3ImKTsK
KyAgICB2b2lkIHJldHJhY2VDb2RlQmxvY2tzKCk7CiAgICAgdm9pZCB2aXNpdFdlYWtIYW5kbGVz
KEhlYXBSb290VmlzaXRvciYpOwogICAgIHZvaWQgY2xlYXJSZW1lbWJlcmVkU2V0KFZlY3Rvcjxj
b25zdCBKU0NlbGwqPiYpOwogICAgIHZvaWQgdXBkYXRlT2JqZWN0Q291bnRzKGRvdWJsZSBnY1N0
YXJ0VGltZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249207</attachid>
            <date>2015-03-22 13:38:54 -0700</date>
            <delta_ts>2015-03-28 17:02:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142941-20150322133829.patch</filename>
            <type>text/plain</type>
            <size>11060</size>
            <attacher name="Mark Hahnenberg">mhahnenb</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxODM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDE1LTAzLTIxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYkBnbWFpbC5jb20+CisKKyAg
ICAgICAgR0NUaW1lciBzaG91bGQgd29yayBjb3JyZWN0bHkgd2hlbiBpbnZva2VkIG11bHRpcGxl
IHRpbWVzIGR1cmluZyB0aGUgc2FtZSBjb2xsZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI5NDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCB3b3VsZCBiZSBuaWNlIHRvIGJlIGFibGUgdG8g
cmVjb3JkIG1vcmUgZmluZS1ncmFpbmVkIEdDIHBoYXNlcworICAgICAgICBkdXJpbmcgcGhhc2Vz
IHRoYXQgY2FuIG9jY3VyIG11bHRpcGxlIHRpbWVzIHBlciBjb2xsZWN0aW9uLiBGb3IKKyAgICAg
ICAgZXhhbXBsZSwgdmlzaXRpbmcgbGl2ZSB3ZWFrIGhhbmRsZXMgY29uc2lzdHMgb2YgYSBudW1i
ZXIgb2Ygc3ViLXBoYXNlcworICAgICAgICB0aGF0IGNhbiBiZSByZXBlYXRlZCB1bnRpbCBub3Ro
aW5nIGNoYW5nZXMuIFRoZSBjdXJyZW50IEdDVGltZXIKKyAgICAgICAgaW1wbGVtZW50YXRpb24g
ZGlkbid0IGhhbmRsZSB0aGlzIGNvcnJlY3RseS4KKworICAgICAgICBBbHNvIGFkZGVkIGEgY291
cGxlIG5ldyBHQyBwaGFzZXMuCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAo
SlNDOjpIZWFwOjpoYXJ2ZXN0V2Vha1JlZmVyZW5jZXMpOgorICAgICAgICAoSlNDOjpIZWFwOjp2
aXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVmZXJlbmNlcyk6CisgICAgICAgIChKU0M6OkhlYXA6
OnZpc2l0V2Vha1NldHMpOgorICAgICAgICAoSlNDOjpIZWFwOjpyZXRyYWNlQ29kZUJsb2Nrcyk6
CisgICAgICAgIChKU0M6OkhlYXA6OnZpc2l0V2Vha0hhbmRsZXMpOgorICAgICAgICAoSlNDOjpI
ZWFwOjpkZWxldGVVbm1hcmtlZENvbXBpbGVkQ29kZSk6CisgICAgICAgIChKU0M6OkhlYXA6OmNv
bGxlY3RJbXBsKToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKwogMjAxNS0wMy0yMiAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBPU1IgZXhpdCBzaG91bGRu
J3QgYXNzdW1lIHRoYXQgdGhlIGZyYW1lIGNvdW50IGZvciBleGl0IGlzIGdyZWF0ZXIgdGhhbiB0
aGUgZnJhbWUgY291bnQgaW4gREZHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNw
cAkocmV2aXNpb24gMTgxODM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDYyICs3OCw5OSBAQCBfUHJhZ21hKCJjbGFuZyBkaWFn
bm9zdGljIHBvcCIpCiBzdGF0aWMgdHlwZSBuYW1lIGFyZ3VtZW50czsKICNlbmRpZiAvLyBDT01Q
SUxFUihDTEFORykKIAorc3RhdGljIHVpbnQ2NF90IHNfY3VycmVudENvbGxlY3Rpb25JRCA9IDA7
CisKK3N0cnVjdCBUaW1lUmVjb3JkIHsKKyAgICBUaW1lUmVjb3JkKCkKKyAgICAgICAgOiBjdXJy
ZW50VGltZSgwKQorICAgICAgICAsIHRvdGFsVGltZSgwKQorICAgICAgICAsIG1pbihzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpCisgICAgICAgICwgbWF4KDApCisgICAg
ICAgICwgdG90YWxDb3VudCgwKQorICAgICAgICAsIGNvbGxlY3Rpb25Db3VudCgwKQorICAgICAg
ICAsIHdhc1VzZWRJblByZXZpb3VzQ29sbGVjdGlvbihmYWxzZSkKKyAgICB7CisgICAgfQorCisg
ICAgdm9pZCBkaWRTdGFydE5ld0NvbGxlY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCF3YXNV
c2VkSW5QcmV2aW91c0NvbGxlY3Rpb24pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdh
c1VzZWRJblByZXZpb3VzQ29sbGVjdGlvbiA9IGZhbHNlOworCisgICAgICAgIGlmIChjdXJyZW50
VGltZSA8IG1pbikKKyAgICAgICAgICAgIG1pbiA9IGN1cnJlbnRUaW1lOworICAgICAgICBpZiAo
Y3VycmVudFRpbWUgPiBtYXgpCisgICAgICAgICAgICBtYXggPSBjdXJyZW50VGltZTsKKyAgICAg
ICAgdG90YWxUaW1lICs9IGN1cnJlbnRUaW1lOworICAgICAgICBjb2xsZWN0aW9uQ291bnQrKzsK
KyAgICAgICAgY3VycmVudFRpbWUgPSAwOworICAgIH0KKworICAgIHZvaWQgdXBkYXRlRGF0YShk
b3VibGUgZHVyYXRpb24pCisgICAgeworICAgICAgICB3YXNVc2VkSW5QcmV2aW91c0NvbGxlY3Rp
b24gPSB0cnVlOworICAgICAgICBjdXJyZW50VGltZSArPSBkdXJhdGlvbjsKKyAgICAgICAgdG90
YWxDb3VudCsrOworICAgIH0KKworICAgIGRvdWJsZSBjdXJyZW50VGltZTsKKyAgICBkb3VibGUg
dG90YWxUaW1lOworICAgIGRvdWJsZSBtaW47CisgICAgZG91YmxlIG1heDsKKyAgICBzaXplX3Qg
dG90YWxDb3VudDsKKyAgICBzaXplX3QgY29sbGVjdGlvbkNvdW50OworICAgIGJvb2wgd2FzVXNl
ZEluUHJldmlvdXNDb2xsZWN0aW9uOworfTsKKwogc3RydWN0IEdDVGltZXIgewogICAgIEdDVGlt
ZXIoY29uc3QgY2hhciogbmFtZSkKICAgICAgICAgOiBuYW1lKG5hbWUpCisgICAgICAgICwgbGFz
dENvbGxlY3Rpb25JRChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpCiAgICAg
ewogICAgIH0KKwogICAgIH5HQ1RpbWVyKCkKICAgICB7CisgICAgICAgIC8vIENhbGwgZGlkU3Rh
cnROZXdDb2xsZWN0aW9uIHRvIGZsdXNoIHRoZSBkYXRhIGZyb20gdGhlIGxhc3QgY29sbGVjdGlv
bi4KKyAgICAgICAgYWxsQ29sbGVjdGlvbkRhdGEuZGlkU3RhcnROZXdDb2xsZWN0aW9uKCk7CiAg
ICAgICAgIGxvZ0RhdGEoYWxsQ29sbGVjdGlvbkRhdGEsICIoQWxsKSIpOworICAgICAgICBlZGVu
Q29sbGVjdGlvbkRhdGEuZGlkU3RhcnROZXdDb2xsZWN0aW9uKCk7CiAgICAgICAgIGxvZ0RhdGEo
ZWRlbkNvbGxlY3Rpb25EYXRhLCAiKEVkZW4pIik7CisgICAgICAgIGZ1bGxDb2xsZWN0aW9uRGF0
YS5kaWRTdGFydE5ld0NvbGxlY3Rpb24oKTsKICAgICAgICAgbG9nRGF0YShmdWxsQ29sbGVjdGlv
bkRhdGEsICIoRnVsbCkiKTsKICAgICB9CiAKLSAgICBzdHJ1Y3QgVGltZVJlY29yZCB7Ci0gICAg
ICAgIFRpbWVSZWNvcmQoKQotICAgICAgICAgICAgOiB0aW1lKDApCi0gICAgICAgICAgICAsIG1p
bihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpCi0gICAgICAgICAgICAs
IG1heCgwKQotICAgICAgICAgICAgLCBjb3VudCgwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQot
ICAgICAgICBkb3VibGUgdGltZTsKLSAgICAgICAgZG91YmxlIG1pbjsKLSAgICAgICAgZG91Ymxl
IG1heDsKLSAgICAgICAgc2l6ZV90IGNvdW50OwotICAgIH07Ci0KLSAgICB2b2lkIGxvZ0RhdGEo
Y29uc3QgVGltZVJlY29yZCYgZGF0YSwgY29uc3QgY2hhciogZXh0cmEpCisgICAgdm9pZCBsb2dE
YXRhKGNvbnN0IFRpbWVSZWNvcmQmIGRhdGEsIGNvbnN0IGNoYXIqIGV4dHJhKSBjb25zdAogICAg
IHsKLSAgICAgICAgZGF0YUxvZ0YoIlslZF0gJXMgKFBhcmVudDogJXMpICVzOiAlLjJsZm1zIChh
dmcuICUuMmxmLCBtaW4uICUuMmxmLCBtYXguICUuMmxmLCBjb3VudCAlbHUpXG4iLCAKKyAgICAg
ICAgZGF0YUxvZ0YoIlslZF0gJXMgKFBhcmVudDogJXMpICVzOiAlLjJsZm1zIChhdmcuICUuMmxm
LCBtaW4uICUuMmxmLCBtYXguICUuMmxmLCBjb3VudCAlbHUiLAogICAgICAgICAgICAgZ2V0Q3Vy
cmVudFByb2Nlc3NJRCgpLAogICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgIHBhcmVudCA/
IHBhcmVudC0+bmFtZSA6ICJudWxscHRyIiwKICAgICAgICAgICAgIGV4dHJhLCAKLSAgICAgICAg
ICAgIGRhdGEudGltZSAqIDEwMDAsIAotICAgICAgICAgICAgZGF0YS50aW1lICogMTAwMCAvIGRh
dGEuY291bnQsIAorICAgICAgICAgICAgZGF0YS50b3RhbFRpbWUgKiAxMDAwLCAKKyAgICAgICAg
ICAgIGRhdGEudG90YWxUaW1lICogMTAwMCAvIGRhdGEuY29sbGVjdGlvbkNvdW50LCAKICAgICAg
ICAgICAgIGRhdGEubWluICogMTAwMCwgCiAgICAgICAgICAgICBkYXRhLm1heCAqIDEwMDAsCi0g
ICAgICAgICAgICBkYXRhLmNvdW50KTsKLSAgICB9Ci0KLSAgICB2b2lkIHVwZGF0ZURhdGEoVGlt
ZVJlY29yZCYgZGF0YSwgZG91YmxlIGR1cmF0aW9uKQotICAgIHsKLSAgICAgICAgaWYgKGR1cmF0
aW9uIDwgZGF0YS5taW4pCi0gICAgICAgICAgICBkYXRhLm1pbiA9IGR1cmF0aW9uOwotICAgICAg
ICBpZiAoZHVyYXRpb24gPiBkYXRhLm1heCkKLSAgICAgICAgICAgIGRhdGEubWF4ID0gZHVyYXRp
b247Ci0gICAgICAgIGRhdGEuY291bnQrKzsKLSAgICAgICAgZGF0YS50aW1lICs9IGR1cmF0aW9u
OworICAgICAgICAgICAgZGF0YS5jb2xsZWN0aW9uQ291bnQpOworICAgICAgICBpZiAoZGF0YS50
b3RhbENvdW50ICE9IGRhdGEuY29sbGVjdGlvbkNvdW50KSB7CisgICAgICAgICAgICBkYXRhTG9n
RigiLCBpdGVycy9jb2xsZWN0ICUuMmxmIiwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxk
b3VibGU+KGRhdGEudG90YWxDb3VudCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KGRhdGEuY29sbGVj
dGlvbkNvdW50KSk7CisgICAgICAgIH0KKyAgICAgICAgZGF0YUxvZ0YoIilcbiIpOwogICAgIH0K
IAogICAgIHZvaWQgZGlkRmluaXNoUGhhc2UoSGVhcE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSwg
ZG91YmxlIGR1cmF0aW9uKQogICAgIHsKKyAgICAgICAgaWYgKGxhc3RDb2xsZWN0aW9uSUQgIT0g
c19jdXJyZW50Q29sbGVjdGlvbklEKSB7CisgICAgICAgICAgICBlZGVuQ29sbGVjdGlvbkRhdGEu
ZGlkU3RhcnROZXdDb2xsZWN0aW9uKCk7CisgICAgICAgICAgICBmdWxsQ29sbGVjdGlvbkRhdGEu
ZGlkU3RhcnROZXdDb2xsZWN0aW9uKCk7CisgICAgICAgICAgICBhbGxDb2xsZWN0aW9uRGF0YS5k
aWRTdGFydE5ld0NvbGxlY3Rpb24oKTsKKyAgICAgICAgICAgIGxhc3RDb2xsZWN0aW9uSUQgPSBz
X2N1cnJlbnRDb2xsZWN0aW9uSUQ7CisgICAgICAgIH0KICAgICAgICAgVGltZVJlY29yZCYgZGF0
YSA9IGNvbGxlY3Rpb25UeXBlID09IEVkZW5Db2xsZWN0aW9uID8gZWRlbkNvbGxlY3Rpb25EYXRh
IDogZnVsbENvbGxlY3Rpb25EYXRhOwotICAgICAgICB1cGRhdGVEYXRhKGRhdGEsIGR1cmF0aW9u
KTsKLSAgICAgICAgdXBkYXRlRGF0YShhbGxDb2xsZWN0aW9uRGF0YSwgZHVyYXRpb24pOworICAg
ICAgICBkYXRhLnVwZGF0ZURhdGEoZHVyYXRpb24pOworICAgICAgICBhbGxDb2xsZWN0aW9uRGF0
YS51cGRhdGVEYXRhKGR1cmF0aW9uKTsKICAgICB9CiAKICAgICBzdGF0aWMgR0NUaW1lciogc19j
dXJyZW50R2xvYmFsVGltZXI7CkBAIC0xNDIsNiArMTc5LDcgQEAgc3RydWN0IEdDVGltZXIgewog
ICAgIFRpbWVSZWNvcmQgZnVsbENvbGxlY3Rpb25EYXRhOwogICAgIFRpbWVSZWNvcmQgZWRlbkNv
bGxlY3Rpb25EYXRhOwogICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgdWludDY0X3QgbGFzdENv
bGxlY3Rpb25JRDsKICAgICBHQ1RpbWVyKiBwYXJlbnQgeyBudWxscHRyIH07CiB9OwogCkBAIC00
ODAsNiArNTE4LDcgQEAgdm9pZCBIZWFwOjpwb3BUZW1wU29ydFZlY3RvcihWZWN0b3I8VmFsdQog
CiB2b2lkIEhlYXA6OmhhcnZlc3RXZWFrUmVmZXJlbmNlcygpCiB7CisgICAgR0NQSEFTRShIYXJ2
ZXN0V2Vha1JlZmVyZW5jZXMpOwogICAgIG1fc2xvdFZpc2l0b3IuaGFydmVzdFdlYWtSZWZlcmVu
Y2VzKCk7CiB9CiAKQEAgLTY2Niw2ICs3MDUsNyBAQCB2b2lkIEhlYXA6OnZpc2l0Q29uc2VydmF0
aXZlUm9vdHMoQ29uc2VyCiB2b2lkIEhlYXA6OnZpc2l0Q29tcGlsZXJXb3JrbGlzdFdlYWtSZWZl
cmVuY2VzKCkKIHsKICNpZiBFTkFCTEUoREZHX0pJVCkKKyAgICBHQ1BIQVNFKFZpc2l0Q29tcGls
ZXJXb3JrbGlzdFdlYWtSZWZlcmVuY2VzKTsKICAgICBmb3IgKGF1dG8gd29ya2xpc3QgOiBtX3N1
c3BlbmRlZENvbXBpbGVyV29ya2xpc3RzKQogICAgICAgICB3b3JrbGlzdC0+dmlzaXRXZWFrUmVm
ZXJlbmNlcyhtX3Nsb3RWaXNpdG9yLCBtX2NvZGVCbG9ja3MpOwogCkBAIC03ODMsMTQgKzgyMywy
NyBAQCB2b2lkIEhlYXA6OmNvbnZlcmdlKCkKICNlbmRpZgogfQogCit2b2lkIEhlYXA6OnZpc2l0
V2Vha1NldHMoSGVhcFJvb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEdDUEhBU0UoVmlzaXRX
ZWFrU2V0cyk7CisgICAgbV9vYmplY3RTcGFjZS52aXNpdFdlYWtTZXRzKHZpc2l0b3IpOworfQor
Cit2b2lkIEhlYXA6OnJldHJhY2VDb2RlQmxvY2tzKCkKK3sKKyAgICBHQ1BIQVNFKFJldHJhY2VD
b2RlQmxvY2tzKTsKKyAgICBtX2NvZGVCbG9ja3MudHJhY2VNYXJrZWQobV9zbG90VmlzaXRvcik7
Cit9CisKIHZvaWQgSGVhcDo6dmlzaXRXZWFrSGFuZGxlcyhIZWFwUm9vdFZpc2l0b3ImIHZpc2l0
b3IpCiB7CiAgICAgR0NQSEFTRShWaXNpdGluZ0xpdmVXZWFrSGFuZGxlcyk7CiAgICAgd2hpbGUg
KHRydWUpIHsKLSAgICAgICAgbV9vYmplY3RTcGFjZS52aXNpdFdlYWtTZXRzKHZpc2l0b3IpOwor
ICAgICAgICB2aXNpdFdlYWtTZXRzKHZpc2l0b3IpOwogICAgICAgICBoYXJ2ZXN0V2Vha1JlZmVy
ZW5jZXMoKTsKICAgICAgICAgdmlzaXRDb21waWxlcldvcmtsaXN0V2Vha1JlZmVyZW5jZXMoKTsK
LSAgICAgICAgbV9jb2RlQmxvY2tzLnRyYWNlTWFya2VkKG1fc2xvdFZpc2l0b3IpOyAvLyBOZXcg
ImV4ZWN1dGluZyIgY29kZSBibG9ja3MgbWF5IGJlIGRpc2NvdmVyZWQuCisgICAgICAgIHJldHJh
Y2VDb2RlQmxvY2tzKCk7IC8vIE5ldyAiZXhlY3V0aW5nIiBjb2RlIGJsb2NrcyBtYXkgYmUgZGlz
Y292ZXJlZC4KKwogICAgICAgICBpZiAobV9zbG90VmlzaXRvci5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICBicmVhazsKIApAQCAtNzk4LDYgKzg1MSw3IEBAIHZvaWQgSGVhcDo6dmlzaXRXZWFrSGFu
ZGxlcyhIZWFwUm9vdFZpc2kKICAgICAgICAgICAgIGRhdGFMb2coIkxpdmUgV2VhayBIYW5kbGVz
OlxuIiwgbV9zbG90VmlzaXRvcik7CiAKICAgICAgICAgeworICAgICAgICAgICAgR0NQSEFTRShW
aXNpdFdlYWtIYW5kbGVzRG9uYXRlQW5kRHJhaW4pOwogICAgICAgICAgICAgUGFyYWxsZWxNb2Rl
RW5hYmxlciBlbmFibGVyKG1fc2xvdFZpc2l0b3IpOwogICAgICAgICAgICAgbV9zbG90VmlzaXRv
ci5kb25hdGVBbmREcmFpbigpOwogI2lmIEVOQUJMRShQQVJBTExFTF9HQykKQEAgLTk3NSw4ICsx
MDI5LDE2IEBAIHZvaWQgSGVhcDo6ZGVsZXRlVW5tYXJrZWRDb21waWxlZENvZGUoKQogewogICAg
IEdDUEhBU0UoRGVsZXRlQ29kZUJsb2Nrcyk7CiAgICAgY2xlYXJVbm1hcmtlZEV4ZWN1dGFibGVz
KCk7Ci0gICAgbV9jb2RlQmxvY2tzLmRlbGV0ZVVubWFya2VkQW5kVW5yZWZlcmVuY2VkKG1fb3Bl
cmF0aW9uSW5Qcm9ncmVzcyk7Ci0gICAgbV9qaXRTdHViUm91dGluZXMuZGVsZXRlVW5tYXJrZWRK
ZXR0aXNvbmVkU3R1YlJvdXRpbmVzKCk7CisKKyAgICB7CisgICAgICAgIEdDUEhBU0UoRGVsZXRl
VW5tYXJrZWRBbmRVbnJlZmVyZW5jZWRDb2RlQmxvY2tzKTsKKyAgICAgICAgbV9jb2RlQmxvY2tz
LmRlbGV0ZVVubWFya2VkQW5kVW5yZWZlcmVuY2VkKG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyk7Cisg
ICAgfQorCisgICAgeworICAgICAgICBHQ1BIQVNFKERlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0
dWJSb3V0aW5lcyk7CisgICAgICAgIG1faml0U3R1YlJvdXRpbmVzLmRlbGV0ZVVubWFya2VkSmV0
dGlzb25lZFN0dWJSb3V0aW5lcygpOworICAgIH0KIH0KIAogdm9pZCBIZWFwOjphZGRUb1JlbWVt
YmVyZWRTZXQoY29uc3QgSlNDZWxsKiBjZWxsKQpAQCAtMTAyMiw2ICsxMDg0LDkgQEAgTkVWRVJf
SU5MSU5FIHZvaWQgSGVhcDo6Y29sbGVjdEltcGwoSGVhcAogICAgIGRhdGFMb2dGKCJKU0MgR0Mg
c3RhcnRpbmcgY29sbGVjdGlvbi5cbiIpOwogI2VuZGlmCiAgICAgCisjaWYgRU5BQkxFKEdDX0xP
R0dJTkcpCisgICAgc19jdXJyZW50Q29sbGVjdGlvbklEKys7CisjZW5kaWYKICAgICBkb3VibGUg
YmVmb3JlID0gMDsKICAgICBpZiAoT3B0aW9uczo6bG9nR0MoKSkgewogICAgICAgICBkYXRhTG9n
KCJbR0M6ICIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMTgx
ODM1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMDYsNiArMzA2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHZpc2l0SGFuZGxlU3RhY2so
SGVhcFJvb3RWaXNpdG9yJik7CiAgICAgdm9pZCB0cmFjZUNvZGVCbG9ja3NBbmRKSVRTdHViUm91
dGluZXMoKTsKICAgICB2b2lkIGNvbnZlcmdlKCk7CisgICAgdm9pZCB2aXNpdFdlYWtTZXRzKEhl
YXBSb290VmlzaXRvciYpOworICAgIHZvaWQgcmV0cmFjZUNvZGVCbG9ja3MoKTsKICAgICB2b2lk
IHZpc2l0V2Vha0hhbmRsZXMoSGVhcFJvb3RWaXNpdG9yJik7CiAgICAgdm9pZCBjbGVhclJlbWVt
YmVyZWRTZXQoVmVjdG9yPGNvbnN0IEpTQ2VsbCo+Jik7CiAgICAgdm9pZCB1cGRhdGVPYmplY3RD
b3VudHMoZG91YmxlIGdjU3RhcnRUaW1lKTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MTgzNSkKKysrIFRvb2xzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE1LTAzLTIyICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYkBnbWFpbC5jb20+CisKKyAgICAgICAgR0NUaW1lciBzaG91bGQg
d29yayBjb3JyZWN0bHkgd2hlbiBpbnZva2VkIG11bHRpcGxlIHRpbWVzIGR1cmluZyB0aGUgc2Ft
ZSBjb2xsZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDI5NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGUgcmVnZXggZm9yIHBoYXNlIHRpbWluZyBvdXRwdXQgdG8gaW5jbHVkZSBudW1i
ZXIgb2YgcGhhc2UKKyAgICAgICAgaXRlcmF0aW9ucyBwZXIgY29sbGVjdGlvbi4KKworICAgICAg
ICAqIFNjcmlwdHMvcGFyc2UtZ2MtcGhhc2UtdGltaW5nczoKKyAgICAgICAgKFRpbWluZyk6Cisg
ICAgICAgIChUaW1pbmcuX19pbml0X18pOgorICAgICAgICAocGFyc2VfaW5wdXQpOgorCiAyMDE1
LTAzLTIwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYkBnbWFpbC5jb20+CiAKICAgICAgICAg
R0NUaW1lciBzaG91bGQga25vdyBrZWVwIHRyYWNrIG9mIG5lc3RlZCBHQyBwaGFzZXMKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvcGFyc2UtZ2MtcGhhc2UtdGltaW5ncwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3BhcnNlLWdjLXBoYXNlLXRpbWluZ3MJKHJldmlzaW9uIDE4MTgzNSkKKysrIFRv
b2xzL1NjcmlwdHMvcGFyc2UtZ2MtcGhhc2UtdGltaW5ncwkod29ya2luZyBjb3B5KQpAQCAtMzUs
MTAgKzM1LDEyIEBAIFRJTUlOR19SRUdFWCA9IHJlLmNvbXBpbGUoCiAgICAgJ1woYXZnLiAoP1A8
YXZnX3RpbWU+W14sXSspLCAnCiAgICAgJ21pbi4gKD9QPG1pbl90aW1lPlteLF0rKSwgJwogICAg
ICdtYXguICg/UDxtYXhfdGltZT5bXixdKyksICcKLSAgICAnY291bnQgKD9QPGNvdW50PlteXCld
KylcKScpCisgICAgJ2NvdW50ICg/UDxjb3VudD5bXixcKV0rKScKKyAgICAnKD86LCBpdGVycy9j
b2xsZWN0ICg/UDxhdmdfaXRlcnM+W15cKV0rKSk/JworICAgICdcKScpCiAKIGNsYXNzIFRpbWlu
ZyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwaWQsIG5hbWUsIHBhcmVudCwgY29s
bGVjdF90eXBlLCB0b3RhbF90aW1lLCBhdmdfdGltZSwgbWluX3RpbWUsIG1heF90aW1lLCBjb3Vu
dCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBpZCwgbmFtZSwgcGFyZW50LCBjb2xsZWN0X3R5
cGUsIHRvdGFsX3RpbWUsIGF2Z190aW1lLCBtaW5fdGltZSwgbWF4X3RpbWUsIGNvdW50LCBhdmdf
aXRlcnMpOgogICAgICAgICBzZWxmLnBpZCA9IGludChwaWQpCiAgICAgICAgIHNlbGYubmFtZSA9
IHN0cihuYW1lKQogICAgICAgICBzZWxmLnBhcmVudCA9IHN0cihwYXJlbnQpCkBAIC00OCw2ICs1
MCw3IEBAIGNsYXNzIFRpbWluZyhvYmplY3QpOgogICAgICAgICBzZWxmLm1pbl90aW1lID0gZmxv
YXQobWluX3RpbWUpCiAgICAgICAgIHNlbGYubWF4X3RpbWUgPSBmbG9hdChtYXhfdGltZSkKICAg
ICAgICAgc2VsZi5jb3VudCA9IGludChjb3VudCkKKyAgICAgICAgc2VsZi5hdmdfaXRlcnMgPSBm
bG9hdChhdmdfaXRlcnMpCiAgICAgICAgIHNlbGYuY2hpbGRyZW4gPSBbXQogCiAgICAgZGVmIF9f
dW5pY29kZV9fKHNlbGYpOgpAQCAtNzYsNiArNzksNyBAQCBkZWYgcGFyc2VfaW5wdXQoKToKICAg
ICAgICAgICAgIHJlc3VsdC5ncm91cCgnbWluX3RpbWUnKSwKICAgICAgICAgICAgIHJlc3VsdC5n
cm91cCgnbWF4X3RpbWUnKSwKICAgICAgICAgICAgIHJlc3VsdC5ncm91cCgnY291bnQnKSwKKyAg
ICAgICAgICAgIDEuMCBpZiByZXN1bHQuZ3JvdXAoJ2F2Z19pdGVycycpIGlzIE5vbmUgZWxzZSBy
ZXN1bHQuZ3JvdXAoJ2F2Z19pdGVycycpCiAgICAgICAgICkpCiAgICAgcmV0dXJuIHRpbWluZ3MK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249674</attachid>
            <date>2015-03-28 17:02:32 -0700</date>
            <delta_ts>2015-03-28 17:22:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142941-20150328170157.patch</filename>
            <type>text/plain</type>
            <size>32860</size>
            <attacher name="Mark Hahnenberg">mhahnenb</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MDNiMDY3YmVkM2RmMzc2ZWNjOTQ0NzcyZjJiNWQxNjQ3YzYzY2JjLi5jMDgzYzQ4ZjUyODNjYWQ1
Y2MwOTljNjEyNjc2NTI3YTJjYTIzZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxNS0wMy0yOCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJAZ21haWwu
Y29tPgorCisgICAgICAgIEdDVGltZXIgc2hvdWxkIHdvcmsgY29ycmVjdGx5IHdoZW4gaW52b2tl
ZCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgdGhlIHNhbWUgY29sbGVjdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTQxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgd291bGQgYmUgbmljZSB0byBi
ZSBhYmxlIHRvIHJlY29yZCBtb3JlIGZpbmUtZ3JhaW5lZCBHQyBwaGFzZXMKKyAgICAgICAgZHVy
aW5nIHBoYXNlcyB0aGF0IGNhbiBvY2N1ciBtdWx0aXBsZSB0aW1lcyBwZXIgY29sbGVjdGlvbi4g
Rm9yCisgICAgICAgIGV4YW1wbGUsIHZpc2l0aW5nIGxpdmUgd2VhayBoYW5kbGVzIGNvbnNpc3Rz
IG9mIGEgbnVtYmVyIG9mIHN1Yi1waGFzZXMKKyAgICAgICAgdGhhdCBjYW4gYmUgcmVwZWF0ZWQg
dW50aWwgbm90aGluZyBjaGFuZ2VzLiBUaGUgY3VycmVudCBHQ1RpbWVyCisgICAgICAgIGltcGxl
bWVudGF0aW9uIGRpZG4ndCBoYW5kbGUgdGhpcyBjb3JyZWN0bHkuCisKKyAgICAgICAgQWxzbyBh
ZGRlZCBhIGNvdXBsZSBuZXcgR0MgcGhhc2VzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogaGVhcC9HQ1RpbWVyLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6
OlRpbWVSZWNvcmQ6OlRpbWVSZWNvcmQpOgorICAgICAgICAoSlNDOjpUaW1lUmVjb3JkOjpkaWRT
dGFydE5ld0NvbGxlY3Rpb24pOgorICAgICAgICAoSlNDOjpUaW1lUmVjb3JkOjp1cGRhdGVEYXRh
KToKKyAgICAgICAgKEpTQzo6R0NUaW1lcjo6R0NUaW1lcik6CisgICAgICAgIChKU0M6OkdDVGlt
ZXI6On5HQ1RpbWVyKToKKyAgICAgICAgKEpTQzo6R0NUaW1lcjo6ZGlkRmluaXNoUGhhc2UpOgor
ICAgICAgICAoSlNDOjpHQ1RpbWVyOjpsb2dEYXRhKToKKyAgICAgICAgKEpTQzo6R0NDb3VudGVy
OjpHQ0NvdW50ZXIpOgorICAgICAgICAoSlNDOjpHQ0NvdW50ZXI6On5HQ0NvdW50ZXIpOgorICAg
ICAgICAoSlNDOjpHQ0NvdW50ZXI6OmFkZCk6CisgICAgICAgICogaGVhcC9HQ1RpbWVyLmg6IEFk
ZGVkLgorICAgICAgICAoSlNDOjpUaW1lUmVjb3JkOjptaW4pOgorICAgICAgICAoSlNDOjpUaW1l
UmVjb3JkOjptYXgpOgorICAgICAgICAoSlNDOjpUaW1lUmVjb3JkOjp0b3RhbFRpbWUpOgorICAg
ICAgICAoSlNDOjpUaW1lUmVjb3JkOjpjb2xsZWN0aW9uQ291bnQpOgorICAgICAgICAoSlNDOjpU
aW1lUmVjb3JkOjp0b3RhbENvdW50KToKKyAgICAgICAgKEpTQzo6R0NUaW1lcjo6bmFtZSk6Cisg
ICAgICAgIChKU0M6OkdDVGltZXI6OnBhcmVudCk6CisgICAgICAgIChKU0M6OkdDVGltZXI6OnNl
dFBhcmVudCk6CisgICAgICAgIChKU0M6OkdDVGltZXJTY29wZTo6R0NUaW1lclNjb3BlKToKKyAg
ICAgICAgKEpTQzo6R0NUaW1lclNjb3BlOjp+R0NUaW1lclNjb3BlKToKKyAgICAgICAgKiBoZWFw
L0hlYXAuY3BwOgorCiAyMDE1LTAzLTI3ICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWls
LmNvbT4KIAogICAgICAgICBEZWNvbnN0cnVjdGlvbiBwYXJhbWV0ZXJzIGFyZSBib3VuZCB0b28g
bGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDcyMTEyNzY1MmQ4ODhm
NTAxYWI2YzIxN2I4MzM0NDE5MDQzZjU4NjQuLjM2YjFmMjhjODQyZTUxM2IxZmUzNjJhZjBiM2Nm
YjMwMDg3MjQ5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI2MSw2
ICsyNjEsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGhlYXAvR0NMb2dnaW5n
LmNwcAogICAgIGhlYXAvR0NUaHJlYWQuY3BwCiAgICAgaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEu
Y3BwCisgICAgaGVhcC9HQ1RpbWVyLmNwcAogICAgIGhlYXAvSGFuZGxlU2V0LmNwcAogICAgIGhl
YXAvSGFuZGxlU3RhY2suY3BwCiAgICAgaGVhcC9IZWFwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4
cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2oKaW5kZXggNzQzMzBlNzAzZGFjNGQzNjAwZWFiMjdhMGFkOGViNGFm
MDBlMGIzMi4uODA3ZWNkZjcyOTc0MGJhMWFmM2JjZjhkMDQxMWE1ZGFlN2U0NDdkNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNj
cmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC01NDQsNiArNTQ0LDcgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NMb2dnaW5nLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5caGVhcFxHQ1RocmVhZFNoYXJlZERhdGEuY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5caGVhcFxHQ1RpbWVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGhlYXBcSGFuZGxlU2V0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGhlYXBcSGFuZGxlU3RhY2suY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVh
cFxIZWFwLmNwcCIgLz4KQEAgLTEyNjUsNiArMTI2Niw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxoZWFwXEdDQXNzZXJ0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caGVhcFxHQ1RocmVhZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxH
Q1RocmVhZFNoYXJlZERhdGEuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBc
R0NUaW1lci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxIYW5kbGUuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcSGFuZGxlQmxvY2suaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcSGFuZGxlQmxvY2tJbmxpbmVzLmgiIC8+CkBA
IC0xODAwLDQgKzE4MDIsNCBAQAogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdl
dHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6
YXRpb25zXG1hc20udGFyZ2V0cyIgLz4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOTljOGE3ZmMxY2E0OTRlMGE4
MTQxMDEyZjJmNzAwNDg4N2M5NDkyYi4uZDJkNWMwYWNiYjk0ODZmYzIzMGE1NTJlZjUyNTdiYzg1
ZjNkMWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMjY0LDYgKzI2NCw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxo
ZWFwXEdDVGhyZWFkU2hhcmVkRGF0YS5jcHAiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXEdDVGlt
ZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxIYW5kbGVTZXQuY3BwIj4KICAgICAgIDxG
aWx0ZXI+aGVhcDwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMjEzMiw2ICsyMTM1LDkg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWRTaGFyZWREYXRhLmgi
PgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXEdDVGltZXIuaCI+CisgICAgICA8RmlsdGVyPmhlYXA8
L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhl
YXBcSGFuZGxlLmgiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CkBAIC00NDIzLDQgKzQ0MjksNCBAQAogICAgICAgPEZpbHRlcj5qaXQ8L0ZpbHRlcj4KICAg
ICA8L01BU00+CiAgIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmEy
ZDEzNmViOTViNWE5ZmQzNTRhYjMwYThmMzY5MWJmNzhjZWI4Ni4uNGJiNGYyZGE5NWJhYWFiMjYx
ZGUwODRmOTFhMzc1YTVhNjA5YmRhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1NzYsNiArMTU3Niw3IEBACiAJCUMyMTYwRkU3MTVGN0U5NUUwMDk0MkRGQyAvKiBTbG90Vmlz
aXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQ0I0MDg1MTVDMEEzQzMwMDQ4OTMyQiAvKiBTbG90VmlzaXRvcklubGluZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjE4MUZDMjE4
QTk0OEZCMDAyNUEyMzUgLyogSlNFeHBvcnRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMTgxRkMxMThBOTQ4RkIwMDI1QTIzNSAvKiBKU0V4
cG9ydFRlc3RzLm1tICovOyB9OwogCQlDMjE4RDE0MDE2NTVDRkQ1MDA2MkJCODEgLyogQ29weVdv
cmtMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MjE4RDEzRjE2NTVDRkQ1MDA2MkJCODEgLyogQ29weVdvcmtMaXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzIxRjA1MUMxQUM3NTkyNDAwRDVG
QjIyIC8qIEdDVGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzIxRjA1MUIxQUM3NTkyNDAwRDVGQjIyIC8qIEdDVGltZXIuY3BwICovOyB9Owog
CQlDMjIzOUQxNzE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIyMzlEMTIxNjI2MkJERDAwNUFD
NUZEIC8qIENvcHlWaXNpdG9yLmNwcCAqLzsgfTsKIAkJQzIyMzlEMTgxNjI2MkJERDAwNUFDNUZE
IC8qIENvcHlWaXNpdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMjIzOUQxMzE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3IuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjIzOUQxOTE2MjYy
QkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3JJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjIzOUQxNDE2MjYyQkREMDA1QUM1RkQgLyogQ29w
eVZpc2l0b3JJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTE1OTcsNiArMTU5OCw3IEBACiAJCUMyOTgxRkQ5MTdCQUVFNEIwMEEzQkM5
OCAvKiBERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyOTgxRkQ3MTdCQUVFNEIwMEEzQkM5OCAvKiBERkdEZXNp
cmVkV2Vha1JlZmVyZW5jZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDMjk4MUZEQzE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRl
QmFycmllcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzI5ODFGREExN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmNw
cCAqLzsgfTsKIAkJQzI5ODFGREQxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXcml0ZUJh
cnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
Mjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDMjlBNEUyMDFB
QzcxQzBDMDA0NkU0OTIgLyogR0NUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzI5QTRFMUYxQUM3MUMwQzAwNDZFNDkyIC8qIEdDVGltZXIuaCAq
LzsgfTsKIAkJQzI5RUNCMDMxODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxv
Y2tHZXR0ZXJUZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tH
ZXR0ZXJUZXN0Lm1tICovOyB9OwogCQlDMkE3RjY4ODE2MDQzMkQ0MDBGNzZCOTggLyogSlNEZXN0
cnVjdGlibGVPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyQjZE
NzUzMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI2RDc1MjE4QTMzNzkzMDA0QTkz
MDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0zMzA4LDYgKzMzMTAsNyBAQAogCQlDMjE4MUZDMDE4QTk0
OEZCMDAyNUEyMzUgLyogSlNFeHBvcnRUZXN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBKU0V4cG9ydFRlc3RzLmg7IHBhdGggPSBBUEkvdGVzdHMvSlNFeHBvcnRUZXN0cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjE4MUZDMTE4QTk0OEZCMDAyNUEyMzUg
LyogSlNFeHBvcnRUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IEpTRXhwb3J0VGVzdHMubW07IHBhdGggPSBBUEkvdGVzdHMvSlNFeHBvcnRUZXN0cy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIxOEQxM0YxNjU1Q0ZENTAwNjJCQjgxIC8q
IENvcHlXb3JrTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3B5V29y
a0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzIxRjA1MUIxQUM3NTkyNDAw
RDVGQjIyIC8qIEdDVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gR0NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMjM5RDEyMTYy
NjJCREQwMDVBQzVGRCAvKiBDb3B5VmlzaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb3B5VmlzaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUMyMjM5RDEzMTYyNjJCREQwMDVBQzVGRCAvKiBDb3B5VmlzaXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb3B5VmlzaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDMjIzOUQxNDE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3JJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcHlWaXNpdG9ySW5saW5lcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzMyOSw2ICszMzMyLDcgQEAKIAkJQzI5
ODFGRDcxN0JBRUU0QjAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXZWFrUmVmZXJlbmNlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuaDsg
cGF0aCA9IGRmZy9ERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzI5ODFGREExN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXcml0ZUJh
cnJpZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0Rlc2ly
ZWRXcml0ZUJhcnJpZXJzLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyOTgxRkRCMTdCQUZGNDQwMEEzQkM5
OCAvKiBERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5oOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyOUE0RTFGMUFD
NzFDMEMwMDQ2RTQ5MiAvKiBHQ1RpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdDVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI5RUNCMDExODA0
RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9j
a0dldHRlclRlc3QubW07IHBhdGggPSBBUEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dl
dHRlclRlc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQw
RUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVz
dC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAv
KiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0Rlc3RydWN0aWJsZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDA0Miw2ICs0MDQ2LDggQEAKIAkJCQkyQTgzNjM4ODE4RDdEMEZFMDAwMEVCQ0MgLyogRnVsbEdD
QWN0aXZpdHlDYWxsYmFjay5oICovLAogCQkJCTJBQUJDREU2MThFRjI5NDIwMDAwMjA5NiAvKiBH
Q0xvZ2dpbmcuaCAqLywKIAkJCQkyQURGQTI2MjE4RUYzNTQwMDA0RjlGQ0MgLyogR0NMb2dnaW5n
LmNwcCAqLywKKwkJCQlDMjlBNEUxRjFBQzcxQzBDMDA0NkU0OTIgLyogR0NUaW1lci5oICovLAor
CQkJCUMyMUYwNTFCMUFDNzU5MjQwMEQ1RkIyMiAvKiBHQ1RpbWVyLmNwcCAqLywKIAkJCSk7CiAJ
CQlwYXRoID0gaGVhcDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01OTk5LDYgKzYw
MDUsNyBAQAogCQkJCTE0MjlENzdDMEVEMjBENzMwMEI4OTYxOSAvKiBJbnRlcnByZXRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODYwQkQ4MDExNDhFQTZGMjAwMTEyQjJGIC8qIEludHJpbnNpYy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzAxMTNENEMxQThEQjA5MzAwMzg0OEM0IC8qIEl0ZXJhdG9y
T3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzI5QTRFMjAxQUM3MUMwQzAwNDZFNDky
IC8qIEdDVGltZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDEzMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBKYXZhU2NyaXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCOUNGNTE5RDBCQUMxMDBC
MUQxQjUgLyogRlRMRXhpdFByb3BlcnR5VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDNG
QTFBMTg4RTBGQjAwMDExMEYxNCAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmggaW4gSGVhZGVycyAq
LywKQEAgLTcwOTYsNiArNzEwMyw3IEBACiAJCQkJMEZFNzIxMUQxOTNCOUM1OTAwMzFGNkVEIC8q
IERGR1RyYW5zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkFDQ0YzREUxODVGRTI2QjAw
ODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkMyMENCNTE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFz
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMjFGMDUxQzFBQzc1OTI0MDBENUZCMjIgLyogR0NU
aW1lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJGQ0NGRTE4QTYwMDcwMDAxQTI3RjggLyog
REZHVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMwOTdBMTE0NkIyOENBMDBD
RjI0NDIgLyogREZHVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTNCNEE5MThCOTJD
NEQwMDE3OEEzRiAvKiBQdXRCeUlkVmFyaWFudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGltZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvR0NUaW1lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdlNjI4ZDY3YjgxZTIyOWQ5
YTc0YWU5MjFlYzlmM2U1NjhjODE3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0dDVGltZXIuY3BwCkBAIC0wLDAgKzEsMTQ3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkdDVGltZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CisKK25hbWVzcGFj
ZSBKU0MgeworCitHQ1RpbWVyKiBHQ1RpbWVyOjpzX2N1cnJlbnRHbG9iYWxUaW1lciA9IG51bGxw
dHI7CisKK1RpbWVSZWNvcmQ6OlRpbWVSZWNvcmQoKQorICAgIDogbV9jdXJyZW50VGltZSgwKQor
ICAgICwgbV90b3RhbFRpbWUoMCkKKyAgICAsIG1fbWluKHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6aW5maW5pdHkoKSkKKyAgICAsIG1fbWF4KDApCisgICAgLCBtX3RvdGFsQ291bnQoMCkK
KyAgICAsIG1fY29sbGVjdGlvbkNvdW50KDApCisgICAgLCBtX3dhc1VzZWRJblByZXZpb3VzQ29s
bGVjdGlvbihmYWxzZSkKK3sKK30KKwordm9pZCBUaW1lUmVjb3JkOjpkaWRTdGFydE5ld0NvbGxl
Y3Rpb24oKQoreworICAgIGlmICghbV93YXNVc2VkSW5QcmV2aW91c0NvbGxlY3Rpb24pCisgICAg
ICAgIHJldHVybjsKKyAgICBtX3dhc1VzZWRJblByZXZpb3VzQ29sbGVjdGlvbiA9IGZhbHNlOwor
CisgICAgaWYgKG1fY3VycmVudFRpbWUgPCBtX21pbikKKyAgICAgICAgbV9taW4gPSBtX2N1cnJl
bnRUaW1lOworICAgIGlmIChtX2N1cnJlbnRUaW1lID4gbV9tYXgpCisgICAgICAgIG1fbWF4ID0g
bV9jdXJyZW50VGltZTsKKyAgICBtX3RvdGFsVGltZSArPSBtX2N1cnJlbnRUaW1lOworICAgIG1f
Y29sbGVjdGlvbkNvdW50Kys7CisgICAgbV9jdXJyZW50VGltZSA9IDA7Cit9CisKK3ZvaWQgVGlt
ZVJlY29yZDo6dXBkYXRlRGF0YShkb3VibGUgZHVyYXRpb24pCit7CisgICAgbV93YXNVc2VkSW5Q
cmV2aW91c0NvbGxlY3Rpb24gPSB0cnVlOworICAgIG1fY3VycmVudFRpbWUgKz0gZHVyYXRpb247
CisgICAgbV90b3RhbENvdW50Kys7Cit9CisKK0dDVGltZXI6OkdDVGltZXIoY29uc3QgY2hhciog
bmFtZSkKKyAgICA6IG1fbmFtZShuYW1lKQorICAgICwgbV9sYXN0Q29sbGVjdGlvbklEKHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSkKK3sKK30KKworR0NUaW1lcjo6fkdDVGlt
ZXIoKQoreworICAgIC8vIENhbGwgZGlkU3RhcnROZXdDb2xsZWN0aW9uIHRvIGZsdXNoIHRoZSBk
YXRhIGZyb20gdGhlIGxhc3QgY29sbGVjdGlvbi4KKyAgICBtX2FsbENvbGxlY3Rpb25EYXRhLmRp
ZFN0YXJ0TmV3Q29sbGVjdGlvbigpOworICAgIGxvZ0RhdGEobV9hbGxDb2xsZWN0aW9uRGF0YSwg
IihBbGwpIik7CisgICAgbV9lZGVuQ29sbGVjdGlvbkRhdGEuZGlkU3RhcnROZXdDb2xsZWN0aW9u
KCk7CisgICAgbG9nRGF0YShtX2VkZW5Db2xsZWN0aW9uRGF0YSwgIihFZGVuKSIpOworICAgIG1f
ZnVsbENvbGxlY3Rpb25EYXRhLmRpZFN0YXJ0TmV3Q29sbGVjdGlvbigpOworICAgIGxvZ0RhdGEo
bV9mdWxsQ29sbGVjdGlvbkRhdGEsICIoRnVsbCkiKTsKK30KKwordm9pZCBHQ1RpbWVyOjpkaWRG
aW5pc2hQaGFzZShIZWFwT3BlcmF0aW9uIGNvbGxlY3Rpb25UeXBlLCB1aW50NjRfdCBjb2xsZWN0
aW9uSUQsIGRvdWJsZSBkdXJhdGlvbikKK3sKKyAgICBpZiAobV9sYXN0Q29sbGVjdGlvbklEICE9
IGNvbGxlY3Rpb25JRCkgeworICAgICAgICBtX2VkZW5Db2xsZWN0aW9uRGF0YS5kaWRTdGFydE5l
d0NvbGxlY3Rpb24oKTsKKyAgICAgICAgbV9mdWxsQ29sbGVjdGlvbkRhdGEuZGlkU3RhcnROZXdD
b2xsZWN0aW9uKCk7CisgICAgICAgIG1fYWxsQ29sbGVjdGlvbkRhdGEuZGlkU3RhcnROZXdDb2xs
ZWN0aW9uKCk7CisgICAgICAgIG1fbGFzdENvbGxlY3Rpb25JRCA9IGNvbGxlY3Rpb25JRDsKKyAg
ICB9CisgICAgVGltZVJlY29yZCYgZGF0YSA9IGNvbGxlY3Rpb25UeXBlID09IEVkZW5Db2xsZWN0
aW9uID8gbV9lZGVuQ29sbGVjdGlvbkRhdGEgOiBtX2Z1bGxDb2xsZWN0aW9uRGF0YTsKKyAgICBk
YXRhLnVwZGF0ZURhdGEoZHVyYXRpb24pOworICAgIG1fYWxsQ29sbGVjdGlvbkRhdGEudXBkYXRl
RGF0YShkdXJhdGlvbik7Cit9CisKK3ZvaWQgR0NUaW1lcjo6bG9nRGF0YShjb25zdCBUaW1lUmVj
b3JkJiBkYXRhLCBjb25zdCBjaGFyKiBleHRyYSkgY29uc3QKK3sKKyAgICBkYXRhTG9nRigiWyVk
XSAlcyAoUGFyZW50OiAlcykgJXM6ICUuMmxmbXMgKGF2Zy4gJS4ybGYsIG1pbi4gJS4ybGYsIG1h
eC4gJS4ybGYsIGNvdW50ICVsdSIsCisgICAgICAgIGdldEN1cnJlbnRQcm9jZXNzSUQoKSwKKyAg
ICAgICAgbV9uYW1lLAorICAgICAgICBtX3BhcmVudCA/IG1fcGFyZW50LT5uYW1lKCkgOiAibnVs
bHB0ciIsCisgICAgICAgIGV4dHJhLCAKKyAgICAgICAgZGF0YS50b3RhbFRpbWUoKSAqIDEwMDAs
IAorICAgICAgICBkYXRhLnRvdGFsVGltZSgpICogMTAwMCAvIGRhdGEuY29sbGVjdGlvbkNvdW50
KCksIAorICAgICAgICBkYXRhLm1pbigpICogMTAwMCwgCisgICAgICAgIGRhdGEubWF4KCkgKiAx
MDAwLAorICAgICAgICBkYXRhLmNvbGxlY3Rpb25Db3VudCgpKTsKKyAgICBpZiAoZGF0YS50b3Rh
bENvdW50KCkgIT0gZGF0YS5jb2xsZWN0aW9uQ291bnQoKSkgeworICAgICAgICBkYXRhTG9nRigi
LCBpdGVycy9jb2xsZWN0ICUuMmxmIiwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGRvdWJsZT4o
ZGF0YS50b3RhbENvdW50KCkpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihkYXRhLmNvbGxlY3Rpb25D
b3VudCgpKSk7CisgICAgfQorICAgIGRhdGFMb2dGKCIpXG4iKTsKK30KKworR0NDb3VudGVyOjpH
Q0NvdW50ZXIoY29uc3QgY2hhciogbmFtZSkKKyAgICA6IG1fbmFtZShuYW1lKQorICAgICwgbV9j
b3VudCgwKQorICAgICwgbV90b3RhbCgwKQorICAgICwgbV9taW4oMTAwMDAwMDApCisgICAgLCBt
X21heCgwKQoreworfQorCitHQ0NvdW50ZXI6On5HQ0NvdW50ZXIoKQoreworICAgIGRhdGFMb2dG
KCJbJWRdICVzOiAlenUgdmFsdWVzIChhdmcuICV6dSwgbWluLiAlenUsIG1heC4gJXp1KVxuIiwK
KyAgICAgICAgZ2V0Q3VycmVudFByb2Nlc3NJRCgpLAorICAgICAgICBtX25hbWUsCisgICAgICAg
IG1fdG90YWwsCisgICAgICAgIG1fdG90YWwgLyBtX2NvdW50LAorICAgICAgICBtX21pbiwKKyAg
ICAgICAgbV9tYXgpOworfQorCit2b2lkIEdDQ291bnRlcjo6YWRkKHNpemVfdCBhbW91bnQpCit7
CisgICAgbV9jb3VudCsrOworICAgIG1fdG90YWwgKz0gYW1vdW50OworICAgIGlmIChhbW91bnQg
PCBtX21pbikKKyAgICAgICAgbV9taW4gPSBhbW91bnQ7CisgICAgaWYgKGFtb3VudCA+IG1fbWF4
KQorICAgICAgICBtX21heCA9IGFtb3VudDsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RpbWVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9HQ1RpbWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTEyYjk2YTBhZWM4MmFmMDdj
MGM0MDk1ODhiYWUyNWQ0ZTFmMzMyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0dDVGltZXIuaApAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR0NUaW1lcl9oCisjZGVmaW5l
IEdDVGltZXJfaAorCisjaW5jbHVkZSAiSGVhcE9wZXJhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKworbmFtZXNwYWNlIEpT
QyB7CisgICAgCisjZGVmaW5lIEVOQUJMRV9HQ19MT0dHSU5HIDAKKworI2lmIEVOQUJMRShHQ19M
T0dHSU5HKQorI2lmIENPTVBJTEVSKENMQU5HKQorI2RlZmluZSBERUZJTkVfR0NfTE9HR0lOR19H
TE9CQUwodHlwZSwgbmFtZSwgYXJndW1lbnRzKSBcCitfUHJhZ21hKCJjbGFuZyBkaWFnbm9zdGlj
IHB1c2giKSBcCitfUHJhZ21hKCJjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgXCItV2dsb2JhbC1j
b25zdHJ1Y3RvcnNcIiIpIFwKK19QcmFnbWEoImNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCBcIi1X
ZXhpdC10aW1lLWRlc3RydWN0b3JzXCIiKSBcCitzdGF0aWMgdHlwZSBuYW1lIGFyZ3VtZW50czsg
XAorX1ByYWdtYSgiY2xhbmcgZGlhZ25vc3RpYyBwb3AiKQorI2Vsc2UKKyNkZWZpbmUgREVGSU5F
X0dDX0xPR0dJTkdfR0xPQkFMKHR5cGUsIG5hbWUsIGFyZ3VtZW50cykgXAorc3RhdGljIHR5cGUg
bmFtZSBhcmd1bWVudHM7CisjZW5kaWYgLy8gQ09NUElMRVIoQ0xBTkcpCisKK2NsYXNzIFRpbWVS
ZWNvcmQgeworcHVibGljOgorICAgIFRpbWVSZWNvcmQoKTsKKyAgICB2b2lkIGRpZFN0YXJ0TmV3
Q29sbGVjdGlvbigpOworICAgIHZvaWQgdXBkYXRlRGF0YShkb3VibGUgZHVyYXRpb24pOworCisg
ICAgZG91YmxlIG1pbigpIGNvbnN0IHsgcmV0dXJuIG1fbWluOyB9CisgICAgZG91YmxlIG1heCgp
IGNvbnN0IHsgcmV0dXJuIG1fbWF4OyB9CisgICAgZG91YmxlIHRvdGFsVGltZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdG90YWxUaW1lOyB9CisgICAgc2l6ZV90IGNvbGxlY3Rpb25Db3VudCgpIGNvbnN0
IHsgcmV0dXJuIG1fY29sbGVjdGlvbkNvdW50OyB9CisgICAgc2l6ZV90IHRvdGFsQ291bnQoKSBj
b25zdCB7IHJldHVybiBtX3RvdGFsQ291bnQ7IH0KKworcHJpdmF0ZToKKyAgICBkb3VibGUgbV9j
dXJyZW50VGltZTsKKyAgICBkb3VibGUgbV90b3RhbFRpbWU7CisgICAgZG91YmxlIG1fbWluOwor
ICAgIGRvdWJsZSBtX21heDsKKyAgICBzaXplX3QgbV90b3RhbENvdW50OworICAgIHNpemVfdCBt
X2NvbGxlY3Rpb25Db3VudDsKKyAgICBib29sIG1fd2FzVXNlZEluUHJldmlvdXNDb2xsZWN0aW9u
OworfTsKKworY2xhc3MgR0NUaW1lciB7CitwdWJsaWM6CisgICAgR0NUaW1lcihjb25zdCBjaGFy
KiBuYW1lKTsKKyAgICB+R0NUaW1lcigpOworICAgIHZvaWQgZGlkRmluaXNoUGhhc2UoSGVhcE9w
ZXJhdGlvbiwgdWludDY0X3QgY29sbGVjdGlvbklELCBkb3VibGUgZHVyYXRpb24pOworCitwcml2
YXRlOgorICAgIHZvaWQgbG9nRGF0YShjb25zdCBUaW1lUmVjb3JkJiBkYXRhLCBjb25zdCBjaGFy
KiBleHRyYSkgY29uc3Q7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgR0NUaW1lciogc19jdXJyZW50
R2xvYmFsVGltZXI7CisKKyAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9u
YW1lOyB9CisgICAgR0NUaW1lciogcGFyZW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnQ7IH0K
KyAgICB2b2lkIHNldFBhcmVudChHQ1RpbWVyKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7
IH0KKworcHJpdmF0ZToKKyAgICBUaW1lUmVjb3JkIG1fYWxsQ29sbGVjdGlvbkRhdGE7CisgICAg
VGltZVJlY29yZCBtX2Z1bGxDb2xsZWN0aW9uRGF0YTsKKyAgICBUaW1lUmVjb3JkIG1fZWRlbkNv
bGxlY3Rpb25EYXRhOworICAgIGNvbnN0IGNoYXIqIG1fbmFtZTsKKyAgICB1aW50NjRfdCBtX2xh
c3RDb2xsZWN0aW9uSUQ7CisgICAgR0NUaW1lciogbV9wYXJlbnQgeyBudWxscHRyIH07Cit9Owor
CitjbGFzcyBHQ1RpbWVyU2NvcGUgeworcHVibGljOgorICAgIEdDVGltZXJTY29wZShHQ1RpbWVy
JiB0aW1lciwgSGVhcE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSwgdWludDY0X3QgY29sbGVjdGlv
bklEKQorICAgICAgICA6IG1fdGltZXIodGltZXIpCisgICAgICAgICwgbV9zdGFydChXVEY6Om1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKQorICAgICAgICAsIG1fY29sbGVjdGlvblR5cGUo
Y29sbGVjdGlvblR5cGUpCisgICAgICAgICwgbV9jb2xsZWN0aW9uSUQoY29sbGVjdGlvbklEKQor
ICAgIHsKKyAgICAgICAgbV90aW1lci5zZXRQYXJlbnQoR0NUaW1lcjo6c19jdXJyZW50R2xvYmFs
VGltZXIpOworICAgICAgICBHQ1RpbWVyOjpzX2N1cnJlbnRHbG9iYWxUaW1lciA9ICZtX3RpbWVy
OworICAgIH0KKworICAgIH5HQ1RpbWVyU2NvcGUoKQorICAgIHsKKyAgICAgICAgZG91YmxlIGRl
bHRhID0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIG1fc3RhcnQ7CisgICAg
ICAgIG1fdGltZXIuZGlkRmluaXNoUGhhc2UobV9jb2xsZWN0aW9uVHlwZSwgbV9jb2xsZWN0aW9u
SUQsIGRlbHRhKTsKKyAgICAgICAgR0NUaW1lcjo6c19jdXJyZW50R2xvYmFsVGltZXIgPSBtX3Rp
bWVyLnBhcmVudCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBHQ1RpbWVyJiBtX3RpbWVyOwor
ICAgIGRvdWJsZSBtX3N0YXJ0OworICAgIEhlYXBPcGVyYXRpb24gbV9jb2xsZWN0aW9uVHlwZTsK
KyAgICB1aW50NjRfdCBtX2NvbGxlY3Rpb25JRDsKK307CisKK2NsYXNzIEdDQ291bnRlciB7Citw
dWJsaWM6CisgICAgR0NDb3VudGVyKGNvbnN0IGNoYXIqIG5hbWUpOworICAgIH5HQ0NvdW50ZXIo
KTsKKyAgICB2b2lkIGFkZChzaXplX3QgYW1vdW50KTsKKworcHJpdmF0ZToKKyAgICBjb25zdCBj
aGFyKiBtX25hbWU7CisgICAgc2l6ZV90IG1fY291bnQ7CisgICAgc2l6ZV90IG1fdG90YWw7Cisg
ICAgc2l6ZV90IG1fbWluOworICAgIHNpemVfdCBtX21heDsKK307CisKKyNkZWZpbmUgR0NQSEFT
RShuYW1lKSBcCisgICAgREVGSU5FX0dDX0xPR0dJTkdfR0xPQkFMKEdDVGltZXIsIG5hbWUjI1Rp
bWVyLCAoI25hbWUpKTsgXAorICAgIEdDVGltZXJTY29wZSBuYW1lIyNUaW1lclNjb3BlKG5hbWUj
I1RpbWVyLCBtX29wZXJhdGlvbkluUHJvZ3Jlc3MsIHNfY3VycmVudENvbGxlY3Rpb25JRCkKKyNk
ZWZpbmUgR0NDT1VOVEVSKG5hbWUsIHZhbHVlKSBkbyB7IFwKKyAgICAgICAgREVGSU5FX0dDX0xP
R0dJTkdfR0xPQkFMKEdDQ291bnRlciwgbmFtZSMjQ291bnRlciwgKCNuYW1lKSk7IFwKKyAgICAg
ICAgbmFtZSMjQ291bnRlci5hZGQodmFsdWUpOyBcCisgICAgfSB3aGlsZSAoZmFsc2UpCisgICAg
CisjZWxzZQorCisjZGVmaW5lIEdDUEhBU0UobmFtZSkgZG8geyB9IHdoaWxlIChmYWxzZSkKKyNk
ZWZpbmUgR0NDT1VOVEVSKG5hbWUsIHZhbHVlKSBkbyB7IH0gd2hpbGUgKGZhbHNlKQorCisjZW5k
aWYKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBHQ1RpbWVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggODk2Y2RiOWI3MzA0Y2Q5MDgyZThiOGNmYTlhYTky
NzA4NjZkZjA2NC4uYmEyNjU2ODBkNmVjOTZlNzMwYjdmZmRmM2I1ZWM0NzRjMmIwYjRjZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJGdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNr
LmgiCiAjaW5jbHVkZSAiR0NJbmNvbWluZ1JlZkNvdW50ZWRTZXRJbmxpbmVzLmgiCisjaW5jbHVk
ZSAiR0NUaW1lci5oIgogI2luY2x1ZGUgIkhlYXBJdGVyYXRpb25TY29wZS5oIgogI2luY2x1ZGUg
IkhlYXBSb290VmlzaXRvci5oIgogI2luY2x1ZGUgIkhlYXBTdGF0aXN0aWNzLmgiCkBAIC01MSw3
ICs1Miw2IEBACiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9SQU1TaXplLmg+
CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5o
PgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTYzLDE0
NyArNjMsOCBAQCBuYW1lc3BhY2Ugewogc3RhdGljIGNvbnN0IHNpemVfdCBsYXJnZUhlYXBTaXpl
ID0gMzIgKiBNQjsgLy8gQWJvdXQgMS41WCB0aGUgYXZlcmFnZSB3ZWJwYWdlLgogc3RhdGljIGNv
bnN0IHNpemVfdCBzbWFsbEhlYXBTaXplID0gMSAqIE1COyAvLyBNYXRjaGVzIHRoZSBGYXN0TWFs
bG9jIHBlci10aHJlYWQgY2FjaGUuCiAKLSNkZWZpbmUgRU5BQkxFX0dDX0xPR0dJTkcgMAotCiAj
aWYgRU5BQkxFKEdDX0xPR0dJTkcpCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jZGVmaW5lIERFRklO
RV9HQ19MT0dHSU5HX0dMT0JBTCh0eXBlLCBuYW1lLCBhcmd1bWVudHMpIFwKLV9QcmFnbWEoImNs
YW5nIGRpYWdub3N0aWMgcHVzaCIpIFwKLV9QcmFnbWEoImNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCBcIi1XZ2xvYmFsLWNvbnN0cnVjdG9yc1wiIikgXAotX1ByYWdtYSgiY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkIFwiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnNcIiIpIFwKLXN0YXRpYyB0eXBlIG5h
bWUgYXJndW1lbnRzOyBcCi1fUHJhZ21hKCJjbGFuZyBkaWFnbm9zdGljIHBvcCIpCi0jZWxzZQot
I2RlZmluZSBERUZJTkVfR0NfTE9HR0lOR19HTE9CQUwodHlwZSwgbmFtZSwgYXJndW1lbnRzKSBc
Ci1zdGF0aWMgdHlwZSBuYW1lIGFyZ3VtZW50czsKLSNlbmRpZiAvLyBDT01QSUxFUihDTEFORykK
LQotc3RydWN0IEdDVGltZXIgewotICAgIEdDVGltZXIoY29uc3QgY2hhciogbmFtZSkKLSAgICAg
ICAgOiBuYW1lKG5hbWUpCi0gICAgewotICAgIH0KLSAgICB+R0NUaW1lcigpCi0gICAgewotICAg
ICAgICBsb2dEYXRhKGFsbENvbGxlY3Rpb25EYXRhLCAiKEFsbCkiKTsKLSAgICAgICAgbG9nRGF0
YShlZGVuQ29sbGVjdGlvbkRhdGEsICIoRWRlbikiKTsKLSAgICAgICAgbG9nRGF0YShmdWxsQ29s
bGVjdGlvbkRhdGEsICIoRnVsbCkiKTsKLSAgICB9Ci0KLSAgICBzdHJ1Y3QgVGltZVJlY29yZCB7
Ci0gICAgICAgIFRpbWVSZWNvcmQoKQotICAgICAgICAgICAgOiB0aW1lKDApCi0gICAgICAgICAg
ICAsIG1pbihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpCi0gICAgICAg
ICAgICAsIG1heCgwKQotICAgICAgICAgICAgLCBjb3VudCgwKQotICAgICAgICB7Ci0gICAgICAg
IH0KLQotICAgICAgICBkb3VibGUgdGltZTsKLSAgICAgICAgZG91YmxlIG1pbjsKLSAgICAgICAg
ZG91YmxlIG1heDsKLSAgICAgICAgc2l6ZV90IGNvdW50OwotICAgIH07Ci0KLSAgICB2b2lkIGxv
Z0RhdGEoY29uc3QgVGltZVJlY29yZCYgZGF0YSwgY29uc3QgY2hhciogZXh0cmEpCi0gICAgewot
ICAgICAgICBkYXRhTG9nRigiWyVkXSAlcyAoUGFyZW50OiAlcykgJXM6ICUuMmxmbXMgKGF2Zy4g
JS4ybGYsIG1pbi4gJS4ybGYsIG1heC4gJS4ybGYsIGNvdW50ICVsdSlcbiIsIAotICAgICAgICAg
ICAgZ2V0Q3VycmVudFByb2Nlc3NJRCgpLAotICAgICAgICAgICAgbmFtZSwKLSAgICAgICAgICAg
IHBhcmVudCA/IHBhcmVudC0+bmFtZSA6ICJudWxscHRyIiwKLSAgICAgICAgICAgIGV4dHJhLCAK
LSAgICAgICAgICAgIGRhdGEudGltZSAqIDEwMDAsIAotICAgICAgICAgICAgZGF0YS50aW1lICog
MTAwMCAvIGRhdGEuY291bnQsIAotICAgICAgICAgICAgZGF0YS5taW4gKiAxMDAwLCAKLSAgICAg
ICAgICAgIGRhdGEubWF4ICogMTAwMCwKLSAgICAgICAgICAgIGRhdGEuY291bnQpOwotICAgIH0K
LQotICAgIHZvaWQgdXBkYXRlRGF0YShUaW1lUmVjb3JkJiBkYXRhLCBkb3VibGUgZHVyYXRpb24p
Ci0gICAgewotICAgICAgICBpZiAoZHVyYXRpb24gPCBkYXRhLm1pbikKLSAgICAgICAgICAgIGRh
dGEubWluID0gZHVyYXRpb247Ci0gICAgICAgIGlmIChkdXJhdGlvbiA+IGRhdGEubWF4KQotICAg
ICAgICAgICAgZGF0YS5tYXggPSBkdXJhdGlvbjsKLSAgICAgICAgZGF0YS5jb3VudCsrOwotICAg
ICAgICBkYXRhLnRpbWUgKz0gZHVyYXRpb247Ci0gICAgfQotCi0gICAgdm9pZCBkaWRGaW5pc2hQ
aGFzZShIZWFwT3BlcmF0aW9uIGNvbGxlY3Rpb25UeXBlLCBkb3VibGUgZHVyYXRpb24pCi0gICAg
ewotICAgICAgICBUaW1lUmVjb3JkJiBkYXRhID0gY29sbGVjdGlvblR5cGUgPT0gRWRlbkNvbGxl
Y3Rpb24gPyBlZGVuQ29sbGVjdGlvbkRhdGEgOiBmdWxsQ29sbGVjdGlvbkRhdGE7Ci0gICAgICAg
IHVwZGF0ZURhdGEoZGF0YSwgZHVyYXRpb24pOwotICAgICAgICB1cGRhdGVEYXRhKGFsbENvbGxl
Y3Rpb25EYXRhLCBkdXJhdGlvbik7Ci0gICAgfQotCi0gICAgc3RhdGljIEdDVGltZXIqIHNfY3Vy
cmVudEdsb2JhbFRpbWVyOwotCi0gICAgVGltZVJlY29yZCBhbGxDb2xsZWN0aW9uRGF0YTsKLSAg
ICBUaW1lUmVjb3JkIGZ1bGxDb2xsZWN0aW9uRGF0YTsKLSAgICBUaW1lUmVjb3JkIGVkZW5Db2xs
ZWN0aW9uRGF0YTsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIEdDVGltZXIqIHBhcmVudCB7
IG51bGxwdHIgfTsKLX07Ci0KLUdDVGltZXIqIEdDVGltZXI6OnNfY3VycmVudEdsb2JhbFRpbWVy
ID0gbnVsbHB0cjsKLQotc3RydWN0IEdDVGltZXJTY29wZSB7Ci0gICAgR0NUaW1lclNjb3BlKEdD
VGltZXImIHRpbWVyLCBIZWFwT3BlcmF0aW9uIGNvbGxlY3Rpb25UeXBlKQotICAgICAgICA6IHRp
bWVyKHRpbWVyKQotICAgICAgICAsIHN0YXJ0KFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKCkpCi0gICAgICAgICwgY29sbGVjdGlvblR5cGUoY29sbGVjdGlvblR5cGUpCi0gICAgewot
ICAgICAgICB0aW1lci5wYXJlbnQgPSBHQ1RpbWVyOjpzX2N1cnJlbnRHbG9iYWxUaW1lcjsKLSAg
ICAgICAgR0NUaW1lcjo6c19jdXJyZW50R2xvYmFsVGltZXIgPSAmdGltZXI7Ci0gICAgfQotICAg
IH5HQ1RpbWVyU2NvcGUoKQotICAgIHsKLSAgICAgICAgZG91YmxlIGRlbHRhID0gV1RGOjptb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0OwotICAgICAgICB0aW1lci5kaWRGaW5p
c2hQaGFzZShjb2xsZWN0aW9uVHlwZSwgZGVsdGEpOwotICAgICAgICBHQ1RpbWVyOjpzX2N1cnJl
bnRHbG9iYWxUaW1lciA9IHRpbWVyLnBhcmVudDsKLSAgICB9Ci0gICAgR0NUaW1lciYgdGltZXI7
Ci0gICAgZG91YmxlIHN0YXJ0OwotICAgIEhlYXBPcGVyYXRpb24gY29sbGVjdGlvblR5cGU7Ci19
OwotCi1zdHJ1Y3QgR0NDb3VudGVyIHsKLSAgICBHQ0NvdW50ZXIoY29uc3QgY2hhciogbmFtZSkK
LSAgICAgICAgOiBuYW1lKG5hbWUpCi0gICAgICAgICwgY291bnQoMCkKLSAgICAgICAgLCB0b3Rh
bCgwKQotICAgICAgICAsIG1pbigxMDAwMDAwMCkKLSAgICAgICAgLCBtYXgoMCkKLSAgICB7Ci0g
ICAgfQotICAgIAotICAgIHZvaWQgYWRkKHNpemVfdCBhbW91bnQpCi0gICAgewotICAgICAgICBj
b3VudCsrOwotICAgICAgICB0b3RhbCArPSBhbW91bnQ7Ci0gICAgICAgIGlmIChhbW91bnQgPCBt
aW4pCi0gICAgICAgICAgICBtaW4gPSBhbW91bnQ7Ci0gICAgICAgIGlmIChhbW91bnQgPiBtYXgp
Ci0gICAgICAgICAgICBtYXggPSBhbW91bnQ7Ci0gICAgfQotICAgIH5HQ0NvdW50ZXIoKQotICAg
IHsKLSAgICAgICAgZGF0YUxvZ0YoIlslZF0gJXM6ICV6dSB2YWx1ZXMgKGF2Zy4gJXp1LCBtaW4u
ICV6dSwgbWF4LiAlenUpXG4iLCBnZXRDdXJyZW50UHJvY2Vzc0lEKCksIG5hbWUsIHRvdGFsLCB0
b3RhbCAvIGNvdW50LCBtaW4sIG1heCk7Ci0gICAgfQotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0g
ICAgc2l6ZV90IGNvdW50OwotICAgIHNpemVfdCB0b3RhbDsKLSAgICBzaXplX3QgbWluOwotICAg
IHNpemVfdCBtYXg7Ci19OwotCi0jZGVmaW5lIEdDUEhBU0UobmFtZSkgREVGSU5FX0dDX0xPR0dJ
TkdfR0xPQkFMKEdDVGltZXIsIG5hbWUjI1RpbWVyLCAoI25hbWUpKTsgR0NUaW1lclNjb3BlIG5h
bWUjI1RpbWVyU2NvcGUobmFtZSMjVGltZXIsIG1fb3BlcmF0aW9uSW5Qcm9ncmVzcykKLSNkZWZp
bmUgR0NDT1VOVEVSKG5hbWUsIHZhbHVlKSBkbyB7IERFRklORV9HQ19MT0dHSU5HX0dMT0JBTChH
Q0NvdW50ZXIsIG5hbWUjI0NvdW50ZXIsICgjbmFtZSkpOyBuYW1lIyNDb3VudGVyLmFkZCh2YWx1
ZSk7IH0gd2hpbGUgKGZhbHNlKQotICAgIAotI2Vsc2UKLQotI2RlZmluZSBHQ1BIQVNFKG5hbWUp
IGRvIHsgfSB3aGlsZSAoZmFsc2UpCi0jZGVmaW5lIEdDQ09VTlRFUihuYW1lLCB2YWx1ZSkgZG8g
eyB9IHdoaWxlIChmYWxzZSkKK3N0YXRpYyB1aW50NjRfdCBzX2N1cnJlbnRDb2xsZWN0aW9uSUQg
PSAwOwogI2VuZGlmCiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IG1pbkhlYXBTaXplKEhlYXBUeXBl
IGhlYXBUeXBlLCBzaXplX3QgcmFtU2l6ZSkKQEAgLTQ4MCw2ICszNDEsNyBAQCB2b2lkIEhlYXA6
OnBvcFRlbXBTb3J0VmVjdG9yKFZlY3RvcjxWYWx1ZVN0cmluZ1BhaXIsIDAsIFVuc2FmZVZlY3Rv
ck92ZXJmbG93PiogdAogCiB2b2lkIEhlYXA6OmhhcnZlc3RXZWFrUmVmZXJlbmNlcygpCiB7Cisg
ICAgR0NQSEFTRShIYXJ2ZXN0V2Vha1JlZmVyZW5jZXMpOwogICAgIG1fc2xvdFZpc2l0b3IuaGFy
dmVzdFdlYWtSZWZlcmVuY2VzKCk7CiB9CiAKQEAgLTY2Niw2ICs1MjgsNyBAQCB2b2lkIEhlYXA6
OnZpc2l0Q29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIHJvb3RzKQogdm9pZCBI
ZWFwOjp2aXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVmZXJlbmNlcygpCiB7CiAjaWYgRU5BQkxF
KERGR19KSVQpCisgICAgR0NQSEFTRShWaXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVmZXJlbmNl
cyk7CiAgICAgZm9yIChhdXRvIHdvcmtsaXN0IDogbV9zdXNwZW5kZWRDb21waWxlcldvcmtsaXN0
cykKICAgICAgICAgd29ya2xpc3QtPnZpc2l0V2Vha1JlZmVyZW5jZXMobV9zbG90VmlzaXRvciwg
bV9jb2RlQmxvY2tzKTsKIApAQCAtNzgzLDE0ICs2NDYsMjcgQEAgdm9pZCBIZWFwOjpjb252ZXJn
ZSgpCiAjZW5kaWYKIH0KIAordm9pZCBIZWFwOjp2aXNpdFdlYWtTZXRzKEhlYXBSb290VmlzaXRv
ciYgdmlzaXRvcikKK3sKKyAgICBHQ1BIQVNFKFZpc2l0V2Vha1NldHMpOworICAgIG1fb2JqZWN0
U3BhY2UudmlzaXRXZWFrU2V0cyh2aXNpdG9yKTsKK30KKwordm9pZCBIZWFwOjpyZXRyYWNlQ29k
ZUJsb2NrcygpCit7CisgICAgR0NQSEFTRShSZXRyYWNlQ29kZUJsb2Nrcyk7CisgICAgbV9jb2Rl
QmxvY2tzLnRyYWNlTWFya2VkKG1fc2xvdFZpc2l0b3IpOworfQorCiB2b2lkIEhlYXA6OnZpc2l0
V2Vha0hhbmRsZXMoSGVhcFJvb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEdDUEhBU0UoVmlz
aXRpbmdMaXZlV2Vha0hhbmRsZXMpOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIG1fb2Jq
ZWN0U3BhY2UudmlzaXRXZWFrU2V0cyh2aXNpdG9yKTsKKyAgICAgICAgdmlzaXRXZWFrU2V0cyh2
aXNpdG9yKTsKICAgICAgICAgaGFydmVzdFdlYWtSZWZlcmVuY2VzKCk7CiAgICAgICAgIHZpc2l0
Q29tcGlsZXJXb3JrbGlzdFdlYWtSZWZlcmVuY2VzKCk7Ci0gICAgICAgIG1fY29kZUJsb2Nrcy50
cmFjZU1hcmtlZChtX3Nsb3RWaXNpdG9yKTsgLy8gTmV3ICJleGVjdXRpbmciIGNvZGUgYmxvY2tz
IG1heSBiZSBkaXNjb3ZlcmVkLgorICAgICAgICByZXRyYWNlQ29kZUJsb2NrcygpOyAvLyBOZXcg
ImV4ZWN1dGluZyIgY29kZSBibG9ja3MgbWF5IGJlIGRpc2NvdmVyZWQuCisKICAgICAgICAgaWYg
KG1fc2xvdFZpc2l0b3IuaXNFbXB0eSgpKQogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTc5OCw2
ICs2NzQsNyBAQCB2b2lkIEhlYXA6OnZpc2l0V2Vha0hhbmRsZXMoSGVhcFJvb3RWaXNpdG9yJiB2
aXNpdG9yKQogICAgICAgICAgICAgZGF0YUxvZygiTGl2ZSBXZWFrIEhhbmRsZXM6XG4iLCBtX3Ns
b3RWaXNpdG9yKTsKIAogICAgICAgICB7CisgICAgICAgICAgICBHQ1BIQVNFKFZpc2l0V2Vha0hh
bmRsZXNEb25hdGVBbmREcmFpbik7CiAgICAgICAgICAgICBQYXJhbGxlbE1vZGVFbmFibGVyIGVu
YWJsZXIobV9zbG90VmlzaXRvcik7CiAgICAgICAgICAgICBtX3Nsb3RWaXNpdG9yLmRvbmF0ZUFu
ZERyYWluKCk7CiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQpAQCAtOTc1LDggKzg1MiwxNiBAQCB2
b2lkIEhlYXA6OmRlbGV0ZVVubWFya2VkQ29tcGlsZWRDb2RlKCkKIHsKICAgICBHQ1BIQVNFKERl
bGV0ZUNvZGVCbG9ja3MpOwogICAgIGNsZWFyVW5tYXJrZWRFeGVjdXRhYmxlcygpOwotICAgIG1f
Y29kZUJsb2Nrcy5kZWxldGVVbm1hcmtlZEFuZFVucmVmZXJlbmNlZChtX29wZXJhdGlvbkluUHJv
Z3Jlc3MpOwotICAgIG1faml0U3R1YlJvdXRpbmVzLmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0
dWJSb3V0aW5lcygpOworCisgICAgeworICAgICAgICBHQ1BIQVNFKERlbGV0ZVVubWFya2VkQW5k
VW5yZWZlcmVuY2VkQ29kZUJsb2Nrcyk7CisgICAgICAgIG1fY29kZUJsb2Nrcy5kZWxldGVVbm1h
cmtlZEFuZFVucmVmZXJlbmNlZChtX29wZXJhdGlvbkluUHJvZ3Jlc3MpOworICAgIH0KKworICAg
IHsKKyAgICAgICAgR0NQSEFTRShEZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91dGluZXMp
OworICAgICAgICBtX2ppdFN0dWJSb3V0aW5lcy5kZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHVi
Um91dGluZXMoKTsKKyAgICB9CiB9CiAKIHZvaWQgSGVhcDo6YWRkVG9SZW1lbWJlcmVkU2V0KGNv
bnN0IEpTQ2VsbCogY2VsbCkKQEAgLTEwMjIsNiArOTA3LDkgQEAgTkVWRVJfSU5MSU5FIHZvaWQg
SGVhcDo6Y29sbGVjdEltcGwoSGVhcE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSwgdm9pZCogc3Rh
Y2tPcmkKICAgICBkYXRhTG9nRigiSlNDIEdDIHN0YXJ0aW5nIGNvbGxlY3Rpb24uXG4iKTsKICNl
bmRpZgogICAgIAorI2lmIEVOQUJMRShHQ19MT0dHSU5HKQorICAgIHNfY3VycmVudENvbGxlY3Rp
b25JRCsrOworI2VuZGlmCiAgICAgZG91YmxlIGJlZm9yZSA9IDA7CiAgICAgaWYgKE9wdGlvbnM6
OmxvZ0dDKCkpIHsKICAgICAgICAgZGF0YUxvZygiW0dDOiAiKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuaAppbmRleCA5ODMzYWQ0ZjRlOTU2YjY4OWIyNmJlYzU5NTE4NWE5MTUwMDc5OWIwLi43
ODNkMDRmZTM4YzEzNWFkMWZlMmYzNTMxOWJkYWEzMzU0YjEzOWY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5oCkBAIC0zMDYsNiArMzA2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHZpc2l0
SGFuZGxlU3RhY2soSGVhcFJvb3RWaXNpdG9yJik7CiAgICAgdm9pZCB0cmFjZUNvZGVCbG9ja3NB
bmRKSVRTdHViUm91dGluZXMoKTsKICAgICB2b2lkIGNvbnZlcmdlKCk7CisgICAgdm9pZCB2aXNp
dFdlYWtTZXRzKEhlYXBSb290VmlzaXRvciYpOworICAgIHZvaWQgcmV0cmFjZUNvZGVCbG9ja3Mo
KTsKICAgICB2b2lkIHZpc2l0V2Vha0hhbmRsZXMoSGVhcFJvb3RWaXNpdG9yJik7CiAgICAgdm9p
ZCBjbGVhclJlbWVtYmVyZWRTZXQoVmVjdG9yPGNvbnN0IEpTQ2VsbCo+Jik7CiAgICAgdm9pZCB1
cGRhdGVPYmplY3RDb3VudHMoZG91YmxlIGdjU3RhcnRUaW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0OTQ1N2ZhNzE5Y2I4ODViNjkwYzQ1
NjY1M2RkMGQ1ZjZhMWJiYjRiLi4xYTE5ODFhNTk3ZjczMWM3MDA4NjJkNDI0NjhiNGI1MmRiN2Nm
YmVmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTUtMDMtMjIgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iQGdt
YWlsLmNvbT4KKworICAgICAgICBHQ1RpbWVyIHNob3VsZCB3b3JrIGNvcnJlY3RseSB3aGVuIGlu
dm9rZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBzYW1lIGNvbGxlY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjk0MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSByZWdleCBmb3Ig
cGhhc2UgdGltaW5nIG91dHB1dCB0byBpbmNsdWRlIG51bWJlciBvZiBwaGFzZQorICAgICAgICBp
dGVyYXRpb25zIHBlciBjb2xsZWN0aW9uLgorCisgICAgICAgICogU2NyaXB0cy9wYXJzZS1nYy1w
aGFzZS10aW1pbmdzOgorICAgICAgICAoVGltaW5nKToKKyAgICAgICAgKFRpbWluZy5fX2luaXRf
Xyk6CisgICAgICAgIChwYXJzZV9pbnB1dCk6CisKIDIwMTUtMDMtMjcgIEd5dXlvdW5nIEtpbSAg
PGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbQ01ha2VdIFJlbW92ZSB1bm5l
Y2Vzc2FyeSBJTkNMVURFX0lGX0VYSVNUUyBtYWNybyAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvcGFyc2UtZ2MtcGhhc2UtdGltaW5ncyBiL1Rvb2xzL1NjcmlwdHMvcGFyc2UtZ2MtcGhhc2Ut
dGltaW5ncwppbmRleCA4NjdjNzU4ZDlkNjAzZmZkYmYyMjY3OTBlMjA2Yzc0YmZkZWIxNzVkLi40
YThlOWI5NGMzODM0NWZhNjE3YmJjODIwOWYyYjQxMmI5M2JkZDVjIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL3BhcnNlLWdjLXBoYXNlLXRpbWluZ3MKKysrIGIvVG9vbHMvU2NyaXB0cy9wYXJz
ZS1nYy1waGFzZS10aW1pbmdzCkBAIC0zNSwxMCArMzUsMTIgQEAgVElNSU5HX1JFR0VYID0gcmUu
Y29tcGlsZSgKICAgICAnXChhdmcuICg/UDxhdmdfdGltZT5bXixdKyksICcKICAgICAnbWluLiAo
P1A8bWluX3RpbWU+W14sXSspLCAnCiAgICAgJ21heC4gKD9QPG1heF90aW1lPlteLF0rKSwgJwot
ICAgICdjb3VudCAoP1A8Y291bnQ+W15cKV0rKVwpJykKKyAgICAnY291bnQgKD9QPGNvdW50Plte
LFwpXSspJworICAgICcoPzosIGl0ZXJzL2NvbGxlY3QgKD9QPGF2Z19pdGVycz5bXlwpXSspKT8n
CisgICAgJ1wpJykKIAogY2xhc3MgVGltaW5nKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBpZCwgbmFtZSwgcGFyZW50LCBjb2xsZWN0X3R5cGUsIHRvdGFsX3RpbWUsIGF2Z190aW1l
LCBtaW5fdGltZSwgbWF4X3RpbWUsIGNvdW50KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGlk
LCBuYW1lLCBwYXJlbnQsIGNvbGxlY3RfdHlwZSwgdG90YWxfdGltZSwgYXZnX3RpbWUsIG1pbl90
aW1lLCBtYXhfdGltZSwgY291bnQsIGF2Z19pdGVycyk6CiAgICAgICAgIHNlbGYucGlkID0gaW50
KHBpZCkKICAgICAgICAgc2VsZi5uYW1lID0gc3RyKG5hbWUpCiAgICAgICAgIHNlbGYucGFyZW50
ID0gc3RyKHBhcmVudCkKQEAgLTQ4LDYgKzUwLDcgQEAgY2xhc3MgVGltaW5nKG9iamVjdCk6CiAg
ICAgICAgIHNlbGYubWluX3RpbWUgPSBmbG9hdChtaW5fdGltZSkKICAgICAgICAgc2VsZi5tYXhf
dGltZSA9IGZsb2F0KG1heF90aW1lKQogICAgICAgICBzZWxmLmNvdW50ID0gaW50KGNvdW50KQor
ICAgICAgICBzZWxmLmF2Z19pdGVycyA9IGZsb2F0KGF2Z19pdGVycykKICAgICAgICAgc2VsZi5j
aGlsZHJlbiA9IFtdCiAKICAgICBkZWYgX191bmljb2RlX18oc2VsZik6CkBAIC03Niw2ICs3OSw3
IEBAIGRlZiBwYXJzZV9pbnB1dCgpOgogICAgICAgICAgICAgcmVzdWx0Lmdyb3VwKCdtaW5fdGlt
ZScpLAogICAgICAgICAgICAgcmVzdWx0Lmdyb3VwKCdtYXhfdGltZScpLAogICAgICAgICAgICAg
cmVzdWx0Lmdyb3VwKCdjb3VudCcpLAorICAgICAgICAgICAgMS4wIGlmIHJlc3VsdC5ncm91cCgn
YXZnX2l0ZXJzJykgaXMgTm9uZSBlbHNlIHJlc3VsdC5ncm91cCgnYXZnX2l0ZXJzJykKICAgICAg
ICAgKSkKICAgICByZXR1cm4gdGltaW5ncwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249675</attachid>
            <date>2015-03-28 17:22:13 -0700</date>
            <delta_ts>2015-03-31 10:12:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142941-20150328172138.patch</filename>
            <type>text/plain</type>
            <size>32914</size>
            <attacher name="Mark Hahnenberg">mhahnenb</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MDNiMDY3YmVkM2RmMzc2ZWNjOTQ0NzcyZjJiNWQxNjQ3YzYzY2JjLi5jMDgzYzQ4ZjUyODNjYWQ1
Y2MwOTljNjEyNjc2NTI3YTJjYTIzZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxNS0wMy0yOCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJAZ21haWwu
Y29tPgorCisgICAgICAgIEdDVGltZXIgc2hvdWxkIHdvcmsgY29ycmVjdGx5IHdoZW4gaW52b2tl
ZCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgdGhlIHNhbWUgY29sbGVjdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyOTQxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgd291bGQgYmUgbmljZSB0byBi
ZSBhYmxlIHRvIHJlY29yZCBtb3JlIGZpbmUtZ3JhaW5lZCBHQyBwaGFzZXMKKyAgICAgICAgZHVy
aW5nIHBoYXNlcyB0aGF0IGNhbiBvY2N1ciBtdWx0aXBsZSB0aW1lcyBwZXIgY29sbGVjdGlvbi4g
Rm9yCisgICAgICAgIGV4YW1wbGUsIHZpc2l0aW5nIGxpdmUgd2VhayBoYW5kbGVzIGNvbnNpc3Rz
IG9mIGEgbnVtYmVyIG9mIHN1Yi1waGFzZXMKKyAgICAgICAgdGhhdCBjYW4gYmUgcmVwZWF0ZWQg
dW50aWwgbm90aGluZyBjaGFuZ2VzLiBUaGUgY3VycmVudCBHQ1RpbWVyCisgICAgICAgIGltcGxl
bWVudGF0aW9uIGRpZG4ndCBoYW5kbGUgdGhpcyBjb3JyZWN0bHkuCisKKyAgICAgICAgQWxzbyBh
ZGRlZCBhIGNvdXBsZSBuZXcgR0MgcGhhc2VzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogaGVhcC9HQ1RpbWVyLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6
OlRpbWVSZWNvcmQ6OlRpbWVSZWNvcmQpOgorICAgICAgICAoSlNDOjpUaW1lUmVjb3JkOjpkaWRT
dGFydE5ld0NvbGxlY3Rpb24pOgorICAgICAgICAoSlNDOjpUaW1lUmVjb3JkOjp1cGRhdGVEYXRh
KToKKyAgICAgICAgKEpTQzo6R0NUaW1lcjo6R0NUaW1lcik6CisgICAgICAgIChKU0M6OkdDVGlt
ZXI6On5HQ1RpbWVyKToKKyAgICAgICAgKEpTQzo6R0NUaW1lcjo6ZGlkRmluaXNoUGhhc2UpOgor
ICAgICAgICAoSlNDOjpHQ1RpbWVyOjpsb2dEYXRhKToKKyAgICAgICAgKEpTQzo6R0NDb3VudGVy
OjpHQ0NvdW50ZXIpOgorICAgICAgICAoSlNDOjpHQ0NvdW50ZXI6On5HQ0NvdW50ZXIpOgorICAg
ICAgICAoSlNDOjpHQ0NvdW50ZXI6OmFkZCk6CisgICAgICAgICogaGVhcC9HQ1RpbWVyLmg6IEFk
ZGVkLgorICAgICAgICAoSlNDOjpUaW1lUmVjb3JkOjptaW4pOgorICAgICAgICAoSlNDOjpUaW1l
UmVjb3JkOjptYXgpOgorICAgICAgICAoSlNDOjpUaW1lUmVjb3JkOjp0b3RhbFRpbWUpOgorICAg
ICAgICAoSlNDOjpUaW1lUmVjb3JkOjpjb2xsZWN0aW9uQ291bnQpOgorICAgICAgICAoSlNDOjpU
aW1lUmVjb3JkOjp0b3RhbENvdW50KToKKyAgICAgICAgKEpTQzo6R0NUaW1lcjo6bmFtZSk6Cisg
ICAgICAgIChKU0M6OkdDVGltZXI6OnBhcmVudCk6CisgICAgICAgIChKU0M6OkdDVGltZXI6OnNl
dFBhcmVudCk6CisgICAgICAgIChKU0M6OkdDVGltZXJTY29wZTo6R0NUaW1lclNjb3BlKToKKyAg
ICAgICAgKEpTQzo6R0NUaW1lclNjb3BlOjp+R0NUaW1lclNjb3BlKToKKyAgICAgICAgKiBoZWFw
L0hlYXAuY3BwOgorCiAyMDE1LTAzLTI3ICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJhdGkxQGdtYWls
LmNvbT4KIAogICAgICAgICBEZWNvbnN0cnVjdGlvbiBwYXJhbWV0ZXJzIGFyZSBib3VuZCB0b28g
bGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDcyMTEyNzY1MmQ4ODhm
NTAxYWI2YzIxN2I4MzM0NDE5MDQzZjU4NjQuLjM2YjFmMjhjODQyZTUxM2IxZmUzNjJhZjBiM2Nm
YjMwMDg3MjQ5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI2MSw2
ICsyNjEsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGhlYXAvR0NMb2dnaW5n
LmNwcAogICAgIGhlYXAvR0NUaHJlYWQuY3BwCiAgICAgaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEu
Y3BwCisgICAgaGVhcC9HQ1RpbWVyLmNwcAogICAgIGhlYXAvSGFuZGxlU2V0LmNwcAogICAgIGhl
YXAvSGFuZGxlU3RhY2suY3BwCiAgICAgaGVhcC9IZWFwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4
cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2oKaW5kZXggNzQzMzBlNzAzZGFjNGQzNjAwZWFiMjdhMGFkOGViNGFm
MDBlMGIzMi4uODA3ZWNkZjcyOTc0MGJhMWFmM2JjZjhkMDQxMWE1ZGFlN2U0NDdkNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNj
cmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC01NDQsNiArNTQ0LDcgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NMb2dnaW5nLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5caGVhcFxHQ1RocmVhZFNoYXJlZERhdGEuY3BwIiAvPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5caGVhcFxHQ1RpbWVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGhlYXBcSGFuZGxlU2V0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGhlYXBcSGFuZGxlU3RhY2suY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVh
cFxIZWFwLmNwcCIgLz4KQEAgLTEyNjUsNiArMTI2Niw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxoZWFwXEdDQXNzZXJ0aW9ucy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caGVhcFxHQ1RocmVhZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxH
Q1RocmVhZFNoYXJlZERhdGEuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBc
R0NUaW1lci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxIYW5kbGUuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcSGFuZGxlQmxvY2suaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcSGFuZGxlQmxvY2tJbmxpbmVzLmgiIC8+CkBA
IC0xODAwLDQgKzE4MDIsNCBAQAogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdl
dHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxCdWlsZEN1c3RvbWl6
YXRpb25zXG1hc20udGFyZ2V0cyIgLz4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggOTljOGE3ZmMxY2E0OTRlMGE4
MTQxMDEyZjJmNzAwNDg4N2M5NDkyYi4uZDJkNWMwYWNiYjk0ODZmYzIzMGE1NTJlZjUyNTdiYzg1
ZjNkMWYyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMjY0LDYgKzI2NCw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxo
ZWFwXEdDVGhyZWFkU2hhcmVkRGF0YS5jcHAiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXEdDVGlt
ZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxIYW5kbGVTZXQuY3BwIj4KICAgICAgIDxG
aWx0ZXI+aGVhcDwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMjEzMiw2ICsyMTM1LDkg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWRTaGFyZWREYXRhLmgi
PgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXEdDVGltZXIuaCI+CisgICAgICA8RmlsdGVyPmhlYXA8
L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhl
YXBcSGFuZGxlLmgiPgogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CkBAIC00NDIzLDQgKzQ0MjksNCBAQAogICAgICAgPEZpbHRlcj5qaXQ8L0ZpbHRlcj4KICAg
ICA8L01BU00+CiAgIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmEy
ZDEzNmViOTViNWE5ZmQzNTRhYjMwYThmMzY5MWJmNzhjZWI4Ni4uNGJiNGYyZGE5NWJhYWFiMjYx
ZGUwODRmOTFhMzc1YTVhNjA5YmRhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1NzYsNiArMTU3Niw3IEBACiAJCUMyMTYwRkU3MTVGN0U5NUUwMDk0MkRGQyAvKiBTbG90Vmlz
aXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQ0I0MDg1MTVDMEEzQzMwMDQ4OTMyQiAvKiBTbG90VmlzaXRvcklubGluZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjE4MUZDMjE4
QTk0OEZCMDAyNUEyMzUgLyogSlNFeHBvcnRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMTgxRkMxMThBOTQ4RkIwMDI1QTIzNSAvKiBKU0V4
cG9ydFRlc3RzLm1tICovOyB9OwogCQlDMjE4RDE0MDE2NTVDRkQ1MDA2MkJCODEgLyogQ29weVdv
cmtMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MjE4RDEzRjE2NTVDRkQ1MDA2MkJCODEgLyogQ29weVdvcmtMaXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzIxRjA1MUMxQUM3NTkyNDAwRDVG
QjIyIC8qIEdDVGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzIxRjA1MUIxQUM3NTkyNDAwRDVGQjIyIC8qIEdDVGltZXIuY3BwICovOyB9Owog
CQlDMjIzOUQxNzE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIyMzlEMTIxNjI2MkJERDAwNUFD
NUZEIC8qIENvcHlWaXNpdG9yLmNwcCAqLzsgfTsKIAkJQzIyMzlEMTgxNjI2MkJERDAwNUFDNUZE
IC8qIENvcHlWaXNpdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMjIzOUQxMzE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3IuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjIzOUQxOTE2MjYy
QkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3JJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjIzOUQxNDE2MjYyQkREMDA1QUM1RkQgLyogQ29w
eVZpc2l0b3JJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTE1OTcsNiArMTU5OCw3IEBACiAJCUMyOTgxRkQ5MTdCQUVFNEIwMEEzQkM5
OCAvKiBERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyOTgxRkQ3MTdCQUVFNEIwMEEzQkM5OCAvKiBERkdEZXNp
cmVkV2Vha1JlZmVyZW5jZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDMjk4MUZEQzE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRl
QmFycmllcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzI5ODFGREExN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXcml0ZUJhcnJpZXJzLmNw
cCAqLzsgfTsKIAkJQzI5ODFGREQxN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXcml0ZUJh
cnJpZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
Mjk4MUZEQjE3QkFGRjQ0MDBBM0JDOTggLyogREZHRGVzaXJlZFdyaXRlQmFycmllcnMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDMjlBNEUyMDFB
QzcxQzBDMDA0NkU0OTIgLyogR0NUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzI5QTRFMUYxQUM3MUMwQzAwNDZFNDkyIC8qIEdDVGltZXIuaCAq
LzsgfTsKIAkJQzI5RUNCMDMxODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxv
Y2tHZXR0ZXJUZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzI5RUNCMDExODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tH
ZXR0ZXJUZXN0Lm1tICovOyB9OwogCQlDMkE3RjY4ODE2MDQzMkQ0MDBGNzZCOTggLyogSlNEZXN0
cnVjdGlibGVPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyQjZE
NzUzMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkI2RDc1MjE4QTMzNzkzMDA0QTkz
MDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0zMzA4LDYgKzMzMTAsNyBAQAogCQlDMjE4MUZDMDE4QTk0
OEZCMDAyNUEyMzUgLyogSlNFeHBvcnRUZXN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBKU0V4cG9ydFRlc3RzLmg7IHBhdGggPSBBUEkvdGVzdHMvSlNFeHBvcnRUZXN0cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjE4MUZDMTE4QTk0OEZCMDAyNUEyMzUg
LyogSlNFeHBvcnRUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IEpTRXhwb3J0VGVzdHMubW07IHBhdGggPSBBUEkvdGVzdHMvSlNFeHBvcnRUZXN0cy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIxOEQxM0YxNjU1Q0ZENTAwNjJCQjgxIC8q
IENvcHlXb3JrTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3B5V29y
a0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzIxRjA1MUIxQUM3NTkyNDAw
RDVGQjIyIC8qIEdDVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gR0NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMjM5RDEyMTYy
NjJCREQwMDVBQzVGRCAvKiBDb3B5VmlzaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb3B5VmlzaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUMyMjM5RDEzMTYyNjJCREQwMDVBQzVGRCAvKiBDb3B5VmlzaXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb3B5VmlzaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDMjIzOUQxNDE2MjYyQkREMDA1QUM1RkQgLyogQ29weVZpc2l0b3JJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcHlWaXNpdG9ySW5saW5lcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzMyOSw2ICszMzMyLDcgQEAKIAkJQzI5
ODFGRDcxN0JBRUU0QjAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXZWFrUmVmZXJlbmNlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuaDsg
cGF0aCA9IGRmZy9ERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzI5ODFGREExN0JBRkY0NDAwQTNCQzk4IC8qIERGR0Rlc2lyZWRXcml0ZUJh
cnJpZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0Rlc2ly
ZWRXcml0ZUJhcnJpZXJzLmNwcDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyOTgxRkRCMTdCQUZGNDQwMEEzQkM5
OCAvKiBERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEZXNpcmVkV3JpdGVCYXJyaWVycy5oOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRX
cml0ZUJhcnJpZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyOUE0RTFGMUFD
NzFDMEMwMDQ2RTQ5MiAvKiBHQ1RpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdDVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI5RUNCMDExODA0
RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ3VycmVudFRoaXNJbnNpZGVCbG9j
a0dldHRlclRlc3QubW07IHBhdGggPSBBUEkvdGVzdHMvQ3VycmVudFRoaXNJbnNpZGVCbG9ja0dl
dHRlclRlc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyOUVDQjAyMTgwNEQw
RUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDdXJyZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVz
dC5oOyBwYXRoID0gQVBJL3Rlc3RzL0N1cnJlbnRUaGlzSW5zaWRlQmxvY2tHZXR0ZXJUZXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyQTdGNjg3MTYwNDMyRDQwMEY3NkI5OCAv
KiBKU0Rlc3RydWN0aWJsZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0Rlc3RydWN0aWJsZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDA0Miw2ICs0MDQ2LDggQEAKIAkJCQkyQTgzNjM4ODE4RDdEMEZFMDAwMEVCQ0MgLyogRnVsbEdD
QWN0aXZpdHlDYWxsYmFjay5oICovLAogCQkJCTJBQUJDREU2MThFRjI5NDIwMDAwMjA5NiAvKiBH
Q0xvZ2dpbmcuaCAqLywKIAkJCQkyQURGQTI2MjE4RUYzNTQwMDA0RjlGQ0MgLyogR0NMb2dnaW5n
LmNwcCAqLywKKwkJCQlDMjlBNEUxRjFBQzcxQzBDMDA0NkU0OTIgLyogR0NUaW1lci5oICovLAor
CQkJCUMyMUYwNTFCMUFDNzU5MjQwMEQ1RkIyMiAvKiBHQ1RpbWVyLmNwcCAqLywKIAkJCSk7CiAJ
CQlwYXRoID0gaGVhcDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01OTk5LDYgKzYw
MDUsNyBAQAogCQkJCTE0MjlENzdDMEVEMjBENzMwMEI4OTYxOSAvKiBJbnRlcnByZXRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODYwQkQ4MDExNDhFQTZGMjAwMTEyQjJGIC8qIEludHJpbnNpYy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzAxMTNENEMxQThEQjA5MzAwMzg0OEM0IC8qIEl0ZXJhdG9y
T3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzI5QTRFMjAxQUM3MUMwQzAwNDZFNDky
IC8qIEdDVGltZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDEzMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBKYXZhU2NyaXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCOUNGNTE5RDBCQUMxMDBC
MUQxQjUgLyogRlRMRXhpdFByb3BlcnR5VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDNG
QTFBMTg4RTBGQjAwMDExMEYxNCAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmggaW4gSGVhZGVycyAq
LywKQEAgLTcwOTYsNiArNzEwMyw3IEBACiAJCQkJMEZFNzIxMUQxOTNCOUM1OTAwMzFGNkVEIC8q
IERGR1RyYW5zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkFDQ0YzREUxODVGRTI2QjAw
ODNFMkFEIC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkMyMENCNTE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFz
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMjFGMDUxQzFBQzc1OTI0MDBENUZCMjIgLyogR0NU
aW1lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJGQ0NGRTE4QTYwMDcwMDAxQTI3RjggLyog
REZHVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMwOTdBMTE0NkIyOENBMDBD
RjI0NDIgLyogREZHVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTNCNEE5MThCOTJD
NEQwMDE3OEEzRiAvKiBQdXRCeUlkVmFyaWFudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGltZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvR0NUaW1lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcwZTYxZDQ2YmViMTgxOTQ1
YTU2N2YxMzJkNjE2Y2ExODQ0MzZkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0dDVGltZXIuY3BwCkBAIC0wLDAgKzEsMTQ5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkdDVGltZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CisKK25hbWVzcGFj
ZSBKU0MgeworCisjaWYgRU5BQkxFKEdDX0xPR0dJTkcpCitHQ1RpbWVyKiBHQ1RpbWVyOjpzX2N1
cnJlbnRHbG9iYWxUaW1lciA9IG51bGxwdHI7CisKK1RpbWVSZWNvcmQ6OlRpbWVSZWNvcmQoKQor
ICAgIDogbV9jdXJyZW50VGltZSgwKQorICAgICwgbV90b3RhbFRpbWUoMCkKKyAgICAsIG1fbWlu
KHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHkoKSkKKyAgICAsIG1fbWF4KDAp
CisgICAgLCBtX3RvdGFsQ291bnQoMCkKKyAgICAsIG1fY29sbGVjdGlvbkNvdW50KDApCisgICAg
LCBtX3dhc1VzZWRJblByZXZpb3VzQ29sbGVjdGlvbihmYWxzZSkKK3sKK30KKwordm9pZCBUaW1l
UmVjb3JkOjpkaWRTdGFydE5ld0NvbGxlY3Rpb24oKQoreworICAgIGlmICghbV93YXNVc2VkSW5Q
cmV2aW91c0NvbGxlY3Rpb24pCisgICAgICAgIHJldHVybjsKKyAgICBtX3dhc1VzZWRJblByZXZp
b3VzQ29sbGVjdGlvbiA9IGZhbHNlOworCisgICAgaWYgKG1fY3VycmVudFRpbWUgPCBtX21pbikK
KyAgICAgICAgbV9taW4gPSBtX2N1cnJlbnRUaW1lOworICAgIGlmIChtX2N1cnJlbnRUaW1lID4g
bV9tYXgpCisgICAgICAgIG1fbWF4ID0gbV9jdXJyZW50VGltZTsKKyAgICBtX3RvdGFsVGltZSAr
PSBtX2N1cnJlbnRUaW1lOworICAgIG1fY29sbGVjdGlvbkNvdW50Kys7CisgICAgbV9jdXJyZW50
VGltZSA9IDA7Cit9CisKK3ZvaWQgVGltZVJlY29yZDo6dXBkYXRlRGF0YShkb3VibGUgZHVyYXRp
b24pCit7CisgICAgbV93YXNVc2VkSW5QcmV2aW91c0NvbGxlY3Rpb24gPSB0cnVlOworICAgIG1f
Y3VycmVudFRpbWUgKz0gZHVyYXRpb247CisgICAgbV90b3RhbENvdW50Kys7Cit9CisKK0dDVGlt
ZXI6OkdDVGltZXIoY29uc3QgY2hhciogbmFtZSkKKyAgICA6IG1fbmFtZShuYW1lKQorICAgICwg
bV9sYXN0Q29sbGVjdGlvbklEKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSkK
K3sKK30KKworR0NUaW1lcjo6fkdDVGltZXIoKQoreworICAgIC8vIENhbGwgZGlkU3RhcnROZXdD
b2xsZWN0aW9uIHRvIGZsdXNoIHRoZSBkYXRhIGZyb20gdGhlIGxhc3QgY29sbGVjdGlvbi4KKyAg
ICBtX2FsbENvbGxlY3Rpb25EYXRhLmRpZFN0YXJ0TmV3Q29sbGVjdGlvbigpOworICAgIGxvZ0Rh
dGEobV9hbGxDb2xsZWN0aW9uRGF0YSwgIihBbGwpIik7CisgICAgbV9lZGVuQ29sbGVjdGlvbkRh
dGEuZGlkU3RhcnROZXdDb2xsZWN0aW9uKCk7CisgICAgbG9nRGF0YShtX2VkZW5Db2xsZWN0aW9u
RGF0YSwgIihFZGVuKSIpOworICAgIG1fZnVsbENvbGxlY3Rpb25EYXRhLmRpZFN0YXJ0TmV3Q29s
bGVjdGlvbigpOworICAgIGxvZ0RhdGEobV9mdWxsQ29sbGVjdGlvbkRhdGEsICIoRnVsbCkiKTsK
K30KKwordm9pZCBHQ1RpbWVyOjpkaWRGaW5pc2hQaGFzZShIZWFwT3BlcmF0aW9uIGNvbGxlY3Rp
b25UeXBlLCB1aW50NjRfdCBjb2xsZWN0aW9uSUQsIGRvdWJsZSBkdXJhdGlvbikKK3sKKyAgICBp
ZiAobV9sYXN0Q29sbGVjdGlvbklEICE9IGNvbGxlY3Rpb25JRCkgeworICAgICAgICBtX2VkZW5D
b2xsZWN0aW9uRGF0YS5kaWRTdGFydE5ld0NvbGxlY3Rpb24oKTsKKyAgICAgICAgbV9mdWxsQ29s
bGVjdGlvbkRhdGEuZGlkU3RhcnROZXdDb2xsZWN0aW9uKCk7CisgICAgICAgIG1fYWxsQ29sbGVj
dGlvbkRhdGEuZGlkU3RhcnROZXdDb2xsZWN0aW9uKCk7CisgICAgICAgIG1fbGFzdENvbGxlY3Rp
b25JRCA9IGNvbGxlY3Rpb25JRDsKKyAgICB9CisgICAgVGltZVJlY29yZCYgZGF0YSA9IGNvbGxl
Y3Rpb25UeXBlID09IEVkZW5Db2xsZWN0aW9uID8gbV9lZGVuQ29sbGVjdGlvbkRhdGEgOiBtX2Z1
bGxDb2xsZWN0aW9uRGF0YTsKKyAgICBkYXRhLnVwZGF0ZURhdGEoZHVyYXRpb24pOworICAgIG1f
YWxsQ29sbGVjdGlvbkRhdGEudXBkYXRlRGF0YShkdXJhdGlvbik7Cit9CisKK3ZvaWQgR0NUaW1l
cjo6bG9nRGF0YShjb25zdCBUaW1lUmVjb3JkJiBkYXRhLCBjb25zdCBjaGFyKiBleHRyYSkgY29u
c3QKK3sKKyAgICBkYXRhTG9nRigiWyVkXSAlcyAoUGFyZW50OiAlcykgJXM6ICUuMmxmbXMgKGF2
Zy4gJS4ybGYsIG1pbi4gJS4ybGYsIG1heC4gJS4ybGYsIGNvdW50ICVsdSIsCisgICAgICAgIGdl
dEN1cnJlbnRQcm9jZXNzSUQoKSwKKyAgICAgICAgbV9uYW1lLAorICAgICAgICBtX3BhcmVudCA/
IG1fcGFyZW50LT5uYW1lKCkgOiAibnVsbHB0ciIsCisgICAgICAgIGV4dHJhLCAKKyAgICAgICAg
ZGF0YS50b3RhbFRpbWUoKSAqIDEwMDAsIAorICAgICAgICBkYXRhLnRvdGFsVGltZSgpICogMTAw
MCAvIGRhdGEuY29sbGVjdGlvbkNvdW50KCksIAorICAgICAgICBkYXRhLm1pbigpICogMTAwMCwg
CisgICAgICAgIGRhdGEubWF4KCkgKiAxMDAwLAorICAgICAgICBkYXRhLmNvbGxlY3Rpb25Db3Vu
dCgpKTsKKyAgICBpZiAoZGF0YS50b3RhbENvdW50KCkgIT0gZGF0YS5jb2xsZWN0aW9uQ291bnQo
KSkgeworICAgICAgICBkYXRhTG9nRigiLCBpdGVycy9jb2xsZWN0ICUuMmxmIiwKKyAgICAgICAg
ICAgIHN0YXRpY19jYXN0PGRvdWJsZT4oZGF0YS50b3RhbENvdW50KCkpIC8gc3RhdGljX2Nhc3Q8
ZG91YmxlPihkYXRhLmNvbGxlY3Rpb25Db3VudCgpKSk7CisgICAgfQorICAgIGRhdGFMb2dGKCIp
XG4iKTsKK30KKworR0NDb3VudGVyOjpHQ0NvdW50ZXIoY29uc3QgY2hhciogbmFtZSkKKyAgICA6
IG1fbmFtZShuYW1lKQorICAgICwgbV9jb3VudCgwKQorICAgICwgbV90b3RhbCgwKQorICAgICwg
bV9taW4oMTAwMDAwMDApCisgICAgLCBtX21heCgwKQoreworfQorCitHQ0NvdW50ZXI6On5HQ0Nv
dW50ZXIoKQoreworICAgIGRhdGFMb2dGKCJbJWRdICVzOiAlenUgdmFsdWVzIChhdmcuICV6dSwg
bWluLiAlenUsIG1heC4gJXp1KVxuIiwKKyAgICAgICAgZ2V0Q3VycmVudFByb2Nlc3NJRCgpLAor
ICAgICAgICBtX25hbWUsCisgICAgICAgIG1fdG90YWwsCisgICAgICAgIG1fdG90YWwgLyBtX2Nv
dW50LAorICAgICAgICBtX21pbiwKKyAgICAgICAgbV9tYXgpOworfQorCit2b2lkIEdDQ291bnRl
cjo6YWRkKHNpemVfdCBhbW91bnQpCit7CisgICAgbV9jb3VudCsrOworICAgIG1fdG90YWwgKz0g
YW1vdW50OworICAgIGlmIChhbW91bnQgPCBtX21pbikKKyAgICAgICAgbV9taW4gPSBhbW91bnQ7
CisgICAgaWYgKGFtb3VudCA+IG1fbWF4KQorICAgICAgICBtX21heCA9IGFtb3VudDsKK30KKyNl
bmRpZiAvLyBFTkFCTEUoR0NfTE9HR0lORykKKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RpbWVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9HQ1RpbWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTEyYjk2YTBhZWM4MmFmMDdjMGM0
MDk1ODhiYWUyNWQ0ZTFmMzMyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0dDVGltZXIuaApAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR0NUaW1lcl9oCisjZGVmaW5lIEdD
VGltZXJfaAorCisjaW5jbHVkZSAiSGVhcE9wZXJhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKworbmFtZXNwYWNlIEpTQyB7
CisgICAgCisjZGVmaW5lIEVOQUJMRV9HQ19MT0dHSU5HIDAKKworI2lmIEVOQUJMRShHQ19MT0dH
SU5HKQorI2lmIENPTVBJTEVSKENMQU5HKQorI2RlZmluZSBERUZJTkVfR0NfTE9HR0lOR19HTE9C
QUwodHlwZSwgbmFtZSwgYXJndW1lbnRzKSBcCitfUHJhZ21hKCJjbGFuZyBkaWFnbm9zdGljIHB1
c2giKSBcCitfUHJhZ21hKCJjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgXCItV2dsb2JhbC1jb25z
dHJ1Y3RvcnNcIiIpIFwKK19QcmFnbWEoImNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCBcIi1XZXhp
dC10aW1lLWRlc3RydWN0b3JzXCIiKSBcCitzdGF0aWMgdHlwZSBuYW1lIGFyZ3VtZW50czsgXAor
X1ByYWdtYSgiY2xhbmcgZGlhZ25vc3RpYyBwb3AiKQorI2Vsc2UKKyNkZWZpbmUgREVGSU5FX0dD
X0xPR0dJTkdfR0xPQkFMKHR5cGUsIG5hbWUsIGFyZ3VtZW50cykgXAorc3RhdGljIHR5cGUgbmFt
ZSBhcmd1bWVudHM7CisjZW5kaWYgLy8gQ09NUElMRVIoQ0xBTkcpCisKK2NsYXNzIFRpbWVSZWNv
cmQgeworcHVibGljOgorICAgIFRpbWVSZWNvcmQoKTsKKyAgICB2b2lkIGRpZFN0YXJ0TmV3Q29s
bGVjdGlvbigpOworICAgIHZvaWQgdXBkYXRlRGF0YShkb3VibGUgZHVyYXRpb24pOworCisgICAg
ZG91YmxlIG1pbigpIGNvbnN0IHsgcmV0dXJuIG1fbWluOyB9CisgICAgZG91YmxlIG1heCgpIGNv
bnN0IHsgcmV0dXJuIG1fbWF4OyB9CisgICAgZG91YmxlIHRvdGFsVGltZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdG90YWxUaW1lOyB9CisgICAgc2l6ZV90IGNvbGxlY3Rpb25Db3VudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY29sbGVjdGlvbkNvdW50OyB9CisgICAgc2l6ZV90IHRvdGFsQ291bnQoKSBjb25z
dCB7IHJldHVybiBtX3RvdGFsQ291bnQ7IH0KKworcHJpdmF0ZToKKyAgICBkb3VibGUgbV9jdXJy
ZW50VGltZTsKKyAgICBkb3VibGUgbV90b3RhbFRpbWU7CisgICAgZG91YmxlIG1fbWluOworICAg
IGRvdWJsZSBtX21heDsKKyAgICBzaXplX3QgbV90b3RhbENvdW50OworICAgIHNpemVfdCBtX2Nv
bGxlY3Rpb25Db3VudDsKKyAgICBib29sIG1fd2FzVXNlZEluUHJldmlvdXNDb2xsZWN0aW9uOwor
fTsKKworY2xhc3MgR0NUaW1lciB7CitwdWJsaWM6CisgICAgR0NUaW1lcihjb25zdCBjaGFyKiBu
YW1lKTsKKyAgICB+R0NUaW1lcigpOworICAgIHZvaWQgZGlkRmluaXNoUGhhc2UoSGVhcE9wZXJh
dGlvbiwgdWludDY0X3QgY29sbGVjdGlvbklELCBkb3VibGUgZHVyYXRpb24pOworCitwcml2YXRl
OgorICAgIHZvaWQgbG9nRGF0YShjb25zdCBUaW1lUmVjb3JkJiBkYXRhLCBjb25zdCBjaGFyKiBl
eHRyYSkgY29uc3Q7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgR0NUaW1lciogc19jdXJyZW50R2xv
YmFsVGltZXI7CisKKyAgICBjb25zdCBjaGFyKiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1l
OyB9CisgICAgR0NUaW1lciogcGFyZW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnQ7IH0KKyAg
ICB2b2lkIHNldFBhcmVudChHQ1RpbWVyKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0K
KworcHJpdmF0ZToKKyAgICBUaW1lUmVjb3JkIG1fYWxsQ29sbGVjdGlvbkRhdGE7CisgICAgVGlt
ZVJlY29yZCBtX2Z1bGxDb2xsZWN0aW9uRGF0YTsKKyAgICBUaW1lUmVjb3JkIG1fZWRlbkNvbGxl
Y3Rpb25EYXRhOworICAgIGNvbnN0IGNoYXIqIG1fbmFtZTsKKyAgICB1aW50NjRfdCBtX2xhc3RD
b2xsZWN0aW9uSUQ7CisgICAgR0NUaW1lciogbV9wYXJlbnQgeyBudWxscHRyIH07Cit9OworCitj
bGFzcyBHQ1RpbWVyU2NvcGUgeworcHVibGljOgorICAgIEdDVGltZXJTY29wZShHQ1RpbWVyJiB0
aW1lciwgSGVhcE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSwgdWludDY0X3QgY29sbGVjdGlvbklE
KQorICAgICAgICA6IG1fdGltZXIodGltZXIpCisgICAgICAgICwgbV9zdGFydChXVEY6Om1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKQorICAgICAgICAsIG1fY29sbGVjdGlvblR5cGUoY29s
bGVjdGlvblR5cGUpCisgICAgICAgICwgbV9jb2xsZWN0aW9uSUQoY29sbGVjdGlvbklEKQorICAg
IHsKKyAgICAgICAgbV90aW1lci5zZXRQYXJlbnQoR0NUaW1lcjo6c19jdXJyZW50R2xvYmFsVGlt
ZXIpOworICAgICAgICBHQ1RpbWVyOjpzX2N1cnJlbnRHbG9iYWxUaW1lciA9ICZtX3RpbWVyOwor
ICAgIH0KKworICAgIH5HQ1RpbWVyU2NvcGUoKQorICAgIHsKKyAgICAgICAgZG91YmxlIGRlbHRh
ID0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIG1fc3RhcnQ7CisgICAgICAg
IG1fdGltZXIuZGlkRmluaXNoUGhhc2UobV9jb2xsZWN0aW9uVHlwZSwgbV9jb2xsZWN0aW9uSUQs
IGRlbHRhKTsKKyAgICAgICAgR0NUaW1lcjo6c19jdXJyZW50R2xvYmFsVGltZXIgPSBtX3RpbWVy
LnBhcmVudCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBHQ1RpbWVyJiBtX3RpbWVyOworICAg
IGRvdWJsZSBtX3N0YXJ0OworICAgIEhlYXBPcGVyYXRpb24gbV9jb2xsZWN0aW9uVHlwZTsKKyAg
ICB1aW50NjRfdCBtX2NvbGxlY3Rpb25JRDsKK307CisKK2NsYXNzIEdDQ291bnRlciB7CitwdWJs
aWM6CisgICAgR0NDb3VudGVyKGNvbnN0IGNoYXIqIG5hbWUpOworICAgIH5HQ0NvdW50ZXIoKTsK
KyAgICB2b2lkIGFkZChzaXplX3QgYW1vdW50KTsKKworcHJpdmF0ZToKKyAgICBjb25zdCBjaGFy
KiBtX25hbWU7CisgICAgc2l6ZV90IG1fY291bnQ7CisgICAgc2l6ZV90IG1fdG90YWw7CisgICAg
c2l6ZV90IG1fbWluOworICAgIHNpemVfdCBtX21heDsKK307CisKKyNkZWZpbmUgR0NQSEFTRShu
YW1lKSBcCisgICAgREVGSU5FX0dDX0xPR0dJTkdfR0xPQkFMKEdDVGltZXIsIG5hbWUjI1RpbWVy
LCAoI25hbWUpKTsgXAorICAgIEdDVGltZXJTY29wZSBuYW1lIyNUaW1lclNjb3BlKG5hbWUjI1Rp
bWVyLCBtX29wZXJhdGlvbkluUHJvZ3Jlc3MsIHNfY3VycmVudENvbGxlY3Rpb25JRCkKKyNkZWZp
bmUgR0NDT1VOVEVSKG5hbWUsIHZhbHVlKSBkbyB7IFwKKyAgICAgICAgREVGSU5FX0dDX0xPR0dJ
TkdfR0xPQkFMKEdDQ291bnRlciwgbmFtZSMjQ291bnRlciwgKCNuYW1lKSk7IFwKKyAgICAgICAg
bmFtZSMjQ291bnRlci5hZGQodmFsdWUpOyBcCisgICAgfSB3aGlsZSAoZmFsc2UpCisgICAgCisj
ZWxzZQorCisjZGVmaW5lIEdDUEhBU0UobmFtZSkgZG8geyB9IHdoaWxlIChmYWxzZSkKKyNkZWZp
bmUgR0NDT1VOVEVSKG5hbWUsIHZhbHVlKSBkbyB7IH0gd2hpbGUgKGZhbHNlKQorCisjZW5kaWYK
KworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBHQ1RpbWVyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggODk2Y2RiOWI3MzA0Y2Q5MDgyZThiOGNmYTlhYTkyNzA4
NjZkZjA2NC4uYmEyNjU2ODBkNmVjOTZlNzMwYjdmZmRmM2I1ZWM0NzRjMmIwYjRjZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJG
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiR0NBY3Rpdml0eUNhbGxiYWNrLmgi
CiAjaW5jbHVkZSAiR0NJbmNvbWluZ1JlZkNvdW50ZWRTZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAi
R0NUaW1lci5oIgogI2luY2x1ZGUgIkhlYXBJdGVyYXRpb25TY29wZS5oIgogI2luY2x1ZGUgIkhl
YXBSb290VmlzaXRvci5oIgogI2luY2x1ZGUgIkhlYXBTdGF0aXN0aWNzLmgiCkBAIC01MSw3ICs1
Miw2IEBACiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPHd0Zi9SQU1TaXplLmg+CiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgog
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTYzLDE0NyAr
NjMsOCBAQCBuYW1lc3BhY2Ugewogc3RhdGljIGNvbnN0IHNpemVfdCBsYXJnZUhlYXBTaXplID0g
MzIgKiBNQjsgLy8gQWJvdXQgMS41WCB0aGUgYXZlcmFnZSB3ZWJwYWdlLgogc3RhdGljIGNvbnN0
IHNpemVfdCBzbWFsbEhlYXBTaXplID0gMSAqIE1COyAvLyBNYXRjaGVzIHRoZSBGYXN0TWFsbG9j
IHBlci10aHJlYWQgY2FjaGUuCiAKLSNkZWZpbmUgRU5BQkxFX0dDX0xPR0dJTkcgMAotCiAjaWYg
RU5BQkxFKEdDX0xPR0dJTkcpCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jZGVmaW5lIERFRklORV9H
Q19MT0dHSU5HX0dMT0JBTCh0eXBlLCBuYW1lLCBhcmd1bWVudHMpIFwKLV9QcmFnbWEoImNsYW5n
IGRpYWdub3N0aWMgcHVzaCIpIFwKLV9QcmFnbWEoImNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCBc
Ii1XZ2xvYmFsLWNvbnN0cnVjdG9yc1wiIikgXAotX1ByYWdtYSgiY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkIFwiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnNcIiIpIFwKLXN0YXRpYyB0eXBlIG5hbWUg
YXJndW1lbnRzOyBcCi1fUHJhZ21hKCJjbGFuZyBkaWFnbm9zdGljIHBvcCIpCi0jZWxzZQotI2Rl
ZmluZSBERUZJTkVfR0NfTE9HR0lOR19HTE9CQUwodHlwZSwgbmFtZSwgYXJndW1lbnRzKSBcCi1z
dGF0aWMgdHlwZSBuYW1lIGFyZ3VtZW50czsKLSNlbmRpZiAvLyBDT01QSUxFUihDTEFORykKLQot
c3RydWN0IEdDVGltZXIgewotICAgIEdDVGltZXIoY29uc3QgY2hhciogbmFtZSkKLSAgICAgICAg
OiBuYW1lKG5hbWUpCi0gICAgewotICAgIH0KLSAgICB+R0NUaW1lcigpCi0gICAgewotICAgICAg
ICBsb2dEYXRhKGFsbENvbGxlY3Rpb25EYXRhLCAiKEFsbCkiKTsKLSAgICAgICAgbG9nRGF0YShl
ZGVuQ29sbGVjdGlvbkRhdGEsICIoRWRlbikiKTsKLSAgICAgICAgbG9nRGF0YShmdWxsQ29sbGVj
dGlvbkRhdGEsICIoRnVsbCkiKTsKLSAgICB9Ci0KLSAgICBzdHJ1Y3QgVGltZVJlY29yZCB7Ci0g
ICAgICAgIFRpbWVSZWNvcmQoKQotICAgICAgICAgICAgOiB0aW1lKDApCi0gICAgICAgICAgICAs
IG1pbihzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCkpCi0gICAgICAgICAg
ICAsIG1heCgwKQotICAgICAgICAgICAgLCBjb3VudCgwKQotICAgICAgICB7Ci0gICAgICAgIH0K
LQotICAgICAgICBkb3VibGUgdGltZTsKLSAgICAgICAgZG91YmxlIG1pbjsKLSAgICAgICAgZG91
YmxlIG1heDsKLSAgICAgICAgc2l6ZV90IGNvdW50OwotICAgIH07Ci0KLSAgICB2b2lkIGxvZ0Rh
dGEoY29uc3QgVGltZVJlY29yZCYgZGF0YSwgY29uc3QgY2hhciogZXh0cmEpCi0gICAgewotICAg
ICAgICBkYXRhTG9nRigiWyVkXSAlcyAoUGFyZW50OiAlcykgJXM6ICUuMmxmbXMgKGF2Zy4gJS4y
bGYsIG1pbi4gJS4ybGYsIG1heC4gJS4ybGYsIGNvdW50ICVsdSlcbiIsIAotICAgICAgICAgICAg
Z2V0Q3VycmVudFByb2Nlc3NJRCgpLAotICAgICAgICAgICAgbmFtZSwKLSAgICAgICAgICAgIHBh
cmVudCA/IHBhcmVudC0+bmFtZSA6ICJudWxscHRyIiwKLSAgICAgICAgICAgIGV4dHJhLCAKLSAg
ICAgICAgICAgIGRhdGEudGltZSAqIDEwMDAsIAotICAgICAgICAgICAgZGF0YS50aW1lICogMTAw
MCAvIGRhdGEuY291bnQsIAotICAgICAgICAgICAgZGF0YS5taW4gKiAxMDAwLCAKLSAgICAgICAg
ICAgIGRhdGEubWF4ICogMTAwMCwKLSAgICAgICAgICAgIGRhdGEuY291bnQpOwotICAgIH0KLQot
ICAgIHZvaWQgdXBkYXRlRGF0YShUaW1lUmVjb3JkJiBkYXRhLCBkb3VibGUgZHVyYXRpb24pCi0g
ICAgewotICAgICAgICBpZiAoZHVyYXRpb24gPCBkYXRhLm1pbikKLSAgICAgICAgICAgIGRhdGEu
bWluID0gZHVyYXRpb247Ci0gICAgICAgIGlmIChkdXJhdGlvbiA+IGRhdGEubWF4KQotICAgICAg
ICAgICAgZGF0YS5tYXggPSBkdXJhdGlvbjsKLSAgICAgICAgZGF0YS5jb3VudCsrOwotICAgICAg
ICBkYXRhLnRpbWUgKz0gZHVyYXRpb247Ci0gICAgfQotCi0gICAgdm9pZCBkaWRGaW5pc2hQaGFz
ZShIZWFwT3BlcmF0aW9uIGNvbGxlY3Rpb25UeXBlLCBkb3VibGUgZHVyYXRpb24pCi0gICAgewot
ICAgICAgICBUaW1lUmVjb3JkJiBkYXRhID0gY29sbGVjdGlvblR5cGUgPT0gRWRlbkNvbGxlY3Rp
b24gPyBlZGVuQ29sbGVjdGlvbkRhdGEgOiBmdWxsQ29sbGVjdGlvbkRhdGE7Ci0gICAgICAgIHVw
ZGF0ZURhdGEoZGF0YSwgZHVyYXRpb24pOwotICAgICAgICB1cGRhdGVEYXRhKGFsbENvbGxlY3Rp
b25EYXRhLCBkdXJhdGlvbik7Ci0gICAgfQotCi0gICAgc3RhdGljIEdDVGltZXIqIHNfY3VycmVu
dEdsb2JhbFRpbWVyOwotCi0gICAgVGltZVJlY29yZCBhbGxDb2xsZWN0aW9uRGF0YTsKLSAgICBU
aW1lUmVjb3JkIGZ1bGxDb2xsZWN0aW9uRGF0YTsKLSAgICBUaW1lUmVjb3JkIGVkZW5Db2xsZWN0
aW9uRGF0YTsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIEdDVGltZXIqIHBhcmVudCB7IG51
bGxwdHIgfTsKLX07Ci0KLUdDVGltZXIqIEdDVGltZXI6OnNfY3VycmVudEdsb2JhbFRpbWVyID0g
bnVsbHB0cjsKLQotc3RydWN0IEdDVGltZXJTY29wZSB7Ci0gICAgR0NUaW1lclNjb3BlKEdDVGlt
ZXImIHRpbWVyLCBIZWFwT3BlcmF0aW9uIGNvbGxlY3Rpb25UeXBlKQotICAgICAgICA6IHRpbWVy
KHRpbWVyKQotICAgICAgICAsIHN0YXJ0KFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpCi0gICAgICAgICwgY29sbGVjdGlvblR5cGUoY29sbGVjdGlvblR5cGUpCi0gICAgewotICAg
ICAgICB0aW1lci5wYXJlbnQgPSBHQ1RpbWVyOjpzX2N1cnJlbnRHbG9iYWxUaW1lcjsKLSAgICAg
ICAgR0NUaW1lcjo6c19jdXJyZW50R2xvYmFsVGltZXIgPSAmdGltZXI7Ci0gICAgfQotICAgIH5H
Q1RpbWVyU2NvcGUoKQotICAgIHsKLSAgICAgICAgZG91YmxlIGRlbHRhID0gV1RGOjptb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0OwotICAgICAgICB0aW1lci5kaWRGaW5pc2hQ
aGFzZShjb2xsZWN0aW9uVHlwZSwgZGVsdGEpOwotICAgICAgICBHQ1RpbWVyOjpzX2N1cnJlbnRH
bG9iYWxUaW1lciA9IHRpbWVyLnBhcmVudDsKLSAgICB9Ci0gICAgR0NUaW1lciYgdGltZXI7Ci0g
ICAgZG91YmxlIHN0YXJ0OwotICAgIEhlYXBPcGVyYXRpb24gY29sbGVjdGlvblR5cGU7Ci19Owot
Ci1zdHJ1Y3QgR0NDb3VudGVyIHsKLSAgICBHQ0NvdW50ZXIoY29uc3QgY2hhciogbmFtZSkKLSAg
ICAgICAgOiBuYW1lKG5hbWUpCi0gICAgICAgICwgY291bnQoMCkKLSAgICAgICAgLCB0b3RhbCgw
KQotICAgICAgICAsIG1pbigxMDAwMDAwMCkKLSAgICAgICAgLCBtYXgoMCkKLSAgICB7Ci0gICAg
fQotICAgIAotICAgIHZvaWQgYWRkKHNpemVfdCBhbW91bnQpCi0gICAgewotICAgICAgICBjb3Vu
dCsrOwotICAgICAgICB0b3RhbCArPSBhbW91bnQ7Ci0gICAgICAgIGlmIChhbW91bnQgPCBtaW4p
Ci0gICAgICAgICAgICBtaW4gPSBhbW91bnQ7Ci0gICAgICAgIGlmIChhbW91bnQgPiBtYXgpCi0g
ICAgICAgICAgICBtYXggPSBhbW91bnQ7Ci0gICAgfQotICAgIH5HQ0NvdW50ZXIoKQotICAgIHsK
LSAgICAgICAgZGF0YUxvZ0YoIlslZF0gJXM6ICV6dSB2YWx1ZXMgKGF2Zy4gJXp1LCBtaW4uICV6
dSwgbWF4LiAlenUpXG4iLCBnZXRDdXJyZW50UHJvY2Vzc0lEKCksIG5hbWUsIHRvdGFsLCB0b3Rh
bCAvIGNvdW50LCBtaW4sIG1heCk7Ci0gICAgfQotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAg
c2l6ZV90IGNvdW50OwotICAgIHNpemVfdCB0b3RhbDsKLSAgICBzaXplX3QgbWluOwotICAgIHNp
emVfdCBtYXg7Ci19OwotCi0jZGVmaW5lIEdDUEhBU0UobmFtZSkgREVGSU5FX0dDX0xPR0dJTkdf
R0xPQkFMKEdDVGltZXIsIG5hbWUjI1RpbWVyLCAoI25hbWUpKTsgR0NUaW1lclNjb3BlIG5hbWUj
I1RpbWVyU2NvcGUobmFtZSMjVGltZXIsIG1fb3BlcmF0aW9uSW5Qcm9ncmVzcykKLSNkZWZpbmUg
R0NDT1VOVEVSKG5hbWUsIHZhbHVlKSBkbyB7IERFRklORV9HQ19MT0dHSU5HX0dMT0JBTChHQ0Nv
dW50ZXIsIG5hbWUjI0NvdW50ZXIsICgjbmFtZSkpOyBuYW1lIyNDb3VudGVyLmFkZCh2YWx1ZSk7
IH0gd2hpbGUgKGZhbHNlKQotICAgIAotI2Vsc2UKLQotI2RlZmluZSBHQ1BIQVNFKG5hbWUpIGRv
IHsgfSB3aGlsZSAoZmFsc2UpCi0jZGVmaW5lIEdDQ09VTlRFUihuYW1lLCB2YWx1ZSkgZG8geyB9
IHdoaWxlIChmYWxzZSkKK3N0YXRpYyB1aW50NjRfdCBzX2N1cnJlbnRDb2xsZWN0aW9uSUQgPSAw
OwogI2VuZGlmCiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IG1pbkhlYXBTaXplKEhlYXBUeXBlIGhl
YXBUeXBlLCBzaXplX3QgcmFtU2l6ZSkKQEAgLTQ4MCw2ICszNDEsNyBAQCB2b2lkIEhlYXA6OnBv
cFRlbXBTb3J0VmVjdG9yKFZlY3RvcjxWYWx1ZVN0cmluZ1BhaXIsIDAsIFVuc2FmZVZlY3Rvck92
ZXJmbG93PiogdAogCiB2b2lkIEhlYXA6OmhhcnZlc3RXZWFrUmVmZXJlbmNlcygpCiB7CisgICAg
R0NQSEFTRShIYXJ2ZXN0V2Vha1JlZmVyZW5jZXMpOwogICAgIG1fc2xvdFZpc2l0b3IuaGFydmVz
dFdlYWtSZWZlcmVuY2VzKCk7CiB9CiAKQEAgLTY2Niw2ICs1MjgsNyBAQCB2b2lkIEhlYXA6OnZp
c2l0Q29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIHJvb3RzKQogdm9pZCBIZWFw
Ojp2aXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVmZXJlbmNlcygpCiB7CiAjaWYgRU5BQkxFKERG
R19KSVQpCisgICAgR0NQSEFTRShWaXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVmZXJlbmNlcyk7
CiAgICAgZm9yIChhdXRvIHdvcmtsaXN0IDogbV9zdXNwZW5kZWRDb21waWxlcldvcmtsaXN0cykK
ICAgICAgICAgd29ya2xpc3QtPnZpc2l0V2Vha1JlZmVyZW5jZXMobV9zbG90VmlzaXRvciwgbV9j
b2RlQmxvY2tzKTsKIApAQCAtNzgzLDE0ICs2NDYsMjcgQEAgdm9pZCBIZWFwOjpjb252ZXJnZSgp
CiAjZW5kaWYKIH0KIAordm9pZCBIZWFwOjp2aXNpdFdlYWtTZXRzKEhlYXBSb290VmlzaXRvciYg
dmlzaXRvcikKK3sKKyAgICBHQ1BIQVNFKFZpc2l0V2Vha1NldHMpOworICAgIG1fb2JqZWN0U3Bh
Y2UudmlzaXRXZWFrU2V0cyh2aXNpdG9yKTsKK30KKwordm9pZCBIZWFwOjpyZXRyYWNlQ29kZUJs
b2NrcygpCit7CisgICAgR0NQSEFTRShSZXRyYWNlQ29kZUJsb2Nrcyk7CisgICAgbV9jb2RlQmxv
Y2tzLnRyYWNlTWFya2VkKG1fc2xvdFZpc2l0b3IpOworfQorCiB2b2lkIEhlYXA6OnZpc2l0V2Vh
a0hhbmRsZXMoSGVhcFJvb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEdDUEhBU0UoVmlzaXRp
bmdMaXZlV2Vha0hhbmRsZXMpOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIG1fb2JqZWN0
U3BhY2UudmlzaXRXZWFrU2V0cyh2aXNpdG9yKTsKKyAgICAgICAgdmlzaXRXZWFrU2V0cyh2aXNp
dG9yKTsKICAgICAgICAgaGFydmVzdFdlYWtSZWZlcmVuY2VzKCk7CiAgICAgICAgIHZpc2l0Q29t
cGlsZXJXb3JrbGlzdFdlYWtSZWZlcmVuY2VzKCk7Ci0gICAgICAgIG1fY29kZUJsb2Nrcy50cmFj
ZU1hcmtlZChtX3Nsb3RWaXNpdG9yKTsgLy8gTmV3ICJleGVjdXRpbmciIGNvZGUgYmxvY2tzIG1h
eSBiZSBkaXNjb3ZlcmVkLgorICAgICAgICByZXRyYWNlQ29kZUJsb2NrcygpOyAvLyBOZXcgImV4
ZWN1dGluZyIgY29kZSBibG9ja3MgbWF5IGJlIGRpc2NvdmVyZWQuCisKICAgICAgICAgaWYgKG1f
c2xvdFZpc2l0b3IuaXNFbXB0eSgpKQogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTc5OCw2ICs2
NzQsNyBAQCB2b2lkIEhlYXA6OnZpc2l0V2Vha0hhbmRsZXMoSGVhcFJvb3RWaXNpdG9yJiB2aXNp
dG9yKQogICAgICAgICAgICAgZGF0YUxvZygiTGl2ZSBXZWFrIEhhbmRsZXM6XG4iLCBtX3Nsb3RW
aXNpdG9yKTsKIAogICAgICAgICB7CisgICAgICAgICAgICBHQ1BIQVNFKFZpc2l0V2Vha0hhbmRs
ZXNEb25hdGVBbmREcmFpbik7CiAgICAgICAgICAgICBQYXJhbGxlbE1vZGVFbmFibGVyIGVuYWJs
ZXIobV9zbG90VmlzaXRvcik7CiAgICAgICAgICAgICBtX3Nsb3RWaXNpdG9yLmRvbmF0ZUFuZERy
YWluKCk7CiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQpAQCAtOTc1LDggKzg1MiwxNiBAQCB2b2lk
IEhlYXA6OmRlbGV0ZVVubWFya2VkQ29tcGlsZWRDb2RlKCkKIHsKICAgICBHQ1BIQVNFKERlbGV0
ZUNvZGVCbG9ja3MpOwogICAgIGNsZWFyVW5tYXJrZWRFeGVjdXRhYmxlcygpOwotICAgIG1fY29k
ZUJsb2Nrcy5kZWxldGVVbm1hcmtlZEFuZFVucmVmZXJlbmNlZChtX29wZXJhdGlvbkluUHJvZ3Jl
c3MpOwotICAgIG1faml0U3R1YlJvdXRpbmVzLmRlbGV0ZVVubWFya2VkSmV0dGlzb25lZFN0dWJS
b3V0aW5lcygpOworCisgICAgeworICAgICAgICBHQ1BIQVNFKERlbGV0ZVVubWFya2VkQW5kVW5y
ZWZlcmVuY2VkQ29kZUJsb2Nrcyk7CisgICAgICAgIG1fY29kZUJsb2Nrcy5kZWxldGVVbm1hcmtl
ZEFuZFVucmVmZXJlbmNlZChtX29wZXJhdGlvbkluUHJvZ3Jlc3MpOworICAgIH0KKworICAgIHsK
KyAgICAgICAgR0NQSEFTRShEZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91dGluZXMpOwor
ICAgICAgICBtX2ppdFN0dWJSb3V0aW5lcy5kZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91
dGluZXMoKTsKKyAgICB9CiB9CiAKIHZvaWQgSGVhcDo6YWRkVG9SZW1lbWJlcmVkU2V0KGNvbnN0
IEpTQ2VsbCogY2VsbCkKQEAgLTEwMjIsNiArOTA3LDkgQEAgTkVWRVJfSU5MSU5FIHZvaWQgSGVh
cDo6Y29sbGVjdEltcGwoSGVhcE9wZXJhdGlvbiBjb2xsZWN0aW9uVHlwZSwgdm9pZCogc3RhY2tP
cmkKICAgICBkYXRhTG9nRigiSlNDIEdDIHN0YXJ0aW5nIGNvbGxlY3Rpb24uXG4iKTsKICNlbmRp
ZgogICAgIAorI2lmIEVOQUJMRShHQ19MT0dHSU5HKQorICAgIHNfY3VycmVudENvbGxlY3Rpb25J
RCsrOworI2VuZGlmCiAgICAgZG91YmxlIGJlZm9yZSA9IDA7CiAgICAgaWYgKE9wdGlvbnM6Omxv
Z0dDKCkpIHsKICAgICAgICAgZGF0YUxvZygiW0dDOiAiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuaAppbmRleCA5ODMzYWQ0ZjRlOTU2YjY4OWIyNmJlYzU5NTE4NWE5MTUwMDc5OWIwLi43ODNk
MDRmZTM4YzEzNWFkMWZlMmYzNTMxOWJkYWEzMzU0YjEzOWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCkBAIC0zMDYsNiArMzA2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHZpc2l0SGFu
ZGxlU3RhY2soSGVhcFJvb3RWaXNpdG9yJik7CiAgICAgdm9pZCB0cmFjZUNvZGVCbG9ja3NBbmRK
SVRTdHViUm91dGluZXMoKTsKICAgICB2b2lkIGNvbnZlcmdlKCk7CisgICAgdm9pZCB2aXNpdFdl
YWtTZXRzKEhlYXBSb290VmlzaXRvciYpOworICAgIHZvaWQgcmV0cmFjZUNvZGVCbG9ja3MoKTsK
ICAgICB2b2lkIHZpc2l0V2Vha0hhbmRsZXMoSGVhcFJvb3RWaXNpdG9yJik7CiAgICAgdm9pZCBj
bGVhclJlbWVtYmVyZWRTZXQoVmVjdG9yPGNvbnN0IEpTQ2VsbCo+Jik7CiAgICAgdm9pZCB1cGRh
dGVPYmplY3RDb3VudHMoZG91YmxlIGdjU3RhcnRUaW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0OTQ1N2ZhNzE5Y2I4ODViNjkwYzQ1NjY1
M2RkMGQ1ZjZhMWJiYjRiLi4xYTE5ODFhNTk3ZjczMWM3MDA4NjJkNDI0NjhiNGI1MmRiN2NmYmVm
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTUtMDMtMjIgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iQGdtYWls
LmNvbT4KKworICAgICAgICBHQ1RpbWVyIHNob3VsZCB3b3JrIGNvcnJlY3RseSB3aGVuIGludm9r
ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBzYW1lIGNvbGxlY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjk0MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSByZWdleCBmb3IgcGhh
c2UgdGltaW5nIG91dHB1dCB0byBpbmNsdWRlIG51bWJlciBvZiBwaGFzZQorICAgICAgICBpdGVy
YXRpb25zIHBlciBjb2xsZWN0aW9uLgorCisgICAgICAgICogU2NyaXB0cy9wYXJzZS1nYy1waGFz
ZS10aW1pbmdzOgorICAgICAgICAoVGltaW5nKToKKyAgICAgICAgKFRpbWluZy5fX2luaXRfXyk6
CisgICAgICAgIChwYXJzZV9pbnB1dCk6CisKIDIwMTUtMDMtMjcgIEd5dXlvdW5nIEtpbSAgPGd5
dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbQ01ha2VdIFJlbW92ZSB1bm5lY2Vz
c2FyeSBJTkNMVURFX0lGX0VYSVNUUyBtYWNybyAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
cGFyc2UtZ2MtcGhhc2UtdGltaW5ncyBiL1Rvb2xzL1NjcmlwdHMvcGFyc2UtZ2MtcGhhc2UtdGlt
aW5ncwppbmRleCA4NjdjNzU4ZDlkNjAzZmZkYmYyMjY3OTBlMjA2Yzc0YmZkZWIxNzVkLi40YThl
OWI5NGMzODM0NWZhNjE3YmJjODIwOWYyYjQxMmI5M2JkZDVjIDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL3BhcnNlLWdjLXBoYXNlLXRpbWluZ3MKKysrIGIvVG9vbHMvU2NyaXB0cy9wYXJzZS1n
Yy1waGFzZS10aW1pbmdzCkBAIC0zNSwxMCArMzUsMTIgQEAgVElNSU5HX1JFR0VYID0gcmUuY29t
cGlsZSgKICAgICAnXChhdmcuICg/UDxhdmdfdGltZT5bXixdKyksICcKICAgICAnbWluLiAoP1A8
bWluX3RpbWU+W14sXSspLCAnCiAgICAgJ21heC4gKD9QPG1heF90aW1lPlteLF0rKSwgJwotICAg
ICdjb3VudCAoP1A8Y291bnQ+W15cKV0rKVwpJykKKyAgICAnY291bnQgKD9QPGNvdW50PlteLFwp
XSspJworICAgICcoPzosIGl0ZXJzL2NvbGxlY3QgKD9QPGF2Z19pdGVycz5bXlwpXSspKT8nCisg
ICAgJ1wpJykKIAogY2xhc3MgVGltaW5nKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBpZCwgbmFtZSwgcGFyZW50LCBjb2xsZWN0X3R5cGUsIHRvdGFsX3RpbWUsIGF2Z190aW1lLCBt
aW5fdGltZSwgbWF4X3RpbWUsIGNvdW50KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGlkLCBu
YW1lLCBwYXJlbnQsIGNvbGxlY3RfdHlwZSwgdG90YWxfdGltZSwgYXZnX3RpbWUsIG1pbl90aW1l
LCBtYXhfdGltZSwgY291bnQsIGF2Z19pdGVycyk6CiAgICAgICAgIHNlbGYucGlkID0gaW50KHBp
ZCkKICAgICAgICAgc2VsZi5uYW1lID0gc3RyKG5hbWUpCiAgICAgICAgIHNlbGYucGFyZW50ID0g
c3RyKHBhcmVudCkKQEAgLTQ4LDYgKzUwLDcgQEAgY2xhc3MgVGltaW5nKG9iamVjdCk6CiAgICAg
ICAgIHNlbGYubWluX3RpbWUgPSBmbG9hdChtaW5fdGltZSkKICAgICAgICAgc2VsZi5tYXhfdGlt
ZSA9IGZsb2F0KG1heF90aW1lKQogICAgICAgICBzZWxmLmNvdW50ID0gaW50KGNvdW50KQorICAg
ICAgICBzZWxmLmF2Z19pdGVycyA9IGZsb2F0KGF2Z19pdGVycykKICAgICAgICAgc2VsZi5jaGls
ZHJlbiA9IFtdCiAKICAgICBkZWYgX191bmljb2RlX18oc2VsZik6CkBAIC03Niw2ICs3OSw3IEBA
IGRlZiBwYXJzZV9pbnB1dCgpOgogICAgICAgICAgICAgcmVzdWx0Lmdyb3VwKCdtaW5fdGltZScp
LAogICAgICAgICAgICAgcmVzdWx0Lmdyb3VwKCdtYXhfdGltZScpLAogICAgICAgICAgICAgcmVz
dWx0Lmdyb3VwKCdjb3VudCcpLAorICAgICAgICAgICAgMS4wIGlmIHJlc3VsdC5ncm91cCgnYXZn
X2l0ZXJzJykgaXMgTm9uZSBlbHNlIHJlc3VsdC5ncm91cCgnYXZnX2l0ZXJzJykKICAgICAgICAg
KSkKICAgICByZXR1cm4gdGltaW5ncwogCg==
</data>
<flag name="review"
          id="274505"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>