<?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>165634</bug_id>
          
          <creation_ts>2016-12-08 16:15:44 -0800</creation_ts>
          <short_desc>More IndexedDB perf tests</short_desc>
          <delta_ts>2017-01-30 17:47:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=165765</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>167623</dependson>
    
    <dependson>165766</dependson>
          <blocked>160306</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1257939</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-08 16:15:44 -0800</bug_when>
    <thetext>More IndexedDB perf tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258702</commentid>
    <comment_count>1</comment_count>
      <attachid>296804</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-10 10:13:23 -0800</bug_when>
    <thetext>Created attachment 296804
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258703</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-10 10:14:47 -0800</bug_when>
    <thetext>Attachment 296804 did not pass style-queue:


ERROR: PerformanceTests/IndexedDB/index-multientry.html:14:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:18:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:19:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:20:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:329:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:330:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:331:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:332:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:334:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:335:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:336:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:337:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:338:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:340:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:341:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:342:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:343:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:344:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:345:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:346:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:348:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:349:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:350:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:352:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:353:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/resources/runner.js:354:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/IndexedDB/large-number-of-inserts-responsiveness.html:66:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/IndexedDB/large-number-of-inserts-responsiveness.html:67:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/IndexedDB/objectstore-cursor.html:47:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/IndexedDB/objectstore-cursor.html:48:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/IndexedDB/objectstore-cursor.html:49:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/IndexedDB/objectstore-cursor.html:50:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/IndexedDB/objectstore-cursor.html:62:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/IndexedDB/large-number-of-inserts.html:67:  Line contains tab character.  [whitespace/tab] [5]
ERROR: PerformanceTests/IndexedDB/large-number-of-inserts.html:68:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 35 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258708</commentid>
    <comment_count>3</comment_count>
      <attachid>296806</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-10 10:21:44 -0800</bug_when>
    <thetext>Created attachment 296806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258709</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-10 10:23:37 -0800</bug_when>
    <thetext>Attachment 296806 did not pass style-queue:


ERROR: PerformanceTests/IndexedDB/index-multientry.html:14:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258719</commentid>
    <comment_count>5</comment_count>
      <attachid>296810</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-10 11:03:57 -0800</bug_when>
    <thetext>Created attachment 296810
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258738</commentid>
    <comment_count>6</comment_count>
      <attachid>296810</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-10 12:45:21 -0800</bug_when>
    <thetext>Comment on attachment 296810
Patch v1

Clearing flags on attachment: 296810

Committed r209672: &lt;http://trac.webkit.org/changeset/209672&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258739</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-10 12:45:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259118</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-12 10:56:56 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 165766</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259255</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-12 16:29:22 -0800</bug_when>
    <thetext>Relanded with the long running test&apos;s runtime cut 75%
https://trac.webkit.org/changeset/209738</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296804</attachid>
            <date>2016-12-10 10:13:23 -0800</date>
            <delta_ts>2016-12-10 10:21:44 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10689</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYjU3NzAxNC4uMzI2OTg3MCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNi0xMi0xMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgTW9yZSBJbmRleGVkREIgcGVyZiB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTYzNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSW5kZXhlZERCL2luZGV4LW11bHRpZW50
cnkuaHRtbDoKKyAgICAgICAgKiBJbmRleGVkREIvbGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVz
cG9uc2l2ZW5lc3MuaHRtbDogQWRkZWQuCisgICAgICAgICogSW5kZXhlZERCL2xhcmdlLW51bWJl
ci1vZi1pbnNlcnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIEluZGV4ZWREQi9vYmplY3RzdG9y
ZS1jdXJzb3IuaHRtbDogQWRkZWQuCisgICAgICAgIAorICAgICAgICAqIHJlc291cmNlcy9ydW5u
ZXIuanM6IEFkZCAidHJhY2sgcmVzcG9uc2l2ZW5lc3MiIGZ1bmN0aW9uYWxpdHkgdG8gUGVyZlRl
c3RSdW5uZXIuCisKIDIwMTYtMTItMDYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBDb25jdXJyZW50IEdDIHNob3VsZCBiZSBzdGFibGUgZW5vdWdoIHRvIGxhbmQg
ZW5hYmxlZApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvaW5kZXgtbXVs
dGllbnRyeS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvaW5kZXgtbXVsdGllbnRy
eS5odG1sCmluZGV4IDViODZiMDIuLmNlNTJlZWIgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvSW5kZXhlZERCL2luZGV4LW11bHRpZW50cnkuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0luZGV4ZWREQi9pbmRleC1tdWx0aWVudHJ5Lmh0bWwKQEAgLTQsMTIgKzQsMTQgQEAKIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKLXZh
ciBpdGVyYXRpb25Db3VudCA9IDExOwordmFyIGl0ZXJhdGlvbkNvdW50ID0gMjA7CiB2YXIgbnVt
YmVyRGVsZXRlZCA9IDA7CiAKIC8vIERlbGV0ZSBhbGwgZGF0YWJhc2VzIGZvciB0aGUgdGVzdCBh
aGVhZCBvZiB0aW1lLgotZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyYXRpb25Db3VudDsgKytpKSB7
Ci0gICAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJpbmRleC1tdWx0aWVudHJ5LURCLSIgKyBp
KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKK3ZhciBkYXRhYmFzZU5hbWVQcmVmaXggPSAiaW5k
ZXgtbXVsdGllbnRyeS1EQi0iOworZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyYXRpb25Db3VudCAr
IDE7ICsraSkgeworICAgIHJlcSA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYXRhYmFzZU5h
bWVQcmVmaXggKyBpKTsKKwlyZXEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIGlm
ICgrK251bWJlckRlbGV0ZWQgPT0gaXRlcmF0aW9uQ291bnQpCiAgICAgICAgICAgICBzdGFydEl0
ZXJhdGlvbigpOwogICAgIH0KQEAgLTQ0LDE0ICs0NiwxNCBAQCBmdW5jdGlvbiBuZXh0U3RlcCgp
CiB9CiAKIHZhciBvYmplY3QgPSB7IHRlc3Q6ICd5bycsIGluZGV4S2V5czogW10gfTsKLWZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKQorZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwOyBpKysp
CiAgICAgb2JqZWN0LmluZGV4S2V5cy5wdXNoKCdpbmRleF9ub18nICsgaSk7CiAKIGZ1bmN0aW9u
ICpydW5JdGVyYXRpb24oKQogewogICAgIHZhciBzdGFydFRpbWUgPSBQZXJmVGVzdFJ1bm5lci5u
b3coKTsKIAotICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCJpbmRleC1tdWx0
aWVudHJ5LURCLSIgKyBjdXJyZW50SXRlcmF0aW9uKTsKKyAgICB2YXIgb3BlblJlcXVlc3QgPSBp
bmRleGVkREIub3BlbihkYXRhYmFzZU5hbWVQcmVmaXggKyBjdXJyZW50SXRlcmF0aW9uKTsKICAg
ICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgewogICAgICAg
ICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdzdG9yZScpLmNyZWF0ZUluZGV4KCdpbmRleCcsICdpbmRleEtleXMnLCB7IG11bHRpRW50cnk6
IHRydWUgfSk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0luZGV4ZWREQi9sYXJnZS1u
dW1iZXItb2YtaW5zZXJ0cy1yZXNwb25zaXZlbmVzcy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9J
bmRleGVkREIvbGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVzcG9uc2l2ZW5lc3MuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmViYjI0Ci0tLSAvZGV2L251bGwKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvbGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVz
cG9uc2l2ZW5lc3MuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCit2YXIgaXRlcmF0aW9uQ291bnQgPSAyMDsKK3ZhciBudW1iZXJEZWxldGVk
ID0gMDsKKworLy8gRGVsZXRlIGFsbCBkYXRhYmFzZXMgZm9yIHRoZSB0ZXN0IGFoZWFkIG9mIHRp
bWUuCit2YXIgZGF0YWJhc2VQcmVmaXggPSAibGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVzcG9u
c2l2ZW5lc3MtREItIjsKK2ZvciAodmFyIGkgPSAwOyBpIDwgaXRlcmF0aW9uQ291bnQgKyAxOyAr
K2kpIHsKKyAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGF0YWJhc2VQcmVmaXggKyBpKS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCsrbnVtYmVyRGVsZXRlZCA9PSBp
dGVyYXRpb25Db3VudCkKKyAgICAgICAgICAgIHN0YXJ0SXRlcmF0aW9uKCk7CisgICAgfQorfQor
Cit2YXIgdGVzdEdlbmVyYXRvciA9IG51bGw7Cit2YXIgZGIgPSBudWxsOwordmFyIGN1cnJlbnRJ
dGVyYXRpb24gPSAwOworCitQZXJmVGVzdFJ1bm5lci5wcmVwYXJlVG9NZWFzdXJlVmFsdWVzQXN5
bmMoeworICAgIGN1c3RvbUl0ZXJhdGlvbkNvdW50OiBpdGVyYXRpb25Db3VudCwKKyAgICB1bml0
OiAnbXMnLAorICAgIGRvbmU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZGIgPSBudWxsOworICAg
ICAgICBsYXJnZXN0RGVsYXkgPSAwOworICAgICAgICB0ZXN0R2VuZXJhdG9yID0gbnVsbDsKKyAg
ICAgICAgUGVyZlRlc3RSdW5uZXIuZ2MoKTsKKyAgICAgICAgKytjdXJyZW50SXRlcmF0aW9uOwor
ICAgIH0KK30pOworCitmdW5jdGlvbiBzdGFydEl0ZXJhdGlvbigpCit7CisgICAgdGVzdEdlbmVy
YXRvciA9IHJ1bkl0ZXJhdGlvbigpOworICAgIG5leHRTdGVwKCk7Cit9CisKK2Z1bmN0aW9uIG5l
eHRTdGVwKCkKK3sKKyAgICB0ZXN0R2VuZXJhdG9yLm5leHQoKTsKK30KKwordmFyIG51bWJlck9m
T2JqZWN0cyA9IDUwMDAwOwordmFyIG9iamVjdHNUb0luc2VydCA9IG5ldyBBcnJheShudW1iZXJP
Zk9iamVjdHMpOworZm9yICh2YXIgaSA9IDA7IGkgPCBudW1iZXJPZk9iamVjdHM7ICsraSkgewor
ICAgIG9iamVjdHNUb0luc2VydFtpXSA9IHsgZGF0YTogTWF0aC5yYW5kb20oKSB9OworICAgIG9i
amVjdHNUb0luc2VydFtpXS5pZCA9ICdvYmplY3RfJyArIGk7Cit9CisKK2Z1bmN0aW9uICpydW5J
dGVyYXRpb24oKQoreworICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRhdGFi
YXNlUHJlZml4ICsgY3VycmVudEl0ZXJhdGlvbik7CisgICAgb3BlblJlcXVlc3Qub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVz
dWx0OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0cycsIHtrZXlQYXRoOiAn
aWQnfSk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IG5leHRTdGVwOworCisg
ICAgeWllbGQ7CisKKyAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbignb2JqZWN0
cycsICdyZWFkd3JpdGUnKS5vYmplY3RTdG9yZSgnb2JqZWN0cycpOworICAgIG9iamVjdFN0b3Jl
LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBuZXh0U3RlcDsKKwlmb3IgKHZhciBpID0gMDsgaSA8
IG51bWJlck9mT2JqZWN0czsgKytpKQorCQlvYmplY3RTdG9yZS5wdXQob2JqZWN0c1RvSW5zZXJ0
W2ldKTsKKworICAgIFBlcmZUZXN0UnVubmVyLnN0YXJ0Q2hlY2tpbmdSZXNwb25zaXZlbmVzcygp
OworCisgICAgeWllbGQ7CisKKyAgICBQZXJmVGVzdFJ1bm5lci5zdG9wQ2hlY2tpbmdSZXNwb25z
aXZlbmVzcygpOworICAgIAorICAgIGlmICghUGVyZlRlc3RSdW5uZXIubWVhc3VyZVZhbHVlQXN5
bmMoUGVyZlRlc3RSdW5uZXIubG9uZ2VzdFJlc3BvbnNpdmVuZXNzRGVsYXkoKSkpCisgICAgICAg
IHJldHVybjsKKworICAgIHNldFRpbWVvdXQoc3RhcnRJdGVyYXRpb24sIDApOworfQorCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvSW5k
ZXhlZERCL2xhcmdlLW51bWJlci1vZi1pbnNlcnRzLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0lu
ZGV4ZWREQi9sYXJnZS1udW1iZXItb2YtaW5zZXJ0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjE2NTYzYjIKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRl
c3RzL0luZGV4ZWREQi9sYXJnZS1udW1iZXItb2YtaW5zZXJ0cy5odG1sCkBAIC0wLDAgKzEsODAg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciBpdGVyYXRpb25Db3Vu
dCA9IDIwOwordmFyIG51bWJlckRlbGV0ZWQgPSAwOworCisvLyBEZWxldGUgYWxsIGRhdGFiYXNl
cyBmb3IgdGhlIHRlc3QgYWhlYWQgb2YgdGltZS4KK3ZhciBkYXRhYmFzZVByZWZpeCA9ICJsYXJn
ZS1udW1iZXItb2YtaW5zZXJ0cy1EQi0iOworZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyYXRpb25D
b3VudCArIDE7ICsraSkgeworICAgIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYXRhYmFzZVBy
ZWZpeCArIGkpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoKytudW1iZXJE
ZWxldGVkID09IGl0ZXJhdGlvbkNvdW50KQorICAgICAgICAgICAgc3RhcnRJdGVyYXRpb24oKTsK
KyAgICB9Cit9CisKK3ZhciB0ZXN0R2VuZXJhdG9yID0gbnVsbDsKK3ZhciBkYiA9IG51bGw7Cit2
YXIgY3VycmVudEl0ZXJhdGlvbiA9IDA7CisKK1BlcmZUZXN0UnVubmVyLnByZXBhcmVUb01lYXN1
cmVWYWx1ZXNBc3luYyh7CisgICAgY3VzdG9tSXRlcmF0aW9uQ291bnQ6IGl0ZXJhdGlvbkNvdW50
LAorICAgIHVuaXQ6ICdtcycsCisgICAgZG9uZTogZnVuY3Rpb24gKCkgeworICAgICAgICBkYiA9
IG51bGw7CisgICAgICAgIHRlc3RHZW5lcmF0b3IgPSBudWxsOworICAgICAgICBQZXJmVGVzdFJ1
bm5lci5nYygpOworICAgICAgICArK2N1cnJlbnRJdGVyYXRpb247CisgICAgfQorfSk7CisKK2Z1
bmN0aW9uIHN0YXJ0SXRlcmF0aW9uKCkKK3sKKyAgICB0ZXN0R2VuZXJhdG9yID0gcnVuSXRlcmF0
aW9uKCk7CisgICAgbmV4dFN0ZXAoKTsKK30KKworZnVuY3Rpb24gbmV4dFN0ZXAoKQoreworICAg
IHRlc3RHZW5lcmF0b3IubmV4dCgpOworfQorCit2YXIgbnVtYmVyT2ZPYmplY3RzID0gMTAwMDAw
OwordmFyIG9iamVjdHNUb0luc2VydCA9IG5ldyBBcnJheShudW1iZXJPZk9iamVjdHMpOworZm9y
ICh2YXIgaSA9IDA7IGkgPCBudW1iZXJPZk9iamVjdHM7ICsraSkgeworICAgIG9iamVjdHNUb0lu
c2VydFtpXSA9IHsgZGF0YTogTWF0aC5yYW5kb20oKSB9OworICAgIG9iamVjdHNUb0luc2VydFtp
XS5pZCA9ICdvYmplY3RfJyArIGk7Cit9CisKK2Z1bmN0aW9uICpydW5JdGVyYXRpb24oKQorewor
ICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRhdGFiYXNlUHJlZml4ICsgY3Vy
cmVudEl0ZXJhdGlvbik7CisgICAgb3BlblJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0cycsIHtrZXlQYXRoOiAnaWQnfSk7CisgICAgfQor
ICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IG5leHRTdGVwOworCisgICAgeWllbGQ7CisKKyAg
ICB2YXIgc3RhcnRUaW1lID0gUGVyZlRlc3RSdW5uZXIubm93KCk7CisKKyAgICB2YXIgb2JqZWN0
U3RvcmUgPSBkYi50cmFuc2FjdGlvbignb2JqZWN0cycsICdyZWFkd3JpdGUnKS5vYmplY3RTdG9y
ZSgnb2JqZWN0cycpOworICAgIG9iamVjdFN0b3JlLnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBu
ZXh0U3RlcDsKKwlmb3IgKHZhciBpID0gMDsgaSA8IG51bWJlck9mT2JqZWN0czsgKytpKQorCQlv
YmplY3RTdG9yZS5wdXQob2JqZWN0c1RvSW5zZXJ0W2ldKTsKKworICAgIHlpZWxkOworCisgICAg
aWYgKCFQZXJmVGVzdFJ1bm5lci5tZWFzdXJlVmFsdWVBc3luYyhQZXJmVGVzdFJ1bm5lci5ub3co
KSAtIHN0YXJ0VGltZSkpCisgICAgICAgIHJldHVybjsKKworICAgIHNldFRpbWVvdXQoc3RhcnRJ
dGVyYXRpb24sIDApOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvSW5kZXhlZERCL29iamVjdHN0b3JlLWN1cnNvci5odG1sIGIv
UGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvb2JqZWN0c3RvcmUtY3Vyc29yLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI5NzU2MgotLS0gL2Rldi9udWxsCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvSW5kZXhlZERCL29iamVjdHN0b3JlLWN1cnNvci5odG1sCkBAIC0w
LDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciBpdGVy
YXRpb25Db3VudCA9IDIwOwordmFyIG51bWJlckRlbGV0ZWQgPSAwOworLy8gRGVsZXRlIGFsbCBk
YXRhYmFzZXMgZm9yIHRoZSB0ZXN0IGFoZWFkIG9mIHRpbWUuCit2YXIgZGF0YWJhc2VOYW1lID0g
Im9iamVjdHN0b3JlLWN1cnNvci1EQiI7CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGF0YWJh
c2VOYW1lKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICBzdGFydEl0ZXJhdGlvbigpOwor
fQorCit2YXIgdGVzdEdlbmVyYXRvciA9IG51bGw7Cit2YXIgZGIgPSBudWxsOwordmFyIGN1cnJl
bnRJdGVyYXRpb24gPSAwOworCitQZXJmVGVzdFJ1bm5lci5wcmVwYXJlVG9NZWFzdXJlVmFsdWVz
QXN5bmMoeworICAgIGN1c3RvbUl0ZXJhdGlvbkNvdW50OiBpdGVyYXRpb25Db3VudCwKKyAgICB1
bml0OiAnbXMnLAorICAgIGRvbmU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZGIgPSBudWxsOwor
ICAgICAgICB0ZXN0R2VuZXJhdG9yID0gbnVsbDsKKyAgICAgICAgUGVyZlRlc3RSdW5uZXIuZ2Mo
KTsKKyAgICAgICAgKytjdXJyZW50SXRlcmF0aW9uOworICAgIH0KK30pOworCitmdW5jdGlvbiBz
dGFydEl0ZXJhdGlvbigpCit7CisgICAgdGVzdEdlbmVyYXRvciA9IHJ1bkl0ZXJhdGlvbigpOwor
ICAgIG5leHRTdGVwKCk7Cit9CisKK2Z1bmN0aW9uIG5leHRTdGVwKCkKK3sKKyAgICB0ZXN0R2Vu
ZXJhdG9yLm5leHQoKTsKK30KKworZnVuY3Rpb24gKnJ1bkl0ZXJhdGlvbigpCit7CisgICAgdmFy
IG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGF0YWJhc2VOYW1lKTsKKyAgICBvcGVuUmVx
dWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZScpOworCQlmb3IgKHZhciBpID0gMDsgaSA8IDUwMDAwOyArK2kpIHsK
KwkJICAgIHZhciBzdWZmaXggPSAoIjAwMDAwMDAiICsgaSkuc2xpY2UoLTcpOworCQkJb2JqZWN0
U3RvcmUucHV0KCJiYXJfdmFsdWVfIiArIHN1ZmZpeCwgImZvb19rZXlfIiArIHN1ZmZpeCk7CisJ
CX0KKyAgICB9CisgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gbmV4dFN0ZXA7CisKKyAgICB5
aWVsZDsKKworICAgIHZhciBzdGFydFRpbWUgPSBQZXJmVGVzdFJ1bm5lci5ub3coKTsKKyAgICB2
YXIgY3Vyc29yUmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3JlKCdz
dG9yZScpLm9wZW5DdXJzb3IoKTsKKyAgICB2YXIgY3Vyc29ySXRlcmF0aW9uID0gMDsKKyAgICBj
dXJzb3JSZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBj
dXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBpZiAoY3Vyc29yKSB7CisJCSAg
ICB2YXIgc3VmZml4ID0gKCIwMDAwMDAwIiArIGN1cnNvckl0ZXJhdGlvbikuc2xpY2UoLTcpOwor
ICAgICAgICAgICAgaWYgKGN1cnNvci5rZXkgIT0gImZvb19rZXlfIiArIHN1ZmZpeCkKKyAgICAg
ICAgICAgICAgICBhbGVydCgiSW5jb3JyZWN0IHZhbHVlIHJldHJpZXZlZDogIiArIGN1cnNvci5r
ZXkpOworICAgICAgICAgICAgaWYgKGN1cnNvci52YWx1ZSAhPSAiYmFyX3ZhbHVlXyIgKyBzdWZm
aXgpCisgICAgICAgICAgICAgICAgYWxlcnQoIkluY29ycmVjdCB2YWx1ZSByZXRyaWV2ZWQ6ICIg
KyBjdXJzb3Iua2V5KTsKKyAgICAgICAgICAgICsrY3Vyc29ySXRlcmF0aW9uOworICAgICAgICAg
ICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbmV4dFN0
ZXAoKTsKKyAgICB9OworCisgICAgeWllbGQ7CisKKyAgICBpZiAoIVBlcmZUZXN0UnVubmVyLm1l
YXN1cmVWYWx1ZUFzeW5jKFBlcmZUZXN0UnVubmVyLm5vdygpIC0gc3RhcnRUaW1lKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgc2V0VGltZW91dChzdGFydEl0ZXJhdGlvbiwgMCk7Cit9Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvcmVz
b3VyY2VzL3J1bm5lci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcwpp
bmRleCBlYjAxNTE1Li5mMzQxZGEwIDEwMDc1NQotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291
cmNlcy9ydW5uZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpz
CkBAIC0xNSw2ICsxNSw5IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHZhciBqc0hl
YXBSZXN1bHRzOwogICAgIHZhciBtYWxsb2NIZWFwUmVzdWx0czsKICAgICB2YXIgaXRlcmF0aW9u
Q291bnQgPSB1bmRlZmluZWQ7CisJdmFyIGxhc3RSZXNwb25zaXZlbmVzc1RpbWVzdGFtcCA9IDA7
CisJdmFyIF9sb25nZXN0UmVzcG9uc2l2ZW5lc3NEZWxheSA9IDA7CisJdmFyIGNvbnRpbnVlQ2hl
Y2tpbmdSZXNwb25zaXZlbmVzcyA9IGZhbHNlOwogCiAgICAgdmFyIFBlcmZUZXN0UnVubmVyID0g
e307CiAKQEAgLTMyMyw2ICszMjYsMzIgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
ICAgIHJldHVybiBQZXJmVGVzdFJ1bm5lci5ub3coKSAtIHN0YXJ0VGltZTsKICAgICB9CiAKKwlQ
ZXJmVGVzdFJ1bm5lci5zdGFydENoZWNraW5nUmVzcG9uc2l2ZW5lc3MgPSBmdW5jdGlvbigpIHsK
KyAgICAJbGFzdFJlc3BvbnNpdmVuZXNzVGltZXN0YW1wID0gUGVyZlRlc3RSdW5uZXIubm93KCk7
CisJCV9sb25nZXN0UmVzcG9uc2l2ZW5lc3NEZWxheSA9IDA7CisgICAgCWNvbnRpbnVlQ2hlY2tp
bmdSZXNwb25zaXZlbmVzcyA9IHRydWU7CisKKwkJdmFyIHRpbWVvdXRGdW5jdGlvbiA9IGZ1bmN0
aW9uKCkgeworCQkgICAgdmFyIG5vdyA9IFBlcmZUZXN0UnVubmVyLm5vdygpOworCQkgICAgdmFy
IGRlbHRhID0gbm93IC0gbGFzdFJlc3BvbnNpdmVuZXNzVGltZXN0YW1wOworCQkgICAgaWYgKGRl
bHRhID4gX2xvbmdlc3RSZXNwb25zaXZlbmVzc0RlbGF5KQorCQkgICAgICAgIF9sb25nZXN0UmVz
cG9uc2l2ZW5lc3NEZWxheSA9IGRlbHRhOwkKKworCQkJbGFzdFJlc3BvbnNpdmVuZXNzVGltZXN0
YW1wID0gbm93OworCQkJaWYgKGNvbnRpbnVlQ2hlY2tpbmdSZXNwb25zaXZlbmVzcykKKwkJCQlz
ZXRUaW1lb3V0KHRpbWVvdXRGdW5jdGlvbiwgMCk7CisJCX0KKwkJCisJCXRpbWVvdXRGdW5jdGlv
bigpOworCX0KKworCVBlcmZUZXN0UnVubmVyLnN0b3BDaGVja2luZ1Jlc3BvbnNpdmVuZXNzID0g
ZnVuY3Rpb24oKSB7CisJCWNvbnRpbnVlQ2hlY2tpbmdSZXNwb25zaXZlbmVzcyA9IGZhbHNlOwor
CX0KKworCVBlcmZUZXN0UnVubmVyLmxvbmdlc3RSZXNwb25zaXZlbmVzc0RlbGF5ID0gZnVuY3Rp
b24oKSB7CisJCXJldHVybiBfbG9uZ2VzdFJlc3BvbnNpdmVuZXNzRGVsYXk7CisJfQogCiAgICAg
UGVyZlRlc3RSdW5uZXIubWVhc3VyZVBhZ2VMb2FkVGltZSA9IGZ1bmN0aW9uKHRlc3QpIHsKICAg
ICAgICAgdGVzdC5ydW4gPSBmdW5jdGlvbigpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296806</attachid>
            <date>2016-12-10 10:21:44 -0800</date>
            <delta_ts>2016-12-10 11:03:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10872</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYjU3NzAxNC4uMzI2OTg3MCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNi0xMi0xMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgTW9yZSBJbmRleGVkREIgcGVyZiB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTYzNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSW5kZXhlZERCL2luZGV4LW11bHRpZW50
cnkuaHRtbDoKKyAgICAgICAgKiBJbmRleGVkREIvbGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVz
cG9uc2l2ZW5lc3MuaHRtbDogQWRkZWQuCisgICAgICAgICogSW5kZXhlZERCL2xhcmdlLW51bWJl
ci1vZi1pbnNlcnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIEluZGV4ZWREQi9vYmplY3RzdG9y
ZS1jdXJzb3IuaHRtbDogQWRkZWQuCisgICAgICAgIAorICAgICAgICAqIHJlc291cmNlcy9ydW5u
ZXIuanM6IEFkZCAidHJhY2sgcmVzcG9uc2l2ZW5lc3MiIGZ1bmN0aW9uYWxpdHkgdG8gUGVyZlRl
c3RSdW5uZXIuCisKIDIwMTYtMTItMDYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBDb25jdXJyZW50IEdDIHNob3VsZCBiZSBzdGFibGUgZW5vdWdoIHRvIGxhbmQg
ZW5hYmxlZApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvaW5kZXgtbXVs
dGllbnRyeS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvaW5kZXgtbXVsdGllbnRy
eS5odG1sCmluZGV4IDViODZiMDIuLmNlNTJlZWIgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvSW5kZXhlZERCL2luZGV4LW11bHRpZW50cnkuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0luZGV4ZWREQi9pbmRleC1tdWx0aWVudHJ5Lmh0bWwKQEAgLTQsMTIgKzQsMTQgQEAKIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKLXZh
ciBpdGVyYXRpb25Db3VudCA9IDExOwordmFyIGl0ZXJhdGlvbkNvdW50ID0gMjA7CiB2YXIgbnVt
YmVyRGVsZXRlZCA9IDA7CiAKIC8vIERlbGV0ZSBhbGwgZGF0YWJhc2VzIGZvciB0aGUgdGVzdCBh
aGVhZCBvZiB0aW1lLgotZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyYXRpb25Db3VudDsgKytpKSB7
Ci0gICAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJpbmRleC1tdWx0aWVudHJ5LURCLSIgKyBp
KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKK3ZhciBkYXRhYmFzZU5hbWVQcmVmaXggPSAiaW5k
ZXgtbXVsdGllbnRyeS1EQi0iOworZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyYXRpb25Db3VudCAr
IDE7ICsraSkgeworICAgIHJlcSA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYXRhYmFzZU5h
bWVQcmVmaXggKyBpKTsKKwlyZXEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIGlm
ICgrK251bWJlckRlbGV0ZWQgPT0gaXRlcmF0aW9uQ291bnQpCiAgICAgICAgICAgICBzdGFydEl0
ZXJhdGlvbigpOwogICAgIH0KQEAgLTQ0LDE0ICs0NiwxNCBAQCBmdW5jdGlvbiBuZXh0U3RlcCgp
CiB9CiAKIHZhciBvYmplY3QgPSB7IHRlc3Q6ICd5bycsIGluZGV4S2V5czogW10gfTsKLWZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKQorZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwOyBpKysp
CiAgICAgb2JqZWN0LmluZGV4S2V5cy5wdXNoKCdpbmRleF9ub18nICsgaSk7CiAKIGZ1bmN0aW9u
ICpydW5JdGVyYXRpb24oKQogewogICAgIHZhciBzdGFydFRpbWUgPSBQZXJmVGVzdFJ1bm5lci5u
b3coKTsKIAotICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCJpbmRleC1tdWx0
aWVudHJ5LURCLSIgKyBjdXJyZW50SXRlcmF0aW9uKTsKKyAgICB2YXIgb3BlblJlcXVlc3QgPSBp
bmRleGVkREIub3BlbihkYXRhYmFzZU5hbWVQcmVmaXggKyBjdXJyZW50SXRlcmF0aW9uKTsKICAg
ICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgewogICAgICAg
ICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdzdG9yZScpLmNyZWF0ZUluZGV4KCdpbmRleCcsICdpbmRleEtleXMnLCB7IG11bHRpRW50cnk6
IHRydWUgfSk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0luZGV4ZWREQi9sYXJnZS1u
dW1iZXItb2YtaW5zZXJ0cy1yZXNwb25zaXZlbmVzcy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9J
bmRleGVkREIvbGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVzcG9uc2l2ZW5lc3MuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWZmNmI1Ci0tLSAvZGV2L251bGwKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvbGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVz
cG9uc2l2ZW5lc3MuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCit2YXIgaXRlcmF0aW9uQ291bnQgPSAyMDsKK3ZhciBudW1iZXJEZWxldGVk
ID0gMDsKKworLy8gRGVsZXRlIGFsbCBkYXRhYmFzZXMgZm9yIHRoZSB0ZXN0IGFoZWFkIG9mIHRp
bWUuCit2YXIgZGF0YWJhc2VQcmVmaXggPSAibGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVzcG9u
c2l2ZW5lc3MtREItIjsKK2ZvciAodmFyIGkgPSAwOyBpIDwgaXRlcmF0aW9uQ291bnQgKyAxOyAr
K2kpIHsKKyAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGF0YWJhc2VQcmVmaXggKyBpKS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCsrbnVtYmVyRGVsZXRlZCA9PSBp
dGVyYXRpb25Db3VudCkKKyAgICAgICAgICAgIHN0YXJ0SXRlcmF0aW9uKCk7CisgICAgfQorfQor
Cit2YXIgdGVzdEdlbmVyYXRvciA9IG51bGw7Cit2YXIgZGIgPSBudWxsOwordmFyIGN1cnJlbnRJ
dGVyYXRpb24gPSAwOworCitQZXJmVGVzdFJ1bm5lci5wcmVwYXJlVG9NZWFzdXJlVmFsdWVzQXN5
bmMoeworICAgIGN1c3RvbUl0ZXJhdGlvbkNvdW50OiBpdGVyYXRpb25Db3VudCwKKyAgICB1bml0
OiAnbXMnLAorICAgIGRvbmU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZGIgPSBudWxsOworICAg
ICAgICBsYXJnZXN0RGVsYXkgPSAwOworICAgICAgICB0ZXN0R2VuZXJhdG9yID0gbnVsbDsKKyAg
ICAgICAgUGVyZlRlc3RSdW5uZXIuZ2MoKTsKKyAgICAgICAgKytjdXJyZW50SXRlcmF0aW9uOwor
ICAgIH0KK30pOworCitmdW5jdGlvbiBzdGFydEl0ZXJhdGlvbigpCit7CisgICAgdGVzdEdlbmVy
YXRvciA9IHJ1bkl0ZXJhdGlvbigpOworICAgIG5leHRTdGVwKCk7Cit9CisKK2Z1bmN0aW9uIG5l
eHRTdGVwKCkKK3sKKyAgICB0ZXN0R2VuZXJhdG9yLm5leHQoKTsKK30KKwordmFyIG51bWJlck9m
T2JqZWN0cyA9IDUwMDAwOwordmFyIG9iamVjdHNUb0luc2VydCA9IG5ldyBBcnJheShudW1iZXJP
Zk9iamVjdHMpOworZm9yICh2YXIgaSA9IDA7IGkgPCBudW1iZXJPZk9iamVjdHM7ICsraSkgewor
ICAgIG9iamVjdHNUb0luc2VydFtpXSA9IHsgZGF0YTogTWF0aC5yYW5kb20oKSB9OworICAgIG9i
amVjdHNUb0luc2VydFtpXS5pZCA9ICdvYmplY3RfJyArIGk7Cit9CisKK2Z1bmN0aW9uICpydW5J
dGVyYXRpb24oKQoreworICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRhdGFi
YXNlUHJlZml4ICsgY3VycmVudEl0ZXJhdGlvbik7CisgICAgb3BlblJlcXVlc3Qub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVz
dWx0OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0cycsIHtrZXlQYXRoOiAn
aWQnfSk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IG5leHRTdGVwOworCisg
ICAgeWllbGQ7CisKKyAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbignb2JqZWN0
cycsICdyZWFkd3JpdGUnKS5vYmplY3RTdG9yZSgnb2JqZWN0cycpOworICAgIG9iamVjdFN0b3Jl
LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBuZXh0U3RlcDsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IG51bWJlck9mT2JqZWN0czsgKytpKQorICAgICAgICBvYmplY3RTdG9yZS5wdXQob2JqZWN0
c1RvSW5zZXJ0W2ldKTsKKworICAgIFBlcmZUZXN0UnVubmVyLnN0YXJ0Q2hlY2tpbmdSZXNwb25z
aXZlbmVzcygpOworCisgICAgeWllbGQ7CisKKyAgICBQZXJmVGVzdFJ1bm5lci5zdG9wQ2hlY2tp
bmdSZXNwb25zaXZlbmVzcygpOworICAgIAorICAgIGlmICghUGVyZlRlc3RSdW5uZXIubWVhc3Vy
ZVZhbHVlQXN5bmMoUGVyZlRlc3RSdW5uZXIubG9uZ2VzdFJlc3BvbnNpdmVuZXNzRGVsYXkoKSkp
CisgICAgICAgIHJldHVybjsKKworICAgIHNldFRpbWVvdXQoc3RhcnRJdGVyYXRpb24sIDApOwor
fQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNl
VGVzdHMvSW5kZXhlZERCL2xhcmdlLW51bWJlci1vZi1pbnNlcnRzLmh0bWwgYi9QZXJmb3JtYW5j
ZVRlc3RzL0luZGV4ZWREQi9sYXJnZS1udW1iZXItb2YtaW5zZXJ0cy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhZGQ3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0luZGV4ZWREQi9sYXJnZS1udW1iZXItb2YtaW5zZXJ0cy5odG1sCkBAIC0w
LDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciBpdGVy
YXRpb25Db3VudCA9IDIwOwordmFyIG51bWJlckRlbGV0ZWQgPSAwOworCisvLyBEZWxldGUgYWxs
IGRhdGFiYXNlcyBmb3IgdGhlIHRlc3QgYWhlYWQgb2YgdGltZS4KK3ZhciBkYXRhYmFzZVByZWZp
eCA9ICJsYXJnZS1udW1iZXItb2YtaW5zZXJ0cy1EQi0iOworZm9yICh2YXIgaSA9IDA7IGkgPCBp
dGVyYXRpb25Db3VudCArIDE7ICsraSkgeworICAgIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
YXRhYmFzZVByZWZpeCArIGkpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAo
KytudW1iZXJEZWxldGVkID09IGl0ZXJhdGlvbkNvdW50KQorICAgICAgICAgICAgc3RhcnRJdGVy
YXRpb24oKTsKKyAgICB9Cit9CisKK3ZhciB0ZXN0R2VuZXJhdG9yID0gbnVsbDsKK3ZhciBkYiA9
IG51bGw7Cit2YXIgY3VycmVudEl0ZXJhdGlvbiA9IDA7CisKK1BlcmZUZXN0UnVubmVyLnByZXBh
cmVUb01lYXN1cmVWYWx1ZXNBc3luYyh7CisgICAgY3VzdG9tSXRlcmF0aW9uQ291bnQ6IGl0ZXJh
dGlvbkNvdW50LAorICAgIHVuaXQ6ICdtcycsCisgICAgZG9uZTogZnVuY3Rpb24gKCkgeworICAg
ICAgICBkYiA9IG51bGw7CisgICAgICAgIHRlc3RHZW5lcmF0b3IgPSBudWxsOworICAgICAgICBQ
ZXJmVGVzdFJ1bm5lci5nYygpOworICAgICAgICArK2N1cnJlbnRJdGVyYXRpb247CisgICAgfQor
fSk7CisKK2Z1bmN0aW9uIHN0YXJ0SXRlcmF0aW9uKCkKK3sKKyAgICB0ZXN0R2VuZXJhdG9yID0g
cnVuSXRlcmF0aW9uKCk7CisgICAgbmV4dFN0ZXAoKTsKK30KKworZnVuY3Rpb24gbmV4dFN0ZXAo
KQoreworICAgIHRlc3RHZW5lcmF0b3IubmV4dCgpOworfQorCit2YXIgbnVtYmVyT2ZPYmplY3Rz
ID0gMTAwMDAwOwordmFyIG9iamVjdHNUb0luc2VydCA9IG5ldyBBcnJheShudW1iZXJPZk9iamVj
dHMpOworZm9yICh2YXIgaSA9IDA7IGkgPCBudW1iZXJPZk9iamVjdHM7ICsraSkgeworICAgIG9i
amVjdHNUb0luc2VydFtpXSA9IHsgZGF0YTogTWF0aC5yYW5kb20oKSB9OworICAgIG9iamVjdHNU
b0luc2VydFtpXS5pZCA9ICdvYmplY3RfJyArIGk7Cit9CisKK2Z1bmN0aW9uICpydW5JdGVyYXRp
b24oKQoreworICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRhdGFiYXNlUHJl
Zml4ICsgY3VycmVudEl0ZXJhdGlvbik7CisgICAgb3BlblJlcXVlc3Qub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0Owor
ICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0cycsIHtrZXlQYXRoOiAnaWQnfSk7
CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IG5leHRTdGVwOworCisgICAgeWll
bGQ7CisKKyAgICB2YXIgc3RhcnRUaW1lID0gUGVyZlRlc3RSdW5uZXIubm93KCk7CisKKyAgICB2
YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbignb2JqZWN0cycsICdyZWFkd3JpdGUnKS5v
YmplY3RTdG9yZSgnb2JqZWN0cycpOworICAgIG9iamVjdFN0b3JlLnRyYW5zYWN0aW9uLm9uY29t
cGxldGUgPSBuZXh0U3RlcDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bWJlck9mT2JqZWN0
czsgKytpKQorICAgICAgICBvYmplY3RTdG9yZS5wdXQob2JqZWN0c1RvSW5zZXJ0W2ldKTsKKwor
ICAgIHlpZWxkOworCisgICAgaWYgKCFQZXJmVGVzdFJ1bm5lci5tZWFzdXJlVmFsdWVBc3luYyhQ
ZXJmVGVzdFJ1bm5lci5ub3coKSAtIHN0YXJ0VGltZSkpCisgICAgICAgIHJldHVybjsKKworICAg
IHNldFRpbWVvdXQoc3RhcnRJdGVyYXRpb24sIDApOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvSW5kZXhlZERCL29iamVjdHN0
b3JlLWN1cnNvci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvb2JqZWN0c3RvcmUt
Y3Vyc29yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZhZDc0Ngot
LS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvSW5kZXhlZERCL29iamVjdHN0b3Jl
LWN1cnNvci5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKK3ZhciBpdGVyYXRpb25Db3VudCA9IDIwOwordmFyIG51bWJlckRlbGV0ZWQgPSAw
OworLy8gRGVsZXRlIGFsbCBkYXRhYmFzZXMgZm9yIHRoZSB0ZXN0IGFoZWFkIG9mIHRpbWUuCit2
YXIgZGF0YWJhc2VOYW1lID0gIm9iamVjdHN0b3JlLWN1cnNvci1EQiI7CitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGF0YWJhc2VOYW1lKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICBz
dGFydEl0ZXJhdGlvbigpOworfQorCit2YXIgdGVzdEdlbmVyYXRvciA9IG51bGw7Cit2YXIgZGIg
PSBudWxsOwordmFyIGN1cnJlbnRJdGVyYXRpb24gPSAwOworCitQZXJmVGVzdFJ1bm5lci5wcmVw
YXJlVG9NZWFzdXJlVmFsdWVzQXN5bmMoeworICAgIGN1c3RvbUl0ZXJhdGlvbkNvdW50OiBpdGVy
YXRpb25Db3VudCwKKyAgICB1bml0OiAnbXMnLAorICAgIGRvbmU6IGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgZGIgPSBudWxsOworICAgICAgICB0ZXN0R2VuZXJhdG9yID0gbnVsbDsKKyAgICAgICAg
UGVyZlRlc3RSdW5uZXIuZ2MoKTsKKyAgICAgICAgKytjdXJyZW50SXRlcmF0aW9uOworICAgIH0K
K30pOworCitmdW5jdGlvbiBzdGFydEl0ZXJhdGlvbigpCit7CisgICAgdGVzdEdlbmVyYXRvciA9
IHJ1bkl0ZXJhdGlvbigpOworICAgIG5leHRTdGVwKCk7Cit9CisKK2Z1bmN0aW9uIG5leHRTdGVw
KCkKK3sKKyAgICB0ZXN0R2VuZXJhdG9yLm5leHQoKTsKK30KKworZnVuY3Rpb24gKnJ1bkl0ZXJh
dGlvbigpCit7CisgICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGF0YWJhc2VO
YW1lKTsKKyAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkg
eworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpOworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDUwMDAwOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBzdWZmaXggPSAoIjAwMDAw
MDAiICsgaSkuc2xpY2UoLTcpOworICAgICAgICAgICAgb2JqZWN0U3RvcmUucHV0KCJiYXJfdmFs
dWVfIiArIHN1ZmZpeCwgImZvb19rZXlfIiArIHN1ZmZpeCk7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gbmV4dFN0ZXA7CisKKyAgICB5aWVsZDsKKworICAg
IHZhciBzdGFydFRpbWUgPSBQZXJmVGVzdFJ1bm5lci5ub3coKTsKKyAgICB2YXIgY3Vyc29yUmVx
dWVzdCA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3JlKCdzdG9yZScpLm9wZW5D
dXJzb3IoKTsKKyAgICB2YXIgY3Vyc29ySXRlcmF0aW9uID0gMDsKKyAgICBjdXJzb3JSZXF1ZXN0
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBjdXJzb3IgPSBldmVu
dC50YXJnZXQucmVzdWx0OworICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICB2YXIg
c3VmZml4ID0gKCIwMDAwMDAwIiArIGN1cnNvckl0ZXJhdGlvbikuc2xpY2UoLTcpOworICAgICAg
ICAgICAgaWYgKGN1cnNvci5rZXkgIT0gImZvb19rZXlfIiArIHN1ZmZpeCkKKyAgICAgICAgICAg
ICAgICBhbGVydCgiSW5jb3JyZWN0IHZhbHVlIHJldHJpZXZlZDogIiArIGN1cnNvci5rZXkpOwor
ICAgICAgICAgICAgaWYgKGN1cnNvci52YWx1ZSAhPSAiYmFyX3ZhbHVlXyIgKyBzdWZmaXgpCisg
ICAgICAgICAgICAgICAgYWxlcnQoIkluY29ycmVjdCB2YWx1ZSByZXRyaWV2ZWQ6ICIgKyBjdXJz
b3Iua2V5KTsKKyAgICAgICAgICAgICsrY3Vyc29ySXRlcmF0aW9uOworICAgICAgICAgICAgY3Vy
c29yLmNvbnRpbnVlKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbmV4dFN0ZXAoKTsK
KyAgICB9OworCisgICAgeWllbGQ7CisKKyAgICBpZiAoIVBlcmZUZXN0UnVubmVyLm1lYXN1cmVW
YWx1ZUFzeW5jKFBlcmZUZXN0UnVubmVyLm5vdygpIC0gc3RhcnRUaW1lKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgc2V0VGltZW91dChzdGFydEl0ZXJhdGlvbiwgMCk7Cit9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2Vz
L3J1bm5lci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcwppbmRleCBl
YjAxNTE1Li5hZjJlMDNhIDEwMDc1NQotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9y
dW5uZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCkBAIC0x
NSw2ICsxNSw5IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHZhciBqc0hlYXBSZXN1
bHRzOwogICAgIHZhciBtYWxsb2NIZWFwUmVzdWx0czsKICAgICB2YXIgaXRlcmF0aW9uQ291bnQg
PSB1bmRlZmluZWQ7CisgICAgdmFyIGxhc3RSZXNwb25zaXZlbmVzc1RpbWVzdGFtcCA9IDA7Cisg
ICAgdmFyIF9sb25nZXN0UmVzcG9uc2l2ZW5lc3NEZWxheSA9IDA7CisgICAgdmFyIGNvbnRpbnVl
Q2hlY2tpbmdSZXNwb25zaXZlbmVzcyA9IGZhbHNlOwogCiAgICAgdmFyIFBlcmZUZXN0UnVubmVy
ID0ge307CiAKQEAgLTMyMyw2ICszMjYsMzIgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgICAgIHJldHVybiBQZXJmVGVzdFJ1bm5lci5ub3coKSAtIHN0YXJ0VGltZTsKICAgICB9CiAK
KyAgICBQZXJmVGVzdFJ1bm5lci5zdGFydENoZWNraW5nUmVzcG9uc2l2ZW5lc3MgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgbGFzdFJlc3BvbnNpdmVuZXNzVGltZXN0YW1wID0gUGVyZlRlc3RSdW5u
ZXIubm93KCk7CisgICAgICAgIF9sb25nZXN0UmVzcG9uc2l2ZW5lc3NEZWxheSA9IDA7CisgICAg
ICAgIGNvbnRpbnVlQ2hlY2tpbmdSZXNwb25zaXZlbmVzcyA9IHRydWU7CisKKyAgICAgICAgdmFy
IHRpbWVvdXRGdW5jdGlvbiA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIG5vdyA9IFBl
cmZUZXN0UnVubmVyLm5vdygpOworICAgICAgICAgICAgdmFyIGRlbHRhID0gbm93IC0gbGFzdFJl
c3BvbnNpdmVuZXNzVGltZXN0YW1wOworICAgICAgICAgICAgaWYgKGRlbHRhID4gX2xvbmdlc3RS
ZXNwb25zaXZlbmVzc0RlbGF5KQorICAgICAgICAgICAgICAgIF9sb25nZXN0UmVzcG9uc2l2ZW5l
c3NEZWxheSA9IGRlbHRhOyAgICAKKworICAgICAgICAgICAgbGFzdFJlc3BvbnNpdmVuZXNzVGlt
ZXN0YW1wID0gbm93OworICAgICAgICAgICAgaWYgKGNvbnRpbnVlQ2hlY2tpbmdSZXNwb25zaXZl
bmVzcykKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRpbWVvdXRGdW5jdGlvbiwgMCk7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRpbWVvdXRGdW5jdGlvbigpOworICAgIH0KKwor
ICAgIFBlcmZUZXN0UnVubmVyLnN0b3BDaGVja2luZ1Jlc3BvbnNpdmVuZXNzID0gZnVuY3Rpb24o
KSB7CisgICAgICAgIGNvbnRpbnVlQ2hlY2tpbmdSZXNwb25zaXZlbmVzcyA9IGZhbHNlOworICAg
IH0KKworICAgIFBlcmZUZXN0UnVubmVyLmxvbmdlc3RSZXNwb25zaXZlbmVzc0RlbGF5ID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgIHJldHVybiBfbG9uZ2VzdFJlc3BvbnNpdmVuZXNzRGVsYXk7Cisg
ICAgfQogCiAgICAgUGVyZlRlc3RSdW5uZXIubWVhc3VyZVBhZ2VMb2FkVGltZSA9IGZ1bmN0aW9u
KHRlc3QpIHsKICAgICAgICAgdGVzdC5ydW4gPSBmdW5jdGlvbigpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296810</attachid>
            <date>2016-12-10 11:03:57 -0800</date>
            <delta_ts>2016-12-10 12:45:21 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10875</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYjU3NzAxNC4uMzI2OTg3MCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNi0xMi0xMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgTW9yZSBJbmRleGVkREIgcGVyZiB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTYzNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSW5kZXhlZERCL2luZGV4LW11bHRpZW50
cnkuaHRtbDoKKyAgICAgICAgKiBJbmRleGVkREIvbGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVz
cG9uc2l2ZW5lc3MuaHRtbDogQWRkZWQuCisgICAgICAgICogSW5kZXhlZERCL2xhcmdlLW51bWJl
ci1vZi1pbnNlcnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIEluZGV4ZWREQi9vYmplY3RzdG9y
ZS1jdXJzb3IuaHRtbDogQWRkZWQuCisgICAgICAgIAorICAgICAgICAqIHJlc291cmNlcy9ydW5u
ZXIuanM6IEFkZCAidHJhY2sgcmVzcG9uc2l2ZW5lc3MiIGZ1bmN0aW9uYWxpdHkgdG8gUGVyZlRl
c3RSdW5uZXIuCisKIDIwMTYtMTItMDYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBDb25jdXJyZW50IEdDIHNob3VsZCBiZSBzdGFibGUgZW5vdWdoIHRvIGxhbmQg
ZW5hYmxlZApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvaW5kZXgtbXVs
dGllbnRyeS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvaW5kZXgtbXVsdGllbnRy
eS5odG1sCmluZGV4IDViODZiMDIuLmFhNGYyZWMgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvSW5kZXhlZERCL2luZGV4LW11bHRpZW50cnkuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0luZGV4ZWREQi9pbmRleC1tdWx0aWVudHJ5Lmh0bWwKQEAgLTQsMTIgKzQsMTQgQEAKIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKLXZh
ciBpdGVyYXRpb25Db3VudCA9IDExOwordmFyIGl0ZXJhdGlvbkNvdW50ID0gMjA7CiB2YXIgbnVt
YmVyRGVsZXRlZCA9IDA7CiAKIC8vIERlbGV0ZSBhbGwgZGF0YWJhc2VzIGZvciB0aGUgdGVzdCBh
aGVhZCBvZiB0aW1lLgotZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyYXRpb25Db3VudDsgKytpKSB7
Ci0gICAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJpbmRleC1tdWx0aWVudHJ5LURCLSIgKyBp
KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKK3ZhciBkYXRhYmFzZU5hbWVQcmVmaXggPSAiaW5k
ZXgtbXVsdGllbnRyeS1EQi0iOworZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyYXRpb25Db3VudCAr
IDE7ICsraSkgeworICAgIHJlcSA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYXRhYmFzZU5h
bWVQcmVmaXggKyBpKTsKKyAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CiAgICAgICAg
IGlmICgrK251bWJlckRlbGV0ZWQgPT0gaXRlcmF0aW9uQ291bnQpCiAgICAgICAgICAgICBzdGFy
dEl0ZXJhdGlvbigpOwogICAgIH0KQEAgLTQ0LDE0ICs0NiwxNCBAQCBmdW5jdGlvbiBuZXh0U3Rl
cCgpCiB9CiAKIHZhciBvYmplY3QgPSB7IHRlc3Q6ICd5bycsIGluZGV4S2V5czogW10gfTsKLWZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKQorZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwOyBp
KyspCiAgICAgb2JqZWN0LmluZGV4S2V5cy5wdXNoKCdpbmRleF9ub18nICsgaSk7CiAKIGZ1bmN0
aW9uICpydW5JdGVyYXRpb24oKQogewogICAgIHZhciBzdGFydFRpbWUgPSBQZXJmVGVzdFJ1bm5l
ci5ub3coKTsKIAotICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCJpbmRleC1t
dWx0aWVudHJ5LURCLSIgKyBjdXJyZW50SXRlcmF0aW9uKTsKKyAgICB2YXIgb3BlblJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYXRhYmFzZU5hbWVQcmVmaXggKyBjdXJyZW50SXRlcmF0aW9uKTsK
ICAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgewogICAg
ICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiAgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdzdG9yZScpLmNyZWF0ZUluZGV4KCdpbmRleCcsICdpbmRleEtleXMnLCB7IG11bHRpRW50
cnk6IHRydWUgfSk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0luZGV4ZWREQi9sYXJn
ZS1udW1iZXItb2YtaW5zZXJ0cy1yZXNwb25zaXZlbmVzcy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0
cy9JbmRleGVkREIvbGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVzcG9uc2l2ZW5lc3MuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWZmNmI1Ci0tLSAvZGV2L251bGwK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvbGFyZ2UtbnVtYmVyLW9mLWluc2VydHMt
cmVzcG9uc2l2ZW5lc3MuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCit2YXIgaXRlcmF0aW9uQ291bnQgPSAyMDsKK3ZhciBudW1iZXJEZWxl
dGVkID0gMDsKKworLy8gRGVsZXRlIGFsbCBkYXRhYmFzZXMgZm9yIHRoZSB0ZXN0IGFoZWFkIG9m
IHRpbWUuCit2YXIgZGF0YWJhc2VQcmVmaXggPSAibGFyZ2UtbnVtYmVyLW9mLWluc2VydHMtcmVz
cG9uc2l2ZW5lc3MtREItIjsKK2ZvciAodmFyIGkgPSAwOyBpIDwgaXRlcmF0aW9uQ291bnQgKyAx
OyArK2kpIHsKKyAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGF0YWJhc2VQcmVmaXggKyBp
KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCsrbnVtYmVyRGVsZXRlZCA9
PSBpdGVyYXRpb25Db3VudCkKKyAgICAgICAgICAgIHN0YXJ0SXRlcmF0aW9uKCk7CisgICAgfQor
fQorCit2YXIgdGVzdEdlbmVyYXRvciA9IG51bGw7Cit2YXIgZGIgPSBudWxsOwordmFyIGN1cnJl
bnRJdGVyYXRpb24gPSAwOworCitQZXJmVGVzdFJ1bm5lci5wcmVwYXJlVG9NZWFzdXJlVmFsdWVz
QXN5bmMoeworICAgIGN1c3RvbUl0ZXJhdGlvbkNvdW50OiBpdGVyYXRpb25Db3VudCwKKyAgICB1
bml0OiAnbXMnLAorICAgIGRvbmU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZGIgPSBudWxsOwor
ICAgICAgICBsYXJnZXN0RGVsYXkgPSAwOworICAgICAgICB0ZXN0R2VuZXJhdG9yID0gbnVsbDsK
KyAgICAgICAgUGVyZlRlc3RSdW5uZXIuZ2MoKTsKKyAgICAgICAgKytjdXJyZW50SXRlcmF0aW9u
OworICAgIH0KK30pOworCitmdW5jdGlvbiBzdGFydEl0ZXJhdGlvbigpCit7CisgICAgdGVzdEdl
bmVyYXRvciA9IHJ1bkl0ZXJhdGlvbigpOworICAgIG5leHRTdGVwKCk7Cit9CisKK2Z1bmN0aW9u
IG5leHRTdGVwKCkKK3sKKyAgICB0ZXN0R2VuZXJhdG9yLm5leHQoKTsKK30KKwordmFyIG51bWJl
ck9mT2JqZWN0cyA9IDUwMDAwOwordmFyIG9iamVjdHNUb0luc2VydCA9IG5ldyBBcnJheShudW1i
ZXJPZk9iamVjdHMpOworZm9yICh2YXIgaSA9IDA7IGkgPCBudW1iZXJPZk9iamVjdHM7ICsraSkg
eworICAgIG9iamVjdHNUb0luc2VydFtpXSA9IHsgZGF0YTogTWF0aC5yYW5kb20oKSB9OworICAg
IG9iamVjdHNUb0luc2VydFtpXS5pZCA9ICdvYmplY3RfJyArIGk7Cit9CisKK2Z1bmN0aW9uICpy
dW5JdGVyYXRpb24oKQoreworICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRh
dGFiYXNlUHJlZml4ICsgY3VycmVudEl0ZXJhdGlvbik7CisgICAgb3BlblJlcXVlc3Qub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0cycsIHtrZXlQYXRo
OiAnaWQnfSk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IG5leHRTdGVwOwor
CisgICAgeWllbGQ7CisKKyAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbignb2Jq
ZWN0cycsICdyZWFkd3JpdGUnKS5vYmplY3RTdG9yZSgnb2JqZWN0cycpOworICAgIG9iamVjdFN0
b3JlLnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBuZXh0U3RlcDsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IG51bWJlck9mT2JqZWN0czsgKytpKQorICAgICAgICBvYmplY3RTdG9yZS5wdXQob2Jq
ZWN0c1RvSW5zZXJ0W2ldKTsKKworICAgIFBlcmZUZXN0UnVubmVyLnN0YXJ0Q2hlY2tpbmdSZXNw
b25zaXZlbmVzcygpOworCisgICAgeWllbGQ7CisKKyAgICBQZXJmVGVzdFJ1bm5lci5zdG9wQ2hl
Y2tpbmdSZXNwb25zaXZlbmVzcygpOworICAgIAorICAgIGlmICghUGVyZlRlc3RSdW5uZXIubWVh
c3VyZVZhbHVlQXN5bmMoUGVyZlRlc3RSdW5uZXIubG9uZ2VzdFJlc3BvbnNpdmVuZXNzRGVsYXko
KSkpCisgICAgICAgIHJldHVybjsKKworICAgIHNldFRpbWVvdXQoc3RhcnRJdGVyYXRpb24sIDAp
OworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvSW5kZXhlZERCL2xhcmdlLW51bWJlci1vZi1pbnNlcnRzLmh0bWwgYi9QZXJmb3Jt
YW5jZVRlc3RzL0luZGV4ZWREQi9sYXJnZS1udW1iZXItb2YtaW5zZXJ0cy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhZGQ3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0luZGV4ZWREQi9sYXJnZS1udW1iZXItb2YtaW5zZXJ0cy5odG1sCkBA
IC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciBp
dGVyYXRpb25Db3VudCA9IDIwOwordmFyIG51bWJlckRlbGV0ZWQgPSAwOworCisvLyBEZWxldGUg
YWxsIGRhdGFiYXNlcyBmb3IgdGhlIHRlc3QgYWhlYWQgb2YgdGltZS4KK3ZhciBkYXRhYmFzZVBy
ZWZpeCA9ICJsYXJnZS1udW1iZXItb2YtaW5zZXJ0cy1EQi0iOworZm9yICh2YXIgaSA9IDA7IGkg
PCBpdGVyYXRpb25Db3VudCArIDE7ICsraSkgeworICAgIGluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYXRhYmFzZVByZWZpeCArIGkpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICBp
ZiAoKytudW1iZXJEZWxldGVkID09IGl0ZXJhdGlvbkNvdW50KQorICAgICAgICAgICAgc3RhcnRJ
dGVyYXRpb24oKTsKKyAgICB9Cit9CisKK3ZhciB0ZXN0R2VuZXJhdG9yID0gbnVsbDsKK3ZhciBk
YiA9IG51bGw7Cit2YXIgY3VycmVudEl0ZXJhdGlvbiA9IDA7CisKK1BlcmZUZXN0UnVubmVyLnBy
ZXBhcmVUb01lYXN1cmVWYWx1ZXNBc3luYyh7CisgICAgY3VzdG9tSXRlcmF0aW9uQ291bnQ6IGl0
ZXJhdGlvbkNvdW50LAorICAgIHVuaXQ6ICdtcycsCisgICAgZG9uZTogZnVuY3Rpb24gKCkgewor
ICAgICAgICBkYiA9IG51bGw7CisgICAgICAgIHRlc3RHZW5lcmF0b3IgPSBudWxsOworICAgICAg
ICBQZXJmVGVzdFJ1bm5lci5nYygpOworICAgICAgICArK2N1cnJlbnRJdGVyYXRpb247CisgICAg
fQorfSk7CisKK2Z1bmN0aW9uIHN0YXJ0SXRlcmF0aW9uKCkKK3sKKyAgICB0ZXN0R2VuZXJhdG9y
ID0gcnVuSXRlcmF0aW9uKCk7CisgICAgbmV4dFN0ZXAoKTsKK30KKworZnVuY3Rpb24gbmV4dFN0
ZXAoKQoreworICAgIHRlc3RHZW5lcmF0b3IubmV4dCgpOworfQorCit2YXIgbnVtYmVyT2ZPYmpl
Y3RzID0gMTAwMDAwOwordmFyIG9iamVjdHNUb0luc2VydCA9IG5ldyBBcnJheShudW1iZXJPZk9i
amVjdHMpOworZm9yICh2YXIgaSA9IDA7IGkgPCBudW1iZXJPZk9iamVjdHM7ICsraSkgeworICAg
IG9iamVjdHNUb0luc2VydFtpXSA9IHsgZGF0YTogTWF0aC5yYW5kb20oKSB9OworICAgIG9iamVj
dHNUb0luc2VydFtpXS5pZCA9ICdvYmplY3RfJyArIGk7Cit9CisKK2Z1bmN0aW9uICpydW5JdGVy
YXRpb24oKQoreworICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRhdGFiYXNl
UHJlZml4ICsgY3VycmVudEl0ZXJhdGlvbik7CisgICAgb3BlblJlcXVlc3Qub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnb2JqZWN0cycsIHtrZXlQYXRoOiAnaWQn
fSk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IG5leHRTdGVwOworCisgICAg
eWllbGQ7CisKKyAgICB2YXIgc3RhcnRUaW1lID0gUGVyZlRlc3RSdW5uZXIubm93KCk7CisKKyAg
ICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbignb2JqZWN0cycsICdyZWFkd3JpdGUn
KS5vYmplY3RTdG9yZSgnb2JqZWN0cycpOworICAgIG9iamVjdFN0b3JlLnRyYW5zYWN0aW9uLm9u
Y29tcGxldGUgPSBuZXh0U3RlcDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bWJlck9mT2Jq
ZWN0czsgKytpKQorICAgICAgICBvYmplY3RTdG9yZS5wdXQob2JqZWN0c1RvSW5zZXJ0W2ldKTsK
KworICAgIHlpZWxkOworCisgICAgaWYgKCFQZXJmVGVzdFJ1bm5lci5tZWFzdXJlVmFsdWVBc3lu
YyhQZXJmVGVzdFJ1bm5lci5ub3coKSAtIHN0YXJ0VGltZSkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNldFRpbWVvdXQoc3RhcnRJdGVyYXRpb24sIDApOworfQorCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvSW5kZXhlZERCL29iamVj
dHN0b3JlLWN1cnNvci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvb2JqZWN0c3Rv
cmUtY3Vyc29yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZhZDc0
NgotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvSW5kZXhlZERCL29iamVjdHN0
b3JlLWN1cnNvci5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisKK3ZhciBpdGVyYXRpb25Db3VudCA9IDIwOwordmFyIG51bWJlckRlbGV0ZWQg
PSAwOworLy8gRGVsZXRlIGFsbCBkYXRhYmFzZXMgZm9yIHRoZSB0ZXN0IGFoZWFkIG9mIHRpbWUu
Cit2YXIgZGF0YWJhc2VOYW1lID0gIm9iamVjdHN0b3JlLWN1cnNvci1EQiI7CitpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoZGF0YWJhc2VOYW1lKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAg
ICBzdGFydEl0ZXJhdGlvbigpOworfQorCit2YXIgdGVzdEdlbmVyYXRvciA9IG51bGw7Cit2YXIg
ZGIgPSBudWxsOwordmFyIGN1cnJlbnRJdGVyYXRpb24gPSAwOworCitQZXJmVGVzdFJ1bm5lci5w
cmVwYXJlVG9NZWFzdXJlVmFsdWVzQXN5bmMoeworICAgIGN1c3RvbUl0ZXJhdGlvbkNvdW50OiBp
dGVyYXRpb25Db3VudCwKKyAgICB1bml0OiAnbXMnLAorICAgIGRvbmU6IGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgZGIgPSBudWxsOworICAgICAgICB0ZXN0R2VuZXJhdG9yID0gbnVsbDsKKyAgICAg
ICAgUGVyZlRlc3RSdW5uZXIuZ2MoKTsKKyAgICAgICAgKytjdXJyZW50SXRlcmF0aW9uOworICAg
IH0KK30pOworCitmdW5jdGlvbiBzdGFydEl0ZXJhdGlvbigpCit7CisgICAgdGVzdEdlbmVyYXRv
ciA9IHJ1bkl0ZXJhdGlvbigpOworICAgIG5leHRTdGVwKCk7Cit9CisKK2Z1bmN0aW9uIG5leHRT
dGVwKCkKK3sKKyAgICB0ZXN0R2VuZXJhdG9yLm5leHQoKTsKK30KKworZnVuY3Rpb24gKnJ1bkl0
ZXJhdGlvbigpCit7CisgICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGF0YWJh
c2VOYW1lKTsKKyAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVu
dCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpl
Y3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDUwMDAwOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBzdWZmaXggPSAoIjAw
MDAwMDAiICsgaSkuc2xpY2UoLTcpOworICAgICAgICAgICAgb2JqZWN0U3RvcmUucHV0KCJiYXJf
dmFsdWVfIiArIHN1ZmZpeCwgImZvb19rZXlfIiArIHN1ZmZpeCk7CisgICAgICAgIH0KKyAgICB9
CisgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gbmV4dFN0ZXA7CisKKyAgICB5aWVsZDsKKwor
ICAgIHZhciBzdGFydFRpbWUgPSBQZXJmVGVzdFJ1bm5lci5ub3coKTsKKyAgICB2YXIgY3Vyc29y
UmVxdWVzdCA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3JlKCdzdG9yZScpLm9w
ZW5DdXJzb3IoKTsKKyAgICB2YXIgY3Vyc29ySXRlcmF0aW9uID0gMDsKKyAgICBjdXJzb3JSZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBjdXJzb3IgPSBl
dmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICB2
YXIgc3VmZml4ID0gKCIwMDAwMDAwIiArIGN1cnNvckl0ZXJhdGlvbikuc2xpY2UoLTcpOworICAg
ICAgICAgICAgaWYgKGN1cnNvci5rZXkgIT0gImZvb19rZXlfIiArIHN1ZmZpeCkKKyAgICAgICAg
ICAgICAgICBhbGVydCgiSW5jb3JyZWN0IHZhbHVlIHJldHJpZXZlZDogIiArIGN1cnNvci5rZXkp
OworICAgICAgICAgICAgaWYgKGN1cnNvci52YWx1ZSAhPSAiYmFyX3ZhbHVlXyIgKyBzdWZmaXgp
CisgICAgICAgICAgICAgICAgYWxlcnQoIkluY29ycmVjdCB2YWx1ZSByZXRyaWV2ZWQ6ICIgKyBj
dXJzb3Iua2V5KTsKKyAgICAgICAgICAgICsrY3Vyc29ySXRlcmF0aW9uOworICAgICAgICAgICAg
Y3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbmV4dFN0ZXAo
KTsKKyAgICB9OworCisgICAgeWllbGQ7CisKKyAgICBpZiAoIVBlcmZUZXN0UnVubmVyLm1lYXN1
cmVWYWx1ZUFzeW5jKFBlcmZUZXN0UnVubmVyLm5vdygpIC0gc3RhcnRUaW1lKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgc2V0VGltZW91dChzdGFydEl0ZXJhdGlvbiwgMCk7Cit9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3Vy
Y2VzL3J1bm5lci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL3J1bm5lci5qcwppbmRl
eCBlYjAxNTE1Li5hZjJlMDNhIDEwMDc1NQotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNl
cy9ydW5uZXIuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvcnVubmVyLmpzCkBA
IC0xNSw2ICsxNSw5IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHZhciBqc0hlYXBS
ZXN1bHRzOwogICAgIHZhciBtYWxsb2NIZWFwUmVzdWx0czsKICAgICB2YXIgaXRlcmF0aW9uQ291
bnQgPSB1bmRlZmluZWQ7CisgICAgdmFyIGxhc3RSZXNwb25zaXZlbmVzc1RpbWVzdGFtcCA9IDA7
CisgICAgdmFyIF9sb25nZXN0UmVzcG9uc2l2ZW5lc3NEZWxheSA9IDA7CisgICAgdmFyIGNvbnRp
bnVlQ2hlY2tpbmdSZXNwb25zaXZlbmVzcyA9IGZhbHNlOwogCiAgICAgdmFyIFBlcmZUZXN0UnVu
bmVyID0ge307CiAKQEAgLTMyMyw2ICszMjYsMzIgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiAgICAgICAgIHJldHVybiBQZXJmVGVzdFJ1bm5lci5ub3coKSAtIHN0YXJ0VGltZTsKICAgICB9
CiAKKyAgICBQZXJmVGVzdFJ1bm5lci5zdGFydENoZWNraW5nUmVzcG9uc2l2ZW5lc3MgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgbGFzdFJlc3BvbnNpdmVuZXNzVGltZXN0YW1wID0gUGVyZlRlc3RS
dW5uZXIubm93KCk7CisgICAgICAgIF9sb25nZXN0UmVzcG9uc2l2ZW5lc3NEZWxheSA9IDA7Cisg
ICAgICAgIGNvbnRpbnVlQ2hlY2tpbmdSZXNwb25zaXZlbmVzcyA9IHRydWU7CisKKyAgICAgICAg
dmFyIHRpbWVvdXRGdW5jdGlvbiA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIG5vdyA9
IFBlcmZUZXN0UnVubmVyLm5vdygpOworICAgICAgICAgICAgdmFyIGRlbHRhID0gbm93IC0gbGFz
dFJlc3BvbnNpdmVuZXNzVGltZXN0YW1wOworICAgICAgICAgICAgaWYgKGRlbHRhID4gX2xvbmdl
c3RSZXNwb25zaXZlbmVzc0RlbGF5KQorICAgICAgICAgICAgICAgIF9sb25nZXN0UmVzcG9uc2l2
ZW5lc3NEZWxheSA9IGRlbHRhOyAgICAKKworICAgICAgICAgICAgbGFzdFJlc3BvbnNpdmVuZXNz
VGltZXN0YW1wID0gbm93OworICAgICAgICAgICAgaWYgKGNvbnRpbnVlQ2hlY2tpbmdSZXNwb25z
aXZlbmVzcykKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRpbWVvdXRGdW5jdGlvbiwgMCk7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRpbWVvdXRGdW5jdGlvbigpOworICAgIH0K
KworICAgIFBlcmZUZXN0UnVubmVyLnN0b3BDaGVja2luZ1Jlc3BvbnNpdmVuZXNzID0gZnVuY3Rp
b24oKSB7CisgICAgICAgIGNvbnRpbnVlQ2hlY2tpbmdSZXNwb25zaXZlbmVzcyA9IGZhbHNlOwor
ICAgIH0KKworICAgIFBlcmZUZXN0UnVubmVyLmxvbmdlc3RSZXNwb25zaXZlbmVzc0RlbGF5ID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiBfbG9uZ2VzdFJlc3BvbnNpdmVuZXNzRGVsYXk7
CisgICAgfQogCiAgICAgUGVyZlRlc3RSdW5uZXIubWVhc3VyZVBhZ2VMb2FkVGltZSA9IGZ1bmN0
aW9uKHRlc3QpIHsKICAgICAgICAgdGVzdC5ydW4gPSBmdW5jdGlvbigpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>