<?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>120871</bug_id>
          
          <creation_ts>2013-09-06 11:44:54 -0700</creation_ts>
          <short_desc>MediaStream should fire ended event when all tracks are ended</short_desc>
          <delta_ts>2013-09-10 10:30:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BlinkMergeCandidate</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>121101</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>tommyw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>925747</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-06 11:44:54 -0700</bug_when>
    <thetext>Consider merging https://chromium.googlesource.com/chromium/blink/+/bebd179b65be69e46f2f434a3ec8b1e4aa85cc42

MediaStream should fire ended event when all tracks are ended</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925853</commentid>
    <comment_count>1</comment_count>
      <attachid>210799</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-06 14:14:57 -0700</bug_when>
    <thetext>Created attachment 210799
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925857</commentid>
    <comment_count>2</comment_count>
      <attachid>210800</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-06 14:33:27 -0700</bug_when>
    <thetext>Created attachment 210800
Updated patch, this time without already-landed-changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925861</commentid>
    <comment_count>3</comment_count>
      <attachid>210802</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-06 14:55:59 -0700</bug_when>
    <thetext>Created attachment 210802
Patch that causes fewer regressions, AND with a complete ChangeLog!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925920</commentid>
    <comment_count>4</comment_count>
      <attachid>210817</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-06 16:51:20 -0700</bug_when>
    <thetext>Created attachment 210817
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>925943</commentid>
    <comment_count>5</comment_count>
      <attachid>210817</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-09-06 17:52:31 -0700</bug_when>
    <thetext>Comment on attachment 210817
Updated patch

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

r=me, with nit:

&gt; Source/WebCore/ChangeLog:4
&gt; +        MediaStream should fire ended event when all tracks are ended
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=120871

This should include a line stating that this is a blink merge, and include the URL to the blink commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926186</commentid>
    <comment_count>6</comment_count>
      <attachid>210817</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-07 08:34:26 -0700</bug_when>
    <thetext>Comment on attachment 210817
Updated patch

(In reply to comment #5)
&gt; (From update of attachment 210817 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=210817&amp;action=review
&gt; 
&gt; r=me, with nit:
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:4
&gt; &gt; +        MediaStream should fire ended event when all tracks are ended
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=120871
&gt; 
&gt; This should include a line stating that this is a blink merge, and include the URL to the blink commit.

Oops, good point. 

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>926187</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-07 08:34:52 -0700</bug_when>
    <thetext>Committed r155249: https://trac.webkit.org/r155249</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210799</attachid>
            <date>2013-09-06 14:14:57 -0700</date>
            <delta_ts>2013-09-06 14:33:27 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>ended_event_patch_1.txt</filename>
            <type>text/plain</type>
            <size>14942</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTIxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA5LTA2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIHNo
b3VsZCBmaXJlIGVuZGVkIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDg3MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjp0
cmFja0VuZGVkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzb3VyY2VDaGFuZ2VkU3Rh
dGUpOiBDYWxsIGRpZEVuZFRyYWNrIHdoZW4gc3RhdGUgY2hhbmdlcyB0byBSZWFkeVN0YXRlRW5k
ZWQuIAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6ZGlkRW5kVHJhY2spOiBO
ZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzdG9wKTogQ2FsbCBkaWRF
bmRUcmFjay4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRGVzY3JpcHRv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpNZWRpYVN0cmVh
bURlc2NyaXB0b3IpOiBSZXF1aXJlIGRpZEVuZFRyYWNrLgorCiAyMDEzLTA5LTA2ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbmV3IFJlbmRlckJsb2NrRmxv
dyBjbGFzcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uY3BwCShyZXZpc2lvbiAxNTUwNTQpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIx
LDYgKzIyMSwxOSBAQCBNZWRpYVN0cmVhbVRyYWNrKiBNZWRpYVN0cmVhbTo6Z2V0VHJhY2tCCiAg
ICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW06OnRyYWNrRW5kZWQoKQoreworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hdWRpb1RyYWNrcy5zaXplKCk7ICsraSkKKyAgICAg
ICAgaWYgKCFtX2F1ZGlvVHJhY2tzW2ldLT5lbmRlZCgpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92aWRlb1RyYWNrcy5zaXplKCk7ICsr
aSkKKyAgICAgICAgaWYgKCFtX3ZpZGVvVHJhY2tzW2ldLT5lbmRlZCgpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgIAorICAgIHN0cmVhbUVuZGVkKCk7Cit9CisKIHZvaWQgTWVkaWFTdHJlYW06
OnN0cmVhbUVuZGVkKCkKIHsKICAgICBpZiAoZW5kZWQoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlzaW9uIDE1NTA1
NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAko
d29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJ
QlVURV9FVkVOVF9MSVNURU5FUihyZW1vdmV0cmFjayk7CiAKICAgICAvLyBNZWRpYVN0cmVhbURl
c2NyaXB0b3JDbGllbnQKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmRlZCgpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1FbmRlZCgpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBi
b29sIGlzTG9jYWwoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CShyZXZpc2lvbiAxNTUwNTQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsMTAgKzEzNSwyMCBA
QCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnNvdXJjZUNoYW5nZWRTdGF0CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVFbmRlZDoKICAgICAgICAg
ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRlZEV2ZW50LCBmYWxz
ZSwgZmFsc2UpKTsKKyAgICAgICAgZGlkRW5kVHJhY2soKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmRpZEVuZFRyYWNrKCkKK3sKKyAgICBNZWRp
YVN0cmVhbURlc2NyaXB0b3JDbGllbnQqIGNsaWVudCA9IG1fY29tcG9uZW50LT5zdHJlYW0oKS0+
Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBj
bGllbnQtPnRyYWNrRW5kZWQoKTsKK30KKwogTWVkaWFTdHJlYW1Db21wb25lbnQqIE1lZGlhU3Ry
ZWFtVHJhY2s6OmNvbXBvbmVudCgpCiB7CiAgICAgcmV0dXJuIG1fY29tcG9uZW50LmdldCgpOwpA
QCAtMTQ3LDYgKzE1Nyw3IEBAIE1lZGlhU3RyZWFtQ29tcG9uZW50KiBNZWRpYVN0cmVhbVRyYWNr
OjoKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c3RvcCgpCiB7CiAgICAgbV9zdG9wcGVkID0gdHJ1
ZTsKKyAgICBkaWRFbmRUcmFjaygpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU3Ry
ZWFtVHJhY2s6OmludGVyZmFjZU5hbWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlzaW9u
IDE1NTA1NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICBi
b29sIGVuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCk7CiAKKyAgICB2
b2lkIGRpZEVuZFRyYWNrKCk7CisgICAgCiAgICAgU3RyaW5nIHJlYWR5U3RhdGUoKSBjb25zdDsK
IAogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobXV0ZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbURlc2NyaXB0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbURlc2NyaXB0b3IuaAkocmV2aXNpb24gMTU1MDU0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yQ2xpZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbURlc2NyaXB0b3JDbGllbnQoKSB7IH0KIAor
ICAgIHZpcnR1YWwgdm9pZCB0cmFja0VuZGVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdHJl
YW1FbmRlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkUmVtb3RlVHJhY2soTWVkaWFTdHJl
YW1Db21wb25lbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVJlbW90ZVRyYWNrKE1l
ZGlhU3RyZWFtQ29tcG9uZW50KikgPSAwOwpAQCAtMTA5LDkgKzExMCw2IEBAIHByaXZhdGU6CiAK
ICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2aWRlb1NvdXJjZXMuc2l6ZSgpOyBpKysp
CiAgICAgICAgICAgICBtX3ZpZGVvQ29tcG9uZW50cy5hcHBlbmQoTWVkaWFTdHJlYW1Db21wb25l
bnQ6OmNyZWF0ZSh0aGlzLCB2aWRlb1NvdXJjZXNbaV0pKTsKLQotICAgICAgICBpZiAoIWF1ZGlv
U291cmNlcy5zaXplKCkgJiYgIXZpZGVvU291cmNlcy5zaXplKCkpCi0gICAgICAgICAgICBtX2Vu
ZGVkID0gdHJ1ZTsKICAgICB9CiAKICAgICBNZWRpYVN0cmVhbURlc2NyaXB0b3IoY29uc3QgU3Ry
aW5nJiBpZCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRWZWN0b3ImIGF1ZGlvQ29tcG9uZW50
cywgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRWZWN0b3ImIHZpZGVvQ29tcG9uZW50cykKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTUyMTEpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAx
My0wOS0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAg
ICBNZWRpYVN0cmVhbSBzaG91bGQgZmlyZSBlbmRlZCBldmVudCB3aGVuIGFsbCB0cmFja3MgYXJl
IGVuZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjA4NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0b3It
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25z
dHJ1Y3Rvci5odG1sOgorCiAyMDEzLTA5LTA2ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2YWxpZGF0aW9uIGhlYWRlciBibGFja2xpc3Rpbmcgc2hvdWxkIGJl
IGNhc2UtaW5zZW5zaXRpdmUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLW9uZW5kZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLW9uZW5k
ZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIE1l
ZGlhU3RyZWFtOjpvbmVuZGVkIGNhbGxiYWNrLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBzdHJlYW0uZW5kZWQgaXMgZmFsc2UKK1BBU1Mgc3RyZWFtRW5kZWQgd2FzIGNh
bGxlZC4KK1BBU1Mgc3RyZWFtLmVuZGVkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLW9uZW5kZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLW9uZW5kZWQuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgTWVkaWFTdHJlYW06Om9uZW5kZWQgY2Fs
bGJhY2suIik7CisKK2Z1bmN0aW9uIGVycm9yKCkgeworICAgIHRlc3RGYWlsZWQoJ1N0cmVhbSBn
ZW5lcmF0aW9uIGZhaWxlZC4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24g
Z2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrKSB7CisgICAgdHJ5IHsKKyAgICAgICAg
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaywgZXJyb3Ip
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1l
ZGlhIHRocmV3IGV4Y2VwdGlvbiA6JyArIGUpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9Cit9CisKK3ZhciBzdHJlYW07CisKK2Z1bmN0aW9uIHN0cmVhbUVuZGVkKCkgeworICAgIHRl
c3RQYXNzZWQoJ3N0cmVhbUVuZGVkIHdhcyBjYWxsZWQuJyk7CisgICAgc2hvdWxkQmVUcnVlKCdz
dHJlYW0uZW5kZWQnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gZ290U3Ry
ZWFtKHMpIHsKKyAgICBzdHJlYW0gPSBuZXcgd2Via2l0TWVkaWFTdHJlYW0ocyk7CisgICAgc2hv
dWxkQmVGYWxzZSgnc3RyZWFtLmVuZGVkJyk7CisgICAgdHJ5IHsKKyAgICAgICAgc3RyZWFtLm9u
ZW5kZWQgPSBzdHJlYW1FbmRlZDsKKyAgICAgICAgcy5zdG9wKCk7CisgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICB0ZXN0RmFpbGVkKCdMb2NhbE1lZGlhU3RyZWFtIHRocmV3IGV4Y2VwdGlvbiA6
JyArIGUpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9CisKK2dldFVzZXJNZWRp
YSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbSk7CisKK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtQ29uc3RydWN0b3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDE1NTA1NCkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Db25zdHJ1Y3Rvci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcg
KzIxLDYgQEAgUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBkZWZpbmVkLgogUEFTUyBuZXdT
dHJlYW0uY29uc3RydWN0b3IubmFtZSBpcyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5n
ZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFtLmdldFZpZGVv
VHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRlbwotUEFTUyBuZXdTdHJlYW0uZW5kZWQgaXMgdHJ1ZQog
UEFTUyBjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCkgaXMgdHJ1ZQogUEFTUyBTdHJlYW0g
Y29uc3RydWN0ZWQKIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgbm9uLW51bGwuCkBAIC0y
OSw3ICsyOCw2IEBAIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5lZC4KIFBBU1Mg
bmV3U3RyZWFtLmNvbnN0cnVjdG9yLm5hbWUgaXMgJ01lZGlhU3RyZWFtJwogUEFTUyBuZXdTdHJl
YW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgbkF1ZGlvCiBQQVNTIG5ld1N0cmVhbS5nZXRW
aWRlb1RyYWNrcygpLmxlbmd0aCBpcyBuVmlkZW8KLVBBU1MgbmV3U3RyZWFtLmVuZGVkIGlzIHRy
dWUKIFBBU1MgY2hlY2tJZEF0dHJpYnV0ZShuZXdTdHJlYW0uaWQpIGlzIHRydWUKIFBBU1MgU3Ry
ZWFtIGNvbnN0cnVjdGVkCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIG5vbi1udWxsLgpA
QCAtMzcsNyArMzUsNiBAQCBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIGRlZmluZWQuCiBQ
QVNTIG5ld1N0cmVhbS5jb25zdHJ1Y3Rvci5uYW1lIGlzICdNZWRpYVN0cmVhbScKIFBBU1MgbmV3
U3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIG5BdWRpbwogUEFTUyBuZXdTdHJlYW0u
Z2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgblZpZGVvCi1QQVNTIG5ld1N0cmVhbS5lbmRlZCBp
cyBmYWxzZQogUEFTUyBjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCkgaXMgdHJ1ZQogUEFT
UyBTdHJlYW0gY29uc3RydWN0ZWQKIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgbm9uLW51
bGwuCkBAIC00NSw3ICs0Miw2IEBAIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5l
ZC4KIFBBU1MgbmV3U3RyZWFtLmNvbnN0cnVjdG9yLm5hbWUgaXMgJ01lZGlhU3RyZWFtJwogUEFT
UyBuZXdTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgbkF1ZGlvCiBQQVNTIG5ld1N0
cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyBuVmlkZW8KLVBBU1MgbmV3U3RyZWFtLmVu
ZGVkIGlzIGZhbHNlCiBQQVNTIGNoZWNrSWRBdHRyaWJ1dGUobmV3U3RyZWFtLmlkKSBpcyB0cnVl
CiBQQVNTIFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBu
b24tbnVsbC4KQEAgLTUzLDcgKzQ5LDYgQEAgUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBk
ZWZpbmVkLgogUEFTUyBuZXdTdHJlYW0uY29uc3RydWN0b3IubmFtZSBpcyAnTWVkaWFTdHJlYW0n
CiBQQVNTIG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyBuQXVkaW8KIFBBU1Mg
bmV3U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRlbwotUEFTUyBuZXdTdHJl
YW0uZW5kZWQgaXMgZmFsc2UKIFBBU1MgY2hlY2tJZEF0dHJpYnV0ZShuZXdTdHJlYW0uaWQpIGlz
IHRydWUKIFBBU1MgU3RyZWFtIGNvbnN0cnVjdGVkCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1d
IGlzIG5vbi1udWxsLgpAQCAtNjEsNyArNTYsNiBAQCBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1d
IGlzIGRlZmluZWQuCiBQQVNTIG5ld1N0cmVhbS5jb25zdHJ1Y3Rvci5uYW1lIGlzICdNZWRpYVN0
cmVhbScKIFBBU1MgbmV3U3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIG5BdWRpbwog
UEFTUyBuZXdTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgblZpZGVvCi1QQVNTIG5l
d1N0cmVhbS5lbmRlZCBpcyBmYWxzZQogUEFTUyBjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVhbS5p
ZCkgaXMgdHJ1ZQogUEFTUyBTdHJlYW0gY29uc3RydWN0ZWQKIFBBU1MgW29iamVjdCBNZWRpYVN0
cmVhbV0gaXMgbm9uLW51bGwuCkBAIC02OSw3ICs2Myw2IEBAIFBBU1MgW29iamVjdCBNZWRpYVN0
cmVhbV0gaXMgZGVmaW5lZC4KIFBBU1MgbmV3U3RyZWFtLmNvbnN0cnVjdG9yLm5hbWUgaXMgJ01l
ZGlhU3RyZWFtJwogUEFTUyBuZXdTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgbkF1
ZGlvCiBQQVNTIG5ld1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyBuVmlkZW8KLVBB
U1MgbmV3U3RyZWFtLmVuZGVkIGlzIGZhbHNlCiBQQVNTIGNoZWNrSWRBdHRyaWJ1dGUobmV3U3Ry
ZWFtLmlkKSBpcyB0cnVlCiBQQVNTIFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFTUyBbb2JqZWN0IE1l
ZGlhU3RyZWFtXSBpcyBub24tbnVsbC4KQEAgLTc3LDcgKzcwLDYgQEAgUEFTUyBbb2JqZWN0IE1l
ZGlhU3RyZWFtXSBpcyBkZWZpbmVkLgogUEFTUyBuZXdTdHJlYW0uY29uc3RydWN0b3IubmFtZSBp
cyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBp
cyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRl
bwotUEFTUyBuZXdTdHJlYW0uZW5kZWQgaXMgdHJ1ZQogUEFTUyBjaGVja0lkQXR0cmlidXRlKG5l
d1N0cmVhbS5pZCkgaXMgdHJ1ZQogUEFTUyBTdHJlYW0gY29uc3RydWN0ZWQKIFBBU1MgW29iamVj
dCBNZWRpYVN0cmVhbV0gaXMgbm9uLW51bGwuCkBAIC04NSw3ICs3Nyw2IEBAIFBBU1MgW29iamVj
dCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5lZC4KIFBBU1MgbmV3U3RyZWFtLmNvbnN0cnVjdG9yLm5h
bWUgaXMgJ01lZGlhU3RyZWFtJwogUEFTUyBuZXdTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5n
dGggaXMgbkF1ZGlvCiBQQVNTIG5ld1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyBu
VmlkZW8KLVBBU1MgbmV3U3RyZWFtLmVuZGVkIGlzIHRydWUKIFBBU1MgY2hlY2tJZEF0dHJpYnV0
ZShuZXdTdHJlYW0uaWQpIGlzIHRydWUKIFBBU1MgU3RyZWFtIGNvbnN0cnVjdGVkCiBQQVNTIFtv
YmplY3QgTWVkaWFTdHJlYW1dIGlzIG5vbi1udWxsLgpAQCAtOTMsNyArODQsNiBAQCBQQVNTIFtv
YmplY3QgTWVkaWFTdHJlYW1dIGlzIGRlZmluZWQuCiBQQVNTIG5ld1N0cmVhbS5jb25zdHJ1Y3Rv
ci5uYW1lIGlzICdNZWRpYVN0cmVhbScKIFBBU1MgbmV3U3RyZWFtLmdldEF1ZGlvVHJhY2tzKCku
bGVuZ3RoIGlzIG5BdWRpbwogUEFTUyBuZXdTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgg
aXMgblZpZGVvCi1QQVNTIG5ld1N0cmVhbS5lbmRlZCBpcyB0cnVlCiBQQVNTIGNoZWNrSWRBdHRy
aWJ1dGUobmV3U3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNTIFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFT
UyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBub24tbnVsbC4KQEAgLTEwMSw3ICs5MSw2IEBAIFBB
U1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5lZC4KIFBBU1MgbmV3U3RyZWFtLmNvbnN0
cnVjdG9yLm5hbWUgaXMgJ01lZGlhU3RyZWFtJwogUEFTUyBuZXdTdHJlYW0uZ2V0QXVkaW9UcmFj
a3MoKS5sZW5ndGggaXMgbkF1ZGlvCiBQQVNTIG5ld1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxl
bmd0aCBpcyBuVmlkZW8KLVBBU1MgbmV3U3RyZWFtLmVuZGVkIGlzIHRydWUKIFBBU1MgY2hlY2tJ
ZEF0dHJpYnV0ZShuZXdTdHJlYW0uaWQpIGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bUNvbnN0cnVjdG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9yLmh0bWwJKHJldmlzaW9uIDE1NTA1NCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC03NiwyMSArNzYsMjEgQEAgZnVuY3Rpb24gdGVzdENvbnN0cnVjdG9y
KHMpIHsKICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKG51bGwpJyk7CiAg
ICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbSh1bmRlZmluZWQpJyk7CiAKLSAg
ICB2ZXJpZnlTdHJlYW0obmV3IHdlYmtpdE1lZGlhU3RyZWFtKCksIDAsIDAsIHRydWUpOwotICAg
IHZlcmlmeVN0cmVhbShuZXcgd2Via2l0TWVkaWFTdHJlYW0oW10pLCAwLCAwLCB0cnVlKTsKKyAg
ICB2ZXJpZnlTdHJlYW0obmV3IHdlYmtpdE1lZGlhU3RyZWFtKCksIDAsIDApOworICAgIHZlcmlm
eVN0cmVhbShuZXcgd2Via2l0TWVkaWFTdHJlYW0oW10pLCAwLCAwKTsKIAotICAgIHZlcmlmeVN0
cmVhbShuZXcgd2Via2l0TWVkaWFTdHJlYW0ocyksIHMuZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgs
IHMuZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgsIGZhbHNlKTsKKyAgICB2ZXJpZnlTdHJlYW0obmV3
IHdlYmtpdE1lZGlhU3RyZWFtKHMpLCBzLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoLCBzLmdldFZp
ZGVvVHJhY2tzKCkubGVuZ3RoKTsKIAotICAgIHZlcmlmeVN0cmVhbShuZXcgd2Via2l0TWVkaWFT
dHJlYW0oW3MuZ2V0QXVkaW9UcmFja3MoKVswXV0pLCAxLCAwLCBmYWxzZSk7Ci0gICAgdmVyaWZ5
U3RyZWFtKG5ldyB3ZWJraXRNZWRpYVN0cmVhbShbcy5nZXRWaWRlb1RyYWNrcygpWzBdXSksIDAs
IDEsIGZhbHNlKTsKLSAgICB2ZXJpZnlTdHJlYW0obmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzLmdl
dEF1ZGlvVHJhY2tzKClbMF0sIHMuZ2V0VmlkZW9UcmFja3MoKVswXV0pLCAxLCAxLCBmYWxzZSk7
Ci0gICAgdmVyaWZ5U3RyZWFtKG5ldyB3ZWJraXRNZWRpYVN0cmVhbShbcy5nZXRWaWRlb1RyYWNr
cygpWzBdLCBzLmdldEF1ZGlvVHJhY2tzKClbMF0sIHMuZ2V0VmlkZW9UcmFja3MoKVswXV0pLCAx
LCAxLCBmYWxzZSk7CisgICAgdmVyaWZ5U3RyZWFtKG5ldyB3ZWJraXRNZWRpYVN0cmVhbShbcy5n
ZXRBdWRpb1RyYWNrcygpWzBdXSksIDEsIDApOworICAgIHZlcmlmeVN0cmVhbShuZXcgd2Via2l0
TWVkaWFTdHJlYW0oW3MuZ2V0VmlkZW9UcmFja3MoKVswXV0pLCAwLCAxKTsKKyAgICB2ZXJpZnlT
dHJlYW0obmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzLmdldEF1ZGlvVHJhY2tzKClbMF0sIHMuZ2V0
VmlkZW9UcmFja3MoKVswXV0pLCAxLCAxKTsKKyAgICB2ZXJpZnlTdHJlYW0obmV3IHdlYmtpdE1l
ZGlhU3RyZWFtKFtzLmdldFZpZGVvVHJhY2tzKClbMF0sIHMuZ2V0QXVkaW9UcmFja3MoKVswXSwg
cy5nZXRWaWRlb1RyYWNrcygpWzBdXSksIDEsIDEpOwogCiAgICAgcy5vbmVuZGVkID0gZnVuY3Rp
b24gKCkgewotICAgICAgICB2ZXJpZnlTdHJlYW0obmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzLmdl
dEF1ZGlvVHJhY2tzKClbMF1dKSwgMCwgMCwgdHJ1ZSk7Ci0gICAgICAgIHZlcmlmeVN0cmVhbShu
ZXcgd2Via2l0TWVkaWFTdHJlYW0oW3MuZ2V0VmlkZW9UcmFja3MoKVswXV0pLCAwLCAwLCB0cnVl
KTsKLSAgICAgICAgdmVyaWZ5U3RyZWFtKG5ldyB3ZWJraXRNZWRpYVN0cmVhbShbcy5nZXRBdWRp
b1RyYWNrcygpWzBdLCBzLmdldFZpZGVvVHJhY2tzKClbMF1dKSwgMCwgMCwgdHJ1ZSk7Ci0gICAg
ICAgIHZlcmlmeVN0cmVhbShuZXcgd2Via2l0TWVkaWFTdHJlYW0ocyksIDAsIDAsIHRydWUpOwor
ICAgICAgICB2ZXJpZnlTdHJlYW0obmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzLmdldEF1ZGlvVHJh
Y2tzKClbMF1dKSwgMCwgMCk7CisgICAgICAgIHZlcmlmeVN0cmVhbShuZXcgd2Via2l0TWVkaWFT
dHJlYW0oW3MuZ2V0VmlkZW9UcmFja3MoKVswXV0pLCAwLCAwKTsKKyAgICAgICAgdmVyaWZ5U3Ry
ZWFtKG5ldyB3ZWJraXRNZWRpYVN0cmVhbShbcy5nZXRBdWRpb1RyYWNrcygpWzBdLCBzLmdldFZp
ZGVvVHJhY2tzKClbMF1dKSwgMCwgMCk7CisgICAgICAgIHZlcmlmeVN0cmVhbShuZXcgd2Via2l0
TWVkaWFTdHJlYW0ocyksIDAsIDApOwogCiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH07
CkBAIC05OCw3ICs5OCw3IEBAIGZ1bmN0aW9uIHRlc3RDb25zdHJ1Y3RvcihzKSB7CiAgICAgcy5z
dG9wKCk7CiB9CiAKLWZ1bmN0aW9uIHZlcmlmeVN0cmVhbShzLCBudW1BdWRpb1RyYWNrcywgbnVt
VmlkZW9UcmFja3MsIGVuZGVkKSB7CitmdW5jdGlvbiB2ZXJpZnlTdHJlYW0ocywgbnVtQXVkaW9U
cmFja3MsIG51bVZpZGVvVHJhY2tzKSB7CiAgICAgbmV3U3RyZWFtID0gczsKICAgICBuQXVkaW8g
PSBudW1BdWRpb1RyYWNrczsKICAgICBuVmlkZW8gPSBudW1WaWRlb1RyYWNrczsKQEAgLTExMCwx
MSArMTEwLDYgQEAgZnVuY3Rpb24gdmVyaWZ5U3RyZWFtKHMsIG51bUF1ZGlvVHJhY2tzLAogICAg
IHNob3VsZEJlKCduZXdTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnbkF1ZGlvJyk7
CiAgICAgc2hvdWxkQmUoJ25ld1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICduVmlk
ZW8nKTsKIAotICAgIGlmIChlbmRlZCkKLSAgICAgICAgc2hvdWxkQmVUcnVlKCduZXdTdHJlYW0u
ZW5kZWQnKTsKLSAgICBlbHNlCi0gICAgICAgIHNob3VsZEJlRmFsc2UoJ25ld1N0cmVhbS5lbmRl
ZCcpOwotCiAgICAgc2hvdWxkQmVUcnVlKCdjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCkn
KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210800</attachid>
            <date>2013-09-06 14:33:27 -0700</date>
            <delta_ts>2013-09-06 14:55:59 -0700</delta_ts>
            <desc>Updated patch, this time without already-landed-changes</desc>
            <filename>ended_event_patch_2.txt</filename>
            <type>text/plain</type>
            <size>11953</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTIxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA5LTA2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIHNo
b3VsZCBmaXJlIGVuZGVkIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDg3MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjp0
cmFja0VuZGVkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzb3VyY2VDaGFuZ2VkU3Rh
dGUpOiBDYWxsIGRpZEVuZFRyYWNrIHdoZW4gc3RhdGUgY2hhbmdlcyB0byBSZWFkeVN0YXRlRW5k
ZWQuIAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6ZGlkRW5kVHJhY2spOiBO
ZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzdG9wKTogQ2FsbCBkaWRF
bmRUcmFjay4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRGVzY3JpcHRv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpNZWRpYVN0cmVh
bURlc2NyaXB0b3IpOiBSZXF1aXJlIGRpZEVuZFRyYWNrLgorCiAyMDEzLTA5LTA2ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbmV3IFJlbmRlckJsb2NrRmxv
dyBjbGFzcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uY3BwCShyZXZpc2lvbiAxNTUwNTQpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIx
LDYgKzIyMSwxOSBAQCBNZWRpYVN0cmVhbVRyYWNrKiBNZWRpYVN0cmVhbTo6Z2V0VHJhY2tCCiAg
ICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW06OnRyYWNrRW5kZWQoKQoreworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hdWRpb1RyYWNrcy5zaXplKCk7ICsraSkKKyAgICAg
ICAgaWYgKCFtX2F1ZGlvVHJhY2tzW2ldLT5lbmRlZCgpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92aWRlb1RyYWNrcy5zaXplKCk7ICsr
aSkKKyAgICAgICAgaWYgKCFtX3ZpZGVvVHJhY2tzW2ldLT5lbmRlZCgpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgIAorICAgIHN0cmVhbUVuZGVkKCk7Cit9CisKIHZvaWQgTWVkaWFTdHJlYW06
OnN0cmVhbUVuZGVkKCkKIHsKICAgICBpZiAoZW5kZWQoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlzaW9uIDE1NTA1
NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAko
d29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJ
QlVURV9FVkVOVF9MSVNURU5FUihyZW1vdmV0cmFjayk7CiAKICAgICAvLyBNZWRpYVN0cmVhbURl
c2NyaXB0b3JDbGllbnQKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmRlZCgpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1FbmRlZCgpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBi
b29sIGlzTG9jYWwoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CShyZXZpc2lvbiAxNTUwNTQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsMTAgKzEzNSwyMCBA
QCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnNvdXJjZUNoYW5nZWRTdGF0CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVFbmRlZDoKICAgICAgICAg
ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRlZEV2ZW50LCBmYWxz
ZSwgZmFsc2UpKTsKKyAgICAgICAgZGlkRW5kVHJhY2soKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmRpZEVuZFRyYWNrKCkKK3sKKyAgICBNZWRp
YVN0cmVhbURlc2NyaXB0b3JDbGllbnQqIGNsaWVudCA9IG1fY29tcG9uZW50LT5zdHJlYW0oKS0+
Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBj
bGllbnQtPnRyYWNrRW5kZWQoKTsKK30KKwogTWVkaWFTdHJlYW1Db21wb25lbnQqIE1lZGlhU3Ry
ZWFtVHJhY2s6OmNvbXBvbmVudCgpCiB7CiAgICAgcmV0dXJuIG1fY29tcG9uZW50LmdldCgpOwpA
QCAtMTQ3LDYgKzE1Nyw3IEBAIE1lZGlhU3RyZWFtQ29tcG9uZW50KiBNZWRpYVN0cmVhbVRyYWNr
OjoKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c3RvcCgpCiB7CiAgICAgbV9zdG9wcGVkID0gdHJ1
ZTsKKyAgICBkaWRFbmRUcmFjaygpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU3Ry
ZWFtVHJhY2s6OmludGVyZmFjZU5hbWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlzaW9u
IDE1NTA1NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICBi
b29sIGVuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCk7CiAKKyAgICB2
b2lkIGRpZEVuZFRyYWNrKCk7CisgICAgCiAgICAgU3RyaW5nIHJlYWR5U3RhdGUoKSBjb25zdDsK
IAogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobXV0ZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbURlc2NyaXB0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbURlc2NyaXB0b3IuaAkocmV2aXNpb24gMTU1MDU0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yQ2xpZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbURlc2NyaXB0b3JDbGllbnQoKSB7IH0KIAor
ICAgIHZpcnR1YWwgdm9pZCB0cmFja0VuZGVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdHJl
YW1FbmRlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkUmVtb3RlVHJhY2soTWVkaWFTdHJl
YW1Db21wb25lbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVJlbW90ZVRyYWNrKE1l
ZGlhU3RyZWFtQ29tcG9uZW50KikgPSAwOwpAQCAtMTA5LDkgKzExMCw2IEBAIHByaXZhdGU6CiAK
ICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2aWRlb1NvdXJjZXMuc2l6ZSgpOyBpKysp
CiAgICAgICAgICAgICBtX3ZpZGVvQ29tcG9uZW50cy5hcHBlbmQoTWVkaWFTdHJlYW1Db21wb25l
bnQ6OmNyZWF0ZSh0aGlzLCB2aWRlb1NvdXJjZXNbaV0pKTsKLQotICAgICAgICBpZiAoIWF1ZGlv
U291cmNlcy5zaXplKCkgJiYgIXZpZGVvU291cmNlcy5zaXplKCkpCi0gICAgICAgICAgICBtX2Vu
ZGVkID0gdHJ1ZTsKICAgICB9CiAKICAgICBNZWRpYVN0cmVhbURlc2NyaXB0b3IoY29uc3QgU3Ry
aW5nJiBpZCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRWZWN0b3ImIGF1ZGlvQ29tcG9uZW50
cywgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRWZWN0b3ImIHZpZGVvQ29tcG9uZW50cykKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDE1NTIxMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA5LTA2ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIHNob3VsZCBmaXJlIGVu
ZGVkIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDg3MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS1vbmVuZGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS1vbmVuZGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci1leHBlY3RlZC50eHQ6CisKIDIwMTMtMDktMDYg
IE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZhbGlkYXRpb24g
aGVhZGVyIGJsYWNrbGlzdGluZyBzaG91bGQgYmUgY2FzZS1pbnNlbnNpdGl2ZS4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS1vbmVuZGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgTWVkaWFTdHJlYW06Om9uZW5kZWQgY2FsbGJhY2su
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN0cmVhbS5lbmRlZCBpcyBm
YWxzZQorUEFTUyBzdHJlYW1FbmRlZCB3YXMgY2FsbGVkLgorUEFTUyBzdHJlYW0uZW5kZWQgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tb25lbmRlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS1vbmVuZGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0cyBNZWRpYVN0cmVhbTo6b25lbmRlZCBjYWxsYmFjay4iKTsKKworZnVuY3Rpb24gZXJyb3Io
KSB7CisgICAgdGVzdEZhaWxlZCgnU3RyZWFtIGdlbmVyYXRpb24gZmFpbGVkLicpOworICAgIGZp
bmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBnZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2Fs
bGJhY2spIHsKKyAgICB0cnkgeworICAgICAgICBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlh
KGRpY3Rpb25hcnksIGNhbGxiYWNrLCBlcnJvcik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICB0ZXN0RmFpbGVkKCd3ZWJraXRHZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30KKwordmFyIHN0cmVhbTsKKworZnVu
Y3Rpb24gc3RyZWFtRW5kZWQoKSB7CisgICAgdGVzdFBhc3NlZCgnc3RyZWFtRW5kZWQgd2FzIGNh
bGxlZC4nKTsKKyAgICBzaG91bGRCZVRydWUoJ3N0cmVhbS5lbmRlZCcpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfQorCitmdW5jdGlvbiBnb3RTdHJlYW0ocykgeworICAgIHN0cmVhbSA9IG5ldyB3
ZWJraXRNZWRpYVN0cmVhbShzKTsKKyAgICBzaG91bGRCZUZhbHNlKCdzdHJlYW0uZW5kZWQnKTsK
KyAgICB0cnkgeworICAgICAgICBzdHJlYW0ub25lbmRlZCA9IHN0cmVhbUVuZGVkOworICAgICAg
ICBzLnN0b3AoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ0xvY2Fs
TWVkaWFTdHJlYW0gdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7CisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgIH0KK30KKworZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwg
Z290U3RyZWFtKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbUNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTU1MDU0KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9yLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNiBAQCBQQVNTIFtvYmplY3QgTWVkaWFT
dHJlYW1dIGlzIGRlZmluZWQuCiBQQVNTIG5ld1N0cmVhbS5jb25zdHJ1Y3Rvci5uYW1lIGlzICdN
ZWRpYVN0cmVhbScKIFBBU1MgbmV3U3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIG5B
dWRpbwogUEFTUyBuZXdTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgblZpZGVvCi1Q
QVNTIG5ld1N0cmVhbS5lbmRlZCBpcyB0cnVlCiBQQVNTIGNoZWNrSWRBdHRyaWJ1dGUobmV3U3Ry
ZWFtLmlkKSBpcyB0cnVlCiBQQVNTIFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFTUyBbb2JqZWN0IE1l
ZGlhU3RyZWFtXSBpcyBub24tbnVsbC4KQEAgLTI5LDcgKzI4LDYgQEAgUEFTUyBbb2JqZWN0IE1l
ZGlhU3RyZWFtXSBpcyBkZWZpbmVkLgogUEFTUyBuZXdTdHJlYW0uY29uc3RydWN0b3IubmFtZSBp
cyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBp
cyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRl
bwotUEFTUyBuZXdTdHJlYW0uZW5kZWQgaXMgdHJ1ZQogUEFTUyBjaGVja0lkQXR0cmlidXRlKG5l
d1N0cmVhbS5pZCkgaXMgdHJ1ZQogUEFTUyBTdHJlYW0gY29uc3RydWN0ZWQKIFBBU1MgW29iamVj
dCBNZWRpYVN0cmVhbV0gaXMgbm9uLW51bGwuCkBAIC0zNyw3ICszNSw2IEBAIFBBU1MgW29iamVj
dCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5lZC4KIFBBU1MgbmV3U3RyZWFtLmNvbnN0cnVjdG9yLm5h
bWUgaXMgJ01lZGlhU3RyZWFtJwogUEFTUyBuZXdTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5n
dGggaXMgbkF1ZGlvCiBQQVNTIG5ld1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyBu
VmlkZW8KLVBBU1MgbmV3U3RyZWFtLmVuZGVkIGlzIGZhbHNlCiBQQVNTIGNoZWNrSWRBdHRyaWJ1
dGUobmV3U3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNTIFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFTUyBb
b2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBub24tbnVsbC4KQEAgLTQ1LDcgKzQyLDYgQEAgUEFTUyBb
b2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBkZWZpbmVkLgogUEFTUyBuZXdTdHJlYW0uY29uc3RydWN0
b3IubmFtZSBpcyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygp
Lmxlbmd0aCBpcyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3Ro
IGlzIG5WaWRlbwotUEFTUyBuZXdTdHJlYW0uZW5kZWQgaXMgZmFsc2UKIFBBU1MgY2hlY2tJZEF0
dHJpYnV0ZShuZXdTdHJlYW0uaWQpIGlzIHRydWUKIFBBU1MgU3RyZWFtIGNvbnN0cnVjdGVkCiBQ
QVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIG5vbi1udWxsLgpAQCAtNTMsNyArNDksNiBAQCBQ
QVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIGRlZmluZWQuCiBQQVNTIG5ld1N0cmVhbS5jb25z
dHJ1Y3Rvci5uYW1lIGlzICdNZWRpYVN0cmVhbScKIFBBU1MgbmV3U3RyZWFtLmdldEF1ZGlvVHJh
Y2tzKCkubGVuZ3RoIGlzIG5BdWRpbwogUEFTUyBuZXdTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5s
ZW5ndGggaXMgblZpZGVvCi1QQVNTIG5ld1N0cmVhbS5lbmRlZCBpcyBmYWxzZQogUEFTUyBjaGVj
a0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCkgaXMgdHJ1ZQogUEFTUyBTdHJlYW0gY29uc3RydWN0
ZWQKIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgbm9uLW51bGwuCkBAIC02MSw3ICs1Niw2
IEBAIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5lZC4KIFBBU1MgbmV3U3RyZWFt
LmNvbnN0cnVjdG9yLm5hbWUgaXMgJ01lZGlhU3RyZWFtJwogUEFTUyBuZXdTdHJlYW0uZ2V0QXVk
aW9UcmFja3MoKS5sZW5ndGggaXMgbkF1ZGlvCiBQQVNTIG5ld1N0cmVhbS5nZXRWaWRlb1RyYWNr
cygpLmxlbmd0aCBpcyBuVmlkZW8KLVBBU1MgbmV3U3RyZWFtLmVuZGVkIGlzIGZhbHNlCiBQQVNT
IGNoZWNrSWRBdHRyaWJ1dGUobmV3U3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNTIFN0cmVhbSBjb25z
dHJ1Y3RlZAogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBub24tbnVsbC4KQEAgLTY5LDcg
KzYzLDYgQEAgUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBkZWZpbmVkLgogUEFTUyBuZXdT
dHJlYW0uY29uc3RydWN0b3IubmFtZSBpcyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5n
ZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFtLmdldFZpZGVv
VHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRlbwotUEFTUyBuZXdTdHJlYW0uZW5kZWQgaXMgZmFsc2UK
IFBBU1MgY2hlY2tJZEF0dHJpYnV0ZShuZXdTdHJlYW0uaWQpIGlzIHRydWUKIFBBU1MgU3RyZWFt
IGNvbnN0cnVjdGVkCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIG5vbi1udWxsLgpAQCAt
NzcsNyArNzAsNiBAQCBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIGRlZmluZWQuCiBQQVNT
IG5ld1N0cmVhbS5jb25zdHJ1Y3Rvci5uYW1lIGlzICdNZWRpYVN0cmVhbScKIFBBU1MgbmV3U3Ry
ZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIG5BdWRpbwogUEFTUyBuZXdTdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgblZpZGVvCi1QQVNTIG5ld1N0cmVhbS5lbmRlZCBpcyB0
cnVlCiBQQVNTIGNoZWNrSWRBdHRyaWJ1dGUobmV3U3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNTIFN0
cmVhbSBjb25zdHJ1Y3RlZAogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBub24tbnVsbC4K
QEAgLTg1LDcgKzc3LDYgQEAgUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBkZWZpbmVkLgog
UEFTUyBuZXdTdHJlYW0uY29uc3RydWN0b3IubmFtZSBpcyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5l
d1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFt
LmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRlbwotUEFTUyBuZXdTdHJlYW0uZW5kZWQg
aXMgdHJ1ZQogUEFTUyBjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCkgaXMgdHJ1ZQogUEFT
UyBTdHJlYW0gY29uc3RydWN0ZWQKIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgbm9uLW51
bGwuCkBAIC05Myw3ICs4NCw2IEBAIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5l
ZC4KIFBBU1MgbmV3U3RyZWFtLmNvbnN0cnVjdG9yLm5hbWUgaXMgJ01lZGlhU3RyZWFtJwogUEFT
UyBuZXdTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgbkF1ZGlvCiBQQVNTIG5ld1N0
cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyBuVmlkZW8KLVBBU1MgbmV3U3RyZWFtLmVu
ZGVkIGlzIHRydWUKIFBBU1MgY2hlY2tJZEF0dHJpYnV0ZShuZXdTdHJlYW0uaWQpIGlzIHRydWUK
IFBBU1MgU3RyZWFtIGNvbnN0cnVjdGVkCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIG5v
bi1udWxsLgpAQCAtMTAxLDcgKzkxLDYgQEAgUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBk
ZWZpbmVkLgogUEFTUyBuZXdTdHJlYW0uY29uc3RydWN0b3IubmFtZSBpcyAnTWVkaWFTdHJlYW0n
CiBQQVNTIG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyBuQXVkaW8KIFBBU1Mg
bmV3U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRlbwotUEFTUyBuZXdTdHJl
YW0uZW5kZWQgaXMgdHJ1ZQogUEFTUyBjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCkgaXMg
dHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210802</attachid>
            <date>2013-09-06 14:55:59 -0700</date>
            <delta_ts>2013-09-06 16:51:20 -0700</delta_ts>
            <desc>Patch that causes fewer regressions, AND with a complete ChangeLog!</desc>
            <filename>ended_event_patch_2.txt</filename>
            <type>text/plain</type>
            <size>7795</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTIxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA5LTA2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIHNo
b3VsZCBmaXJlIGVuZGVkIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDg3MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjp0
cmFja0VuZGVkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzb3VyY2VDaGFuZ2VkU3Rh
dGUpOiBDYWxsIGRpZEVuZFRyYWNrIHdoZW4gc3RhdGUgY2hhbmdlcyB0byBSZWFkeVN0YXRlRW5k
ZWQuIAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6ZGlkRW5kVHJhY2spOiBO
ZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzdG9wKTogQ2FsbCBkaWRF
bmRUcmFjay4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRGVzY3JpcHRv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpNZWRpYVN0cmVh
bURlc2NyaXB0b3IpOiBSZXF1aXJlIGRpZEVuZFRyYWNrLgorCiAyMDEzLTA5LTA2ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbmV3IFJlbmRlckJsb2NrRmxv
dyBjbGFzcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uY3BwCShyZXZpc2lvbiAxNTUwNTQpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIx
LDYgKzIyMSwxOSBAQCBNZWRpYVN0cmVhbVRyYWNrKiBNZWRpYVN0cmVhbTo6Z2V0VHJhY2tCCiAg
ICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW06OnRyYWNrRW5kZWQoKQoreworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hdWRpb1RyYWNrcy5zaXplKCk7ICsraSkKKyAgICAg
ICAgaWYgKCFtX2F1ZGlvVHJhY2tzW2ldLT5lbmRlZCgpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92aWRlb1RyYWNrcy5zaXplKCk7ICsr
aSkKKyAgICAgICAgaWYgKCFtX3ZpZGVvVHJhY2tzW2ldLT5lbmRlZCgpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgIAorICAgIHN0cmVhbUVuZGVkKCk7Cit9CisKIHZvaWQgTWVkaWFTdHJlYW06
OnN0cmVhbUVuZGVkKCkKIHsKICAgICBpZiAoZW5kZWQoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlzaW9uIDE1NTA1
NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAko
d29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJ
QlVURV9FVkVOVF9MSVNURU5FUihyZW1vdmV0cmFjayk7CiAKICAgICAvLyBNZWRpYVN0cmVhbURl
c2NyaXB0b3JDbGllbnQKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmRlZCgpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1FbmRlZCgpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBi
b29sIGlzTG9jYWwoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CShyZXZpc2lvbiAxNTUwNTQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsMTAgKzEzNSwyMCBA
QCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnNvdXJjZUNoYW5nZWRTdGF0CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVFbmRlZDoKICAgICAgICAg
ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lbmRlZEV2ZW50LCBmYWxz
ZSwgZmFsc2UpKTsKKyAgICAgICAgZGlkRW5kVHJhY2soKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmRpZEVuZFRyYWNrKCkKK3sKKyAgICBNZWRp
YVN0cmVhbURlc2NyaXB0b3JDbGllbnQqIGNsaWVudCA9IG1fY29tcG9uZW50LT5zdHJlYW0oKS0+
Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBj
bGllbnQtPnRyYWNrRW5kZWQoKTsKK30KKwogTWVkaWFTdHJlYW1Db21wb25lbnQqIE1lZGlhU3Ry
ZWFtVHJhY2s6OmNvbXBvbmVudCgpCiB7CiAgICAgcmV0dXJuIG1fY29tcG9uZW50LmdldCgpOwpA
QCAtMTQ3LDYgKzE1Nyw3IEBAIE1lZGlhU3RyZWFtQ29tcG9uZW50KiBNZWRpYVN0cmVhbVRyYWNr
OjoKIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c3RvcCgpCiB7CiAgICAgbV9zdG9wcGVkID0gdHJ1
ZTsKKyAgICBkaWRFbmRUcmFjaygpOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhU3Ry
ZWFtVHJhY2s6OmludGVyZmFjZU5hbWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlzaW9u
IDE1NTA1NCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICBi
b29sIGVuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCk7CiAKKyAgICB2
b2lkIGRpZEVuZFRyYWNrKCk7CisgICAgCiAgICAgU3RyaW5nIHJlYWR5U3RhdGUoKSBjb25zdDsK
IAogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIobXV0ZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbURlc2NyaXB0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbURlc2NyaXB0b3IuaAkocmV2aXNpb24gMTU1MDU0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yQ2xpZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbURlc2NyaXB0b3JDbGllbnQoKSB7IH0KIAor
ICAgIHZpcnR1YWwgdm9pZCB0cmFja0VuZGVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdHJl
YW1FbmRlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkUmVtb3RlVHJhY2soTWVkaWFTdHJl
YW1Db21wb25lbnQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVJlbW90ZVRyYWNrKE1l
ZGlhU3RyZWFtQ29tcG9uZW50KikgPSAwOwpAQCAtMTA5LDkgKzExMCw2IEBAIHByaXZhdGU6CiAK
ICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2aWRlb1NvdXJjZXMuc2l6ZSgpOyBpKysp
CiAgICAgICAgICAgICBtX3ZpZGVvQ29tcG9uZW50cy5hcHBlbmQoTWVkaWFTdHJlYW1Db21wb25l
bnQ6OmNyZWF0ZSh0aGlzLCB2aWRlb1NvdXJjZXNbaV0pKTsKLQotICAgICAgICBpZiAoIWF1ZGlv
U291cmNlcy5zaXplKCkgJiYgIXZpZGVvU291cmNlcy5zaXplKCkpCi0gICAgICAgICAgICBtX2Vu
ZGVkID0gdHJ1ZTsKICAgICB9CiAKICAgICBNZWRpYVN0cmVhbURlc2NyaXB0b3IoY29uc3QgU3Ry
aW5nJiBpZCwgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRWZWN0b3ImIGF1ZGlvQ29tcG9uZW50
cywgY29uc3QgTWVkaWFTdHJlYW1Db21wb25lbnRWZWN0b3ImIHZpZGVvQ29tcG9uZW50cykKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDE1NTIxNCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTA5LTA2ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIHNob3VsZCBmaXJlIGVu
ZGVkIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDg3MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS1vbmVuZGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS1vbmVuZGVkLmh0bWw6IEFkZGVkLgorCiAyMDEzLTA5LTA2ICBNaWtlIFdl
c3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2YWxpZGF0aW9uIGhlYWRlciBi
bGFja2xpc3Rpbmcgc2hvdWxkIGJlIGNhc2UtaW5zZW5zaXRpdmUuCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLW9uZW5kZWQtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRl
ZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLW9uZW5kZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RzIE1lZGlhU3RyZWFtOjpvbmVuZGVkIGNhbGxiYWNrLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdHJlYW0uZW5kZWQgaXMgZmFsc2UKK1BB
U1Mgc3RyZWFtRW5kZWQgd2FzIGNhbGxlZC4KK1BBU1Mgc3RyZWFtLmVuZGVkIGlzIHRydWUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLW9uZW5kZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLW9uZW5k
ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0tb25lbmRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgTWVk
aWFTdHJlYW06Om9uZW5kZWQgY2FsbGJhY2suIik7CisKK2Z1bmN0aW9uIGVycm9yKCkgeworICAg
IHRlc3RGYWlsZWQoJ1N0cmVhbSBnZW5lcmF0aW9uIGZhaWxlZC4nKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKworZnVuY3Rpb24gZ2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrKSB7
CisgICAgdHJ5IHsKKyAgICAgICAgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShkaWN0aW9u
YXJ5LCBjYWxsYmFjaywgZXJyb3IpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZh
aWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRocmV3IGV4Y2VwdGlvbiA6JyArIGUpOworICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9CisKK3ZhciBzdHJlYW07CisKK2Z1bmN0aW9uIHN0
cmVhbUVuZGVkKCkgeworICAgIHRlc3RQYXNzZWQoJ3N0cmVhbUVuZGVkIHdhcyBjYWxsZWQuJyk7
CisgICAgc2hvdWxkQmVUcnVlKCdzdHJlYW0uZW5kZWQnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKworZnVuY3Rpb24gZ290U3RyZWFtKHMpIHsKKyAgICBzdHJlYW0gPSBuZXcgd2Via2l0TWVk
aWFTdHJlYW0ocyk7CisgICAgc2hvdWxkQmVGYWxzZSgnc3RyZWFtLmVuZGVkJyk7CisgICAgdHJ5
IHsKKyAgICAgICAgc3RyZWFtLm9uZW5kZWQgPSBzdHJlYW1FbmRlZDsKKyAgICAgICAgcy5zdG9w
KCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCdMb2NhbE1lZGlhU3Ry
ZWFtIHRocmV3IGV4Y2VwdGlvbiA6JyArIGUpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9Cit9CisKK2dldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVh
bSk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210817</attachid>
            <date>2013-09-06 16:51:20 -0700</date>
            <delta_ts>2013-09-07 08:34:25 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>ended_event_patch_3.txt</filename>
            <type>text/plain</type>
            <size>7370</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTIyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA5LTA2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIHNo
b3VsZCBmaXJlIGVuZGVkIGV2ZW50IHdoZW4gYWxsIHRyYWNrcyBhcmUgZW5kZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDg3MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjp0
cmFja0VuZGVkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzb3VyY2VDaGFuZ2VkU3Rh
dGUpOiBDYWxsIGRpZEVuZFRyYWNrIHdoZW4gc3RhdGUgY2hhbmdlcyB0byBSZWFkeVN0YXRlRW5k
ZWQuIAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6ZGlkRW5kVHJhY2spOiBO
ZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpzdG9wKTogQ2FsbCBkaWRF
bmRUcmFjay4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRGVzY3JpcHRv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1EZXNjcmlwdG9yOjpNZWRpYVN0cmVh
bURlc2NyaXB0b3IpOiBSZXF1aXJlIGRpZEVuZFRyYWNrLgorCiAyMDEzLTA5LTA2ICBBbmRlcnMg
Q2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGZhc3ROZXcv
ZmFzdERlbGV0ZQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHAJKHJldmlzaW9uIDE1NTIxNykKKysrIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjEsNiArMjIxLDE5IEBAIE1lZGlhU3RyZWFtVHJhY2sqIE1lZGlhU3RyZWFtOjpnZXRUcmFja0IK
ICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBNZWRpYVN0cmVhbTo6dHJhY2tFbmRlZCgpCit7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2F1ZGlvVHJhY2tzLnNpemUoKTsgKytpKQorICAg
ICAgICBpZiAoIW1fYXVkaW9UcmFja3NbaV0tPmVuZGVkKCkpCisgICAgICAgICAgICByZXR1cm47
CisgICAgCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3ZpZGVvVHJhY2tzLnNpemUoKTsg
KytpKQorICAgICAgICBpZiAoIW1fdmlkZW9UcmFja3NbaV0tPmVuZGVkKCkpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgCisgICAgc3RyZWFtRW5kZWQoKTsKK30KKwogdm9pZCBNZWRpYVN0cmVh
bTo6c3RyZWFtRW5kZWQoKQogewogICAgIGlmIChlbmRlZCgpKQpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAkocmV2aXNpb24gMTU1
MjE3KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICBERUZJTkVfQVRU
UklCVVRFX0VWRU5UX0xJU1RFTkVSKHJlbW92ZXRyYWNrKTsKIAogICAgIC8vIE1lZGlhU3RyZWFt
RGVzY3JpcHRvckNsaWVudAorICAgIHZpcnR1YWwgdm9pZCB0cmFja0VuZGVkKCkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIHN0cmVhbUVuZGVkKCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNMb2NhbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHAJKHJldmlzaW9uIDE1NTIxNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNSwxMCArMTM1LDIw
IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6c291cmNlQ2hhbmdlZFN0YXQKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBNZWRpYVN0cmVhbVNvdXJjZTo6UmVhZHlTdGF0ZUVuZGVkOgogICAgICAg
ICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVuZGVkRXZlbnQsIGZh
bHNlLCBmYWxzZSkpOworICAgICAgICBkaWRFbmRUcmFjaygpOwogICAgICAgICBicmVhazsKICAg
ICB9CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZGlkRW5kVHJhY2soKQoreworICAgIE1l
ZGlhU3RyZWFtRGVzY3JpcHRvckNsaWVudCogY2xpZW50ID0gbV9jb21wb25lbnQtPnN0cmVhbSgp
LT5jbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IGNsaWVudC0+dHJhY2tFbmRlZCgpOworfQorCiBNZWRpYVN0cmVhbUNvbXBvbmVudCogTWVkaWFT
dHJlYW1UcmFjazo6Y29tcG9uZW50KCkKIHsKICAgICByZXR1cm4gbV9jb21wb25lbnQuZ2V0KCk7
CkBAIC0xNDcsNiArMTU3LDcgQEAgTWVkaWFTdHJlYW1Db21wb25lbnQqIE1lZGlhU3RyZWFtVHJh
Y2s6Ogogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpzdG9wKCkKIHsKICAgICBtX3N0b3BwZWQgPSB0
cnVlOworICAgIGRpZEVuZFRyYWNrKCk7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFT
dHJlYW1UcmFjazo6aW50ZXJmYWNlTmFtZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAkocmV2aXNp
b24gMTU1MjE3KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgogICAg
IGJvb2wgZW5hYmxlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0RW5hYmxlZChib29sKTsKIAorICAg
IHZvaWQgZGlkRW5kVHJhY2soKTsKKyAgICAKICAgICBTdHJpbmcgcmVhZHlTdGF0ZSgpIGNvbnN0
OwogCiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihtdXRlKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRGVzY3JpcHRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtRGVzY3JpcHRvci5oCShyZXZpc2lvbiAxNTUyMTcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbURlc2NyaXB0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0b3JDbGllbnQgewog
cHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtRGVzY3JpcHRvckNsaWVudCgpIHsgfQog
CisgICAgdmlydHVhbCB2b2lkIHRyYWNrRW5kZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0
cmVhbUVuZGVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1vdGVUcmFjayhNZWRpYVN0
cmVhbUNvbXBvbmVudCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUmVtb3RlVHJhY2so
TWVkaWFTdHJlYW1Db21wb25lbnQqKSA9IDA7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTUyMTcpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAor
MjAxMy0wOS0wNiAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBNZWRpYVN0cmVhbSBzaG91bGQgZmlyZSBlbmRlZCBldmVudCB3aGVuIGFsbCB0cmFja3Mg
YXJlIGVuZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjA4NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tb25lbmRlZC5odG1s
OiBBZGRlZC4KKwogMjAxMy0wOS0wNiAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmFsaWRhdGlvbiBoZWFkZXIgYmxhY2tsaXN0aW5nIHNob3VsZCBiZSBjYXNl
LWluc2Vuc2l0aXZlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbS1vbmVuZGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLW9uZW5kZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1vbmVuZGVkLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitUZXN0cyBNZWRpYVN0
cmVhbTo6b25lbmRlZCBjYWxsYmFjay4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgc3RyZWFtLmVuZGVkIGlzIGZhbHNlCitQQVNTIHN0cmVhbUVuZGVkIHdhcyBjYWxsZWQu
CitQQVNTIHN0cmVhbS5lbmRlZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS1vbmVuZGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1vbmVuZGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLW9uZW5kZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIE1lZGlhU3RyZWFtOjpvbmVuZGVkIGNhbGxiYWNr
LiIpOworCitmdW5jdGlvbiBlcnJvcigpIHsKKyAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2VuZXJh
dGlvbiBmYWlsZWQuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGdldFVz
ZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaykgeworICAgIHRyeSB7CisgICAgICAgIG5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2FsbGJhY2ssIGVycm9yKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0
aHJldyBleGNlcHRpb24gOicgKyBlKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQor
fQorCit2YXIgc3RyZWFtOworCitmdW5jdGlvbiBzdHJlYW1FbmRlZCgpIHsKKyAgICB0ZXN0UGFz
c2VkKCdzdHJlYW1FbmRlZCB3YXMgY2FsbGVkLicpOworICAgIHNob3VsZEJlVHJ1ZSgnc3RyZWFt
LmVuZGVkJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGdvdFN0cmVhbShz
KSB7CisgICAgc3RyZWFtID0gbmV3IHdlYmtpdE1lZGlhU3RyZWFtKHMpOworICAgIHNob3VsZEJl
RmFsc2UoJ3N0cmVhbS5lbmRlZCcpOworICAgIHRyeSB7CisgICAgICAgIHN0cmVhbS5vbmVuZGVk
ID0gc3RyZWFtRW5kZWQ7CisgICAgICAgIHMuc3RvcCgpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgdGVzdEZhaWxlZCgnTG9jYWxNZWRpYVN0cmVhbSB0aHJldyBleGNlcHRpb24gOicgKyBl
KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorfQorCitnZXRVc2VyTWVkaWEoe2F1
ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0pOworCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>