<?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>22052</bug_id>
          
          <creation_ts>2008-11-03 12:03:26 -0800</creation_ts>
          <short_desc>Assert and eventual crash when destroying element in an animation CB</short_desc>
          <delta_ts>2008-12-01 15:06:20 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>97483</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-11-03 12:03:26 -0800</bug_when>
    <thetext>Dean has an example which occasionally asserts and later crashes when destroying an element in an animation end callback. It looks like it is crashing when the element happens to get GC&apos;ed during the callback. 

The assert is at AnimationBase.cpp:475.

I&apos;ve asked Dean to submit the preliminary test case. I will try to get a layout test which causes the crash when I do the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97494</commentid>
    <comment_count>1</comment_count>
      <attachid>24864</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-11-03 13:52:06 -0800</bug_when>
    <thetext>Created attachment 24864
testcase that crashes sometimes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97510</commentid>
    <comment_count>2</comment_count>
      <attachid>24871</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-11-03 15:03:26 -0800</bug_when>
    <thetext>Created attachment 24871
Testcase in loadable form</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97524</commentid>
    <comment_count>3</comment_count>
      <attachid>24875</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-11-03 18:07:10 -0800</bug_when>
    <thetext>Created attachment 24875
Patch, including LayoutTest file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97544</commentid>
    <comment_count>4</comment_count>
      <attachid>24875</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-11-03 20:05:38 -0800</bug_when>
    <thetext>Comment on attachment 24875
Patch, including LayoutTest file

&gt;-                // |this| may be deleted here when we&apos;ve been called from timerFired()

Isn&apos;t this comment still valid?

&gt;+    // Toss the ref to all animations

... the refs.. (plural)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98622</commentid>
    <comment_count>5</comment_count>
      <attachid>25126</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-11-13 11:31:01 -0800</bug_when>
    <thetext>Created attachment 25126
Replacement patch with more descriptive changelog

I fixed the comment made by Simon. The [this] pointer really is always valid at the point where I removed the comment. That is the point of the previous change I made to refcount AnimationBase objects.

I also added details to the Changelog about the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100369</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-11-25 21:22:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/6401110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100884</commentid>
    <comment_count>7</comment_count>
      <attachid>25126</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-12-01 14:30:49 -0800</bug_when>
    <thetext>Comment on attachment 25126
Replacement patch with more descriptive changelog

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100892</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2008-12-01 15:06:20 -0800</bug_when>
    <thetext>Committed r38768
        M       WebCore/ChangeLog
        M       WebCore/page/animation/AnimationBase.h
        M       WebCore/page/animation/CompositeAnimation.cpp
        M       WebCore/page/animation/AnimationController.cpp
        M       WebCore/page/animation/CompositeAnimation.h
        M       WebCore/page/animation/AnimationBase.cpp
        M       LayoutTests/ChangeLog
        A      
LayoutTests/animations/transform-animation-event-destroy-element.html
        A      
LayoutTests/animations/transform-animation-event-destroy-element-expected.txt
        A      
LayoutTests/transitions/transform-transition-event-destroy-element-expected.txt
        A      
LayoutTests/transitions/transform-transition-event-destroy-element.html
r38768 = 7c14de362f15d6dc75bbd7914f4b8db76e2c1430 (trunk)


I added a couple more tests.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24864</attachid>
            <date>2008-11-03 13:52:06 -0800</date>
            <delta_ts>2008-11-03 13:52:06 -0800</delta_ts>
            <desc>testcase that crashes sometimes</desc>
            <filename>test.patch</filename>
            <type>text/plain</type>
            <size>2219</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50
LWRlbGV0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1lbmQtZXZlbnQtZGVsZXRlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNDFkYzIyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5z
aXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWRlbGV0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorSW5pdGlhdGluZyBhIDUwMG1zIHRyYW5zaXRpb24gb24gdGhlIGxlZnQgcHJvcGVy
dHkgb2YgYm94MS4KKworRGlkIG5vdCBjcmFzaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWRlbGV0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWRlbGV0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzc2Nzc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtZGVsZXRlZC5odG1sCkBA
IC0wLDAgKzEsNTggQEAKKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5UcmFuc2l0aW9uIEVuZCBF
dmVudCAtIERlbGV0aW5nIGFuIG9iamVjdCBpbiB0aGUgaGFuZGxlcjwvdGl0bGU+CisgIDxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7CisgICAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7Cisg
ICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7CisgICAgfQorICA8L3N0eWxl
PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVjb3JkRXZlbnQoKSB7CisgICAg
ICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwor
ICAgICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gxJyk7CisgICAgICBj
b250YWluZXIucmVtb3ZlQ2hpbGQoYm94KTsKKyAgICAgIHdpbmRvdy5HQ0NvbnRyb2xsZXIuY29s
bGVjdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNsZWFudXAoKSB7CisgICAgICB2YXIgcmVz
dWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpOworICAgICAgcmVzdWx0Lmlu
bmVyVGV4dCA9ICJEaWQgbm90IGNyYXNoLiI7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oKQorICAgIHsKKyAgICAgIHZh
ciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94MScpOworICAgICAgYm94MS5hZGRF
dmVudExpc3RlbmVyKCJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwgcmVjb3JkRXZlbnQsIGZhbHNlKTsK
KyAgICAgIGJveDEuc3R5bGUubGVmdCA9ICcyMDBweCc7CisgICAgICB3aW5kb3cuc2V0VGltZW91
dChjbGVhbnVwLCA3MDApOworICAgIH0KKyAgICAgIAorICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgc3RhcnRUcmFuc2l0aW9uLCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisKKzxwPkluaXRpYXRpbmcgYSA1MDBtcyB0cmFuc2l0aW9uIG9uIHRoZSBsZWZ0
IHByb3BlcnR5IG9mIGJveDEuPC9wPgorCis8ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlk
PSJib3gxIiBjbGFzcz0iYm94Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>24871</attachid>
            <date>2008-11-03 15:03:26 -0800</date>
            <delta_ts>2008-11-03 15:03:26 -0800</delta_ts>
            <desc>Testcase in loadable form</desc>
            <filename>transition-end-event-deleted.html</filename>
            <type>text/html</type>
            <size>1490</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgogIDx0aXRsZT5UcmFuc2l0aW9uIEVuZCBFdmVudCAtIERlbGV0aW5nIGFu
IG9iamVjdCBpbiB0aGUgaGFuZGxlcjwvdGl0bGU+CiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBt
ZWRpYT0ic2NyZWVuIj4KICAgIC5ib3ggewogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAg
IGxlZnQ6IDA7CiAgICAgIGhlaWdodDogMTAwcHg7CiAgICAgIHdpZHRoOiAxMDBweDsKICAgICAg
bWFyZ2luOiAxMHB4OwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwogICAgICAtd2Via2l0
LXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7CiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJh
dGlvbjogMC41czsKICAgIH0KICA8L3N0eWxlPgogIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBjaGFyc2V0PSJ1dGYtOCI+CiAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CiAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKICAgIH0KCiAgICBmdW5jdGlvbiBy
ZWNvcmRFdmVudCgpIHsKICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb250YWluZXInKTsKICAgICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdib3gxJyk7CiAgICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChib3gpOwogICAgICB3aW5kb3cu
R0NDb250cm9sbGVyLmNvbGxlY3QoKTsKICAgIH0KCiAgICBmdW5jdGlvbiBjbGVhbnVwKCkgewog
ICAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpOwogICAg
ICByZXN1bHQuaW5uZXJUZXh0ID0gIkRpZCBub3QgY3Jhc2guIjsKICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKICAgIH0KCiAgICBmdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oKQogICAgewogICAg
ICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveDEnKTsKICAgICAgYm94MS5h
ZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwgcmVjb3JkRXZlbnQsIGZhbHNl
KTsKICAgICAgYm94MS5zdHlsZS5sZWZ0ID0gJzIwMHB4JzsKICAgICAgd2luZG93LnNldFRpbWVv
dXQoY2xlYW51cCwgNzAwKTsKICAgIH0KICAgICAgCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsIHN0YXJ0VHJhbnNpdGlvbiwgZmFsc2UpOwogIDwvc2NyaXB0Pgo8L2hlYWQ+Cjxi
b2R5PgoKPHA+SW5pdGlhdGluZyBhIDUwMG1zIHRyYW5zaXRpb24gb24gdGhlIGxlZnQgcHJvcGVy
dHkgb2YgYm94MS48L3A+Cgo8ZGl2IGlkPSJjb250YWluZXIiPgogIDxkaXYgaWQ9ImJveDEiIGNs
YXNzPSJib3giPjwvZGl2Pgo8L2Rpdj4KCjxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cgo8L2JvZHk+
CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24875</attachid>
            <date>2008-11-03 18:07:10 -0800</date>
            <delta_ts>2008-11-13 11:31:01 -0800</delta_ts>
            <desc>Patch, including LayoutTest file</desc>
            <filename>22052.patch</filename>
            <type>text/plain</type>
            <size>9207</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODA4MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDgtMTEtMDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3Q6IHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWRlbGV0ZWQuaHRtbAorCisgICAg
ICAgIEZpeGVkIGNyYXNoIHdoZW4gZGVsZXRpbmcgYW4gYW5pbWF0aW5nIGVsZW1lbnQgaW4gdGhl
IHRyYW5zaXRpb24gZW5kIGV2ZW50IGNhbGxiYWNrLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNTIKKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6c2V0
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1h
Y2hpbmUpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OmNsZWFyUmVuZGVyZXIpOgorICAgICAgICAqIHBh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKToKKyAgICAgICAgKiBwYWdlL2FuaW1h
dGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
QW5pbWF0aW9uUHJpdmF0ZTo6fkNvbXBvc2l0ZUFuaW1hdGlvblByaXZhdGUpOgorICAgICAgICAq
IHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oOgorCiAyMDA4LTExLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhdmUgSHlhdHQKSW5kZXg6IFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNw
cAkocmV2aXNpb24gMzgwNzgpCisrKyBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJh
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzMsNyArNDczLDggQEAgYm9vbCBBbmltYXRpb25C
YXNlOjpibGVuZFByb3BlcnRpZXMoY29ucwogdm9pZCBBbmltYXRpb25CYXNlOjpzZXRDaGFuZ2Vk
KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKCFub2RlIHx8IChub2RlLT5kb2N1bWVudCgpICYm
ICFub2RlLT5kb2N1bWVudCgpLT5pblBhZ2VDYWNoZSgpKSk7Ci0gICAgbm9kZS0+c2V0Q2hhbmdl
ZChBbmltYXRpb25TdHlsZUNoYW5nZSk7CisgICAgaWYgKG5vZGUpCisgICAgICAgIG5vZGUtPnNl
dENoYW5nZWQoQW5pbWF0aW9uU3R5bGVDaGFuZ2UpOwogfQogCiBkb3VibGUgQW5pbWF0aW9uQmFz
ZTo6ZHVyYXRpb24oKSBjb25zdApAQCAtNjU3LDEwICs2NTgsMTEgQEAgdm9pZCBBbmltYXRpb25C
YXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQQogICAgICAgICAgICAgICAgIHJlc3VtZU92ZXJyaWRk
ZW5BbmltYXRpb25zKCk7CiAKICAgICAgICAgICAgICAgICAvLyBGaXJlIG9mZiBhbm90aGVyIHN0
eWxlIGNoYW5nZSBzbyB3ZSBjYW4gc2V0IHRoZSBmaW5hbCB2YWx1ZQotICAgICAgICAgICAgICAg
IHNldENoYW5nZWQobV9vYmplY3QtPmVsZW1lbnQoKSk7CiAgICAgICAgICAgICAgICAgbV9hbmlt
U3RhdGUgPSBBbmltYXRpb25TdGF0ZURvbmU7Ci0gICAgICAgICAgICAgICAgbV9vYmplY3QtPmFu
aW1hdGlvbigpLT5zdGFydFVwZGF0ZVJlbmRlcmluZ0Rpc3BhdGNoZXIoKTsKLSAgICAgICAgICAg
ICAgICAvLyB8dGhpc3wgbWF5IGJlIGRlbGV0ZWQgaGVyZSB3aGVuIHdlJ3ZlIGJlZW4gY2FsbGVk
IGZyb20gdGltZXJGaXJlZCgpCisgICAgICAgICAgICAgICAgaWYgKG1fb2JqZWN0KSB7CisgICAg
ICAgICAgICAgICAgICAgIHNldENoYW5nZWQobV9vYmplY3QtPmVsZW1lbnQoKSk7CisgICAgICAg
ICAgICAgICAgICAgIG1fb2JqZWN0LT5hbmltYXRpb24oKS0+c3RhcnRVcGRhdGVSZW5kZXJpbmdE
aXNwYXRjaGVyKCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICAvLyBXZSBhcmUgcGF1c2luZyB3aGlsZSBydW5uaW5nLiBDYW5jZWwgdGhl
IGFuaW1hdGlvbiBhbmQgd2FpdAogICAgICAgICAgICAgICAgIG1fcGF1c2VUaW1lID0gY3VycmVu
dFRpbWUoKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCShyZXZp
c2lvbiAzODA3OCkKKysrIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFu
aW1hdGlvbkJhc2UoKTsKIAogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIoKSBjb25zdCB7IHJl
dHVybiBtX29iamVjdDsgfQorICAgIHZvaWQgY2xlYXJSZW5kZXJlcigpIHsgbV9vYmplY3QgPSAw
OyB9CisgICAgCiAgICAgZG91YmxlIHN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRU
aW1lOyB9CiAgICAgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Q7CiAKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMzgwNzgp
CisrKyBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05Nyw3ICs5Nyw2IEBAIGJvb2wgQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGU6OmNsZWFyKFIKICAgICBDb21wb3NpdGVBbmltYXRpb24qIGFuaW1hdGlvbiA9IG1fY29tcG9z
aXRlQW5pbWF0aW9ucy50YWtlKHJlbmRlcmVyKTsKICAgICBpZiAoIWFuaW1hdGlvbikKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGFuaW1hdGlvbi0+cmVzZXRUcmFuc2l0aW9ucyhyZW5kZXJl
cik7CiAgICAgYm9vbCB3YXNTdXNwZW5kZWQgPSBhbmltYXRpb24tPmlzU3VzcGVuZGVkKCk7CiAg
ICAgZGVsZXRlIGFuaW1hdGlvbjsKICAgICByZXR1cm4gIXdhc1N1c3BlbmRlZDsKSW5kZXg6IFdl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAJKHJldmlzaW9u
IDM4MDc4KQorKysgV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw5ICs1Nyw2IEBAIHB1YmxpYzoKICAgICAKICAgICBjb25z
dCBLZXlmcmFtZUFuaW1hdGlvbiogZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHkoaW50IHByb3BlcnR5
KSBjb25zdDsKIAotICAgIHZvaWQgcmVzZXRUcmFuc2l0aW9ucyhSZW5kZXJPYmplY3QqKTsKLSAg
ICB2b2lkIHJlc2V0QW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqKTsKLQogICAgIHZvaWQgY2xlYW51
cEZpbmlzaGVkQW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqKTsKIAogICAgIHZvaWQgc2V0QW5pbWF0
aW9uU3RhcnRUaW1lKGRvdWJsZSB0KTsKQEAgLTk2LDYgKzkzLDIxIEBAIHByaXZhdGU6CiAKIENv
bXBvc2l0ZUFuaW1hdGlvblByaXZhdGU6On5Db21wb3NpdGVBbmltYXRpb25Qcml2YXRlKCkKIHsK
KyAgICAvLyBDbGVhciB0aGUgcmVuZGVyZXJzIGZyb20gYWxsIHJ1bm5pbmcgYW5pbWF0aW9ucywg
aW4gY2FzZSB3ZSBhcmUgaW4gdGhlIG1pZGRsZSBvZgorICAgIC8vIGFuIGFuaW1hdGlvbiBjYWxs
YmFjayAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA1MikK
KyAgICBDU1NQcm9wZXJ0eVRyYW5zaXRpb25zTWFwOjpjb25zdF9pdGVyYXRvciB0cmFuc2l0aW9u
c0VuZCA9IG1fdHJhbnNpdGlvbnMuZW5kKCk7CisgICAgZm9yIChDU1NQcm9wZXJ0eVRyYW5zaXRp
b25zTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fdHJhbnNpdGlvbnMuYmVnaW4oKTsgaXQgIT0g
dHJhbnNpdGlvbnNFbmQ7ICsraXQpIHsKKyAgICAgICAgSW1wbGljaXRBbmltYXRpb24qIHRyYW5z
aXRpb24gPSBpdC0+c2Vjb25kLmdldCgpOworICAgICAgICB0cmFuc2l0aW9uLT5jbGVhclJlbmRl
cmVyKCk7CisgICAgfQorCisgICAgQW5pbWF0aW9uTmFtZU1hcDo6Y29uc3RfaXRlcmF0b3IgYW5p
bWF0aW9uc0VuZCA9IG1fa2V5ZnJhbWVBbmltYXRpb25zLmVuZCgpOworICAgIGZvciAoQW5pbWF0
aW9uTmFtZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tleWZyYW1lQW5pbWF0aW9ucy5iZWdp
bigpOyBpdCAhPSBhbmltYXRpb25zRW5kOyArK2l0KSB7CisgICAgICAgIEtleWZyYW1lQW5pbWF0
aW9uKiBhbmltID0gaXQtPnNlY29uZC5nZXQoKTsKKyAgICAgICAgYW5pbS0+Y2xlYXJSZW5kZXJl
cigpOworICAgIH0KKyAgICAKKyAgICAvLyBUb3NzIHRoZSByZWYgdG8gYWxsIGFuaW1hdGlvbnMK
ICAgICBtX3RyYW5zaXRpb25zLmNsZWFyKCk7CiAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2xl
YXIoKTsKIH0KQEAgLTMxNywxNiArMzI5LDYgQEAgY29uc3QgS2V5ZnJhbWVBbmltYXRpb24qIENv
bXBvc2l0ZUFuaW1hdAogICAgIHJldHVybiByZXR2YWw7CiB9CiAKLXZvaWQgQ29tcG9zaXRlQW5p
bWF0aW9uUHJpdmF0ZTo6cmVzZXRUcmFuc2l0aW9ucyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQot
ewotICAgIG1fdHJhbnNpdGlvbnMuY2xlYXIoKTsKLX0KLQotdm9pZCBDb21wb3NpdGVBbmltYXRp
b25Qcml2YXRlOjpyZXNldEFuaW1hdGlvbnMoUmVuZGVyT2JqZWN0KikKLXsKLSAgICBtX2tleWZy
YW1lQW5pbWF0aW9ucy5jbGVhcigpOwotfQotCiB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvblByaXZh
dGU6OmNsZWFudXBGaW5pc2hlZEFuaW1hdGlvbnMoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIHsK
ICAgICBpZiAoaXNTdXNwZW5kZWQoKSkKQEAgLTUzNiwxMSArNTM4LDYgQEAgdm9pZCBDb21wb3Np
dGVBbmltYXRpb246OnNldFdhaXRpbmdGb3JTdAogICAgIG1fZGF0YS0+c2V0V2FpdGluZ0ZvclN0
eWxlQXZhaWxhYmxlKGIpOwogfQogCi12b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6cmVzZXRUcmFu
c2l0aW9ucyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQotewotICAgIG1fZGF0YS0+cmVzZXRUcmFu
c2l0aW9ucyhyZW5kZXJlcik7Ci19Ci0KIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjpzdXNwZW5k
QW5pbWF0aW9ucygpCiB7CiAgICAgbV9kYXRhLT5zdXNwZW5kQW5pbWF0aW9ucygpOwpJbmRleDog
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCShyZXZpc2lvbiAz
ODA3OCkKKysrIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNBbmltYXRp
bmcoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0V2FpdGluZ0ZvclN0eWxlQXZhaWxhYmxlKGJvb2wp
OwotICAgIHZvaWQgcmVzZXRUcmFuc2l0aW9ucyhSZW5kZXJPYmplY3QqKTsKIAogICAgIHZvaWQg
c3VzcGVuZEFuaW1hdGlvbnMoKTsKICAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKTsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDM4MDgxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDgtMTEtMDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RjYXNlIGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIwNTIKKworICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWRlbGV0
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9u
LWVuZC1ldmVudC1kZWxldGVkLmh0bWw6IEFkZGVkLgorCiAyMDA4LTExLTAzICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUg
SHlhdHQKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50
LWRlbGV0ZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWRlbGV0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtZGVsZXRl
ZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorSW5pdGlhdGluZyBh
IDUwMG1zIHRyYW5zaXRpb24gb24gdGhlIGxlZnQgcHJvcGVydHkgb2YgYm94MS4KKworRGlkIG5v
dCBjcmFzaC4KSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2
ZW50LWRlbGV0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90
cmFuc2l0aW9uLWVuZC1ldmVudC1kZWxldGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1kZWxldGVkLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNjEgQEAKKzxodG1sPgorPGhlYWQ+CisgIDx0aXRsZT5UcmFuc2l0
aW9uIEVuZCBFdmVudCAtIERlbGV0aW5nIGFuIG9iamVjdCBpbiB0aGUgaGFuZGxlcjwvdGl0bGU+
CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7Cisg
ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6
IGxlZnQ7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7CisgICAgfQor
ICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm
LTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVjb3JkRXZlbnQo
KSB7CisgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRh
aW5lcicpOworICAgICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gxJyk7
CisgICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQoYm94KTsKKyAgICAgIAorICAgICAgLy8gYWxs
b2NhdGUgYSBidW5jaCBvZiB1c2VsZXNzIG9iamVjdHMgdG8gc3RvbXAgb24gdGhlIG5vdyBkZXN0
cm95ZWQgZWxlbWVudAorICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7IGkrKykKKyAgICAg
ICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjbGVhbnVwKCkgeworICAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyZXN1bHQnKTsKKyAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiRGlkIG5vdCBjcmFz
aC4iOworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RhcnRUcmFuc2l0aW9uKCkKKyAgICB7CisgICAgICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2JveDEnKTsKKyAgICAgIGJveDEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0VHJh
bnNpdGlvbkVuZCIsIHJlY29yZEV2ZW50LCBmYWxzZSk7CisgICAgICBib3gxLnN0eWxlLmxlZnQg
PSAnMjAwcHgnOworICAgICAgd2luZG93LnNldFRpbWVvdXQoY2xlYW51cCwgNzAwKTsKKyAgICB9
CisgICAgICAKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHN0YXJ0VHJhbnNp
dGlvbiwgZmFsc2UpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8cD5Jbml0aWF0
aW5nIGEgNTAwbXMgdHJhbnNpdGlvbiBvbiB0aGUgbGVmdCBwcm9wZXJ0eSBvZiBib3gxLjwvcD4K
KworPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCI+PC9k
aXY+Cis8L2Rpdj4KKworPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKworPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25126</attachid>
            <date>2008-11-13 11:31:01 -0800</date>
            <delta_ts>2008-12-01 14:30:49 -0800</delta_ts>
            <desc>Replacement patch with more descriptive changelog</desc>
            <filename>22052.patch</filename>
            <type>text/plain</type>
            <size>9790</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODA4MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDgtMTEtMDMgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3Q6IHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWRlbGV0ZWQuaHRtbAorCisgICAg
ICAgIEZpeGVkIGNyYXNoIHdoZW4gZGVsZXRpbmcgYW4gYW5pbWF0aW5nIGVsZW1lbnQgaW4gdGhl
IHRyYW5zaXRpb24gZW5kIGV2ZW50IGNhbGxiYWNrLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNTIKKworICAgICAgICBUaGUgcHJvYmxlbSB3YXMg
dGhhdCBhbiBlbmQgYW5pbWF0aW9uIGNhbGxiYWNrIGNhbiBkZWxldGUgdGhlIFJlbmRlck9iamVj
dCBiZWluZyBhbmltYXRlZC4KKyAgICAgICAgQnV0IHRoZXJlIGlzIHN0aWxsIGEgbm93LXN0YWxl
IHBvaW50ZXIgdG8gdGhlIFJlbmRlck9iamVjdCBpbiB0aGUgQW5pbWF0aW9uQmFzZSBvYmplY3QK
KyAgICAgICAgdXBvbiByZXR1cm4gZnJvbSB0aGUgY2FsbGJhY2suIFRoZSBmaXggaXMgdG8gemVy
byBvdXQgdGhlIHJlZnMgdG8gUmVuZGVyT2JqZWN0IGluIHRoZSAKKyAgICAgICAgQW5pbWF0aW9u
QmFzZSBvYmplY3RzIHBvaW50aW5nIHRvIGl0LiBVcG9uIHJldHVybiBmcm9tIHRoZSBjYWxsYmFj
aywgd2UgY2hlY2sgZm9yCisgICAgICAgIG51bGwgUmVuZGVyT2JqZWN0IHBvaW50ZXJzIGFuZCBz
a2lwIGFjY2Vzc2luZyB0aGVtLgorCisgICAgICAgIEkgYWxzbyByZW1vdmVkIHNvbWUgbm8gbG9u
Z2VyIHVzZWZ1bCBtZXRob2RzIGhhdmluZyB0byBkbyB3aXRoIG1hbmFnZW1lbnQgb2YgdGhlCisg
ICAgICAgIGxpZmV0aW1lIG9mIEFuaW1hdGlvbkJhc2Ugb2JqZWN0cy4KKworICAgICAgICAqIHBh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0
aW9uQmFzZTo6c2V0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjp1
cGRhdGVTdGF0ZU1hY2hpbmUpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJh
c2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OmNsZWFyUmVuZGVyZXIpOgor
ICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKToKKyAgICAgICAg
KiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zaXRlQW5pbWF0aW9uUHJpdmF0ZTo6fkNvbXBvc2l0ZUFuaW1hdGlvblByaXZhdGUp
OgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oOgorCiAyMDA4
LTExLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhdmUgSHlhdHQKSW5kZXg6IFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmNwcAkocmV2aXNpb24gMzgwNzgpCisrKyBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzMsNyArNDczLDggQEAgYm9v
bCBBbmltYXRpb25CYXNlOjpibGVuZFByb3BlcnRpZXMoY29ucwogdm9pZCBBbmltYXRpb25CYXNl
OjpzZXRDaGFuZ2VkKE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKCFub2RlIHx8IChub2RlLT5k
b2N1bWVudCgpICYmICFub2RlLT5kb2N1bWVudCgpLT5pblBhZ2VDYWNoZSgpKSk7Ci0gICAgbm9k
ZS0+c2V0Q2hhbmdlZChBbmltYXRpb25TdHlsZUNoYW5nZSk7CisgICAgaWYgKG5vZGUpCisgICAg
ICAgIG5vZGUtPnNldENoYW5nZWQoQW5pbWF0aW9uU3R5bGVDaGFuZ2UpOwogfQogCiBkb3VibGUg
QW5pbWF0aW9uQmFzZTo6ZHVyYXRpb24oKSBjb25zdApAQCAtNjU3LDEwICs2NTgsMTEgQEAgdm9p
ZCBBbmltYXRpb25CYXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQQogICAgICAgICAgICAgICAgIHJl
c3VtZU92ZXJyaWRkZW5BbmltYXRpb25zKCk7CiAKICAgICAgICAgICAgICAgICAvLyBGaXJlIG9m
ZiBhbm90aGVyIHN0eWxlIGNoYW5nZSBzbyB3ZSBjYW4gc2V0IHRoZSBmaW5hbCB2YWx1ZQotICAg
ICAgICAgICAgICAgIHNldENoYW5nZWQobV9vYmplY3QtPmVsZW1lbnQoKSk7CiAgICAgICAgICAg
ICAgICAgbV9hbmltU3RhdGUgPSBBbmltYXRpb25TdGF0ZURvbmU7Ci0gICAgICAgICAgICAgICAg
bV9vYmplY3QtPmFuaW1hdGlvbigpLT5zdGFydFVwZGF0ZVJlbmRlcmluZ0Rpc3BhdGNoZXIoKTsK
LSAgICAgICAgICAgICAgICAvLyB8dGhpc3wgbWF5IGJlIGRlbGV0ZWQgaGVyZSB3aGVuIHdlJ3Zl
IGJlZW4gY2FsbGVkIGZyb20gdGltZXJGaXJlZCgpCisgICAgICAgICAgICAgICAgaWYgKG1fb2Jq
ZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIHNldENoYW5nZWQobV9vYmplY3QtPmVsZW1lbnQo
KSk7CisgICAgICAgICAgICAgICAgICAgIG1fb2JqZWN0LT5hbmltYXRpb24oKS0+c3RhcnRVcGRh
dGVSZW5kZXJpbmdEaXNwYXRjaGVyKCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgcGF1c2luZyB3aGlsZSBydW5uaW5n
LiBDYW5jZWwgdGhlIGFuaW1hdGlvbiBhbmQgd2FpdAogICAgICAgICAgICAgICAgIG1fcGF1c2VU
aW1lID0gY3VycmVudFRpbWUoKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5oCShyZXZpc2lvbiAzODA3OCkKKysrIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgfkFuaW1hdGlvbkJhc2UoKTsKIAogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIo
KSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQorICAgIHZvaWQgY2xlYXJSZW5kZXJlcigpIHsg
bV9vYmplY3QgPSAwOyB9CisgICAgCiAgICAgZG91YmxlIHN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc3RhcnRUaW1lOyB9CiAgICAgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Q7CiAKSW5kZXg6
IFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAkocmV2
aXNpb24gMzgwNzgpCisrKyBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw3ICs5Nyw2IEBAIGJvb2wgQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGU6OmNsZWFyKFIKICAgICBDb21wb3NpdGVBbmltYXRpb24qIGFuaW1hdGlv
biA9IG1fY29tcG9zaXRlQW5pbWF0aW9ucy50YWtlKHJlbmRlcmVyKTsKICAgICBpZiAoIWFuaW1h
dGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGFuaW1hdGlvbi0+cmVzZXRUcmFuc2l0
aW9ucyhyZW5kZXJlcik7CiAgICAgYm9vbCB3YXNTdXNwZW5kZWQgPSBhbmltYXRpb24tPmlzU3Vz
cGVuZGVkKCk7CiAgICAgZGVsZXRlIGFuaW1hdGlvbjsKICAgICByZXR1cm4gIXdhc1N1c3BlbmRl
ZDsKSW5kZXg6IFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5j
cHAJKHJldmlzaW9uIDM4MDc4KQorKysgV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVB
bmltYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw5ICs1Nyw2IEBAIHB1YmxpYzoKICAg
ICAKICAgICBjb25zdCBLZXlmcmFtZUFuaW1hdGlvbiogZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHko
aW50IHByb3BlcnR5KSBjb25zdDsKIAotICAgIHZvaWQgcmVzZXRUcmFuc2l0aW9ucyhSZW5kZXJP
YmplY3QqKTsKLSAgICB2b2lkIHJlc2V0QW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqKTsKLQogICAg
IHZvaWQgY2xlYW51cEZpbmlzaGVkQW5pbWF0aW9ucyhSZW5kZXJPYmplY3QqKTsKIAogICAgIHZv
aWQgc2V0QW5pbWF0aW9uU3RhcnRUaW1lKGRvdWJsZSB0KTsKQEAgLTk2LDYgKzkzLDIxIEBAIHBy
aXZhdGU6CiAKIENvbXBvc2l0ZUFuaW1hdGlvblByaXZhdGU6On5Db21wb3NpdGVBbmltYXRpb25Q
cml2YXRlKCkKIHsKKyAgICAvLyBDbGVhciB0aGUgcmVuZGVyZXJzIGZyb20gYWxsIHJ1bm5pbmcg
YW5pbWF0aW9ucywgaW4gY2FzZSB3ZSBhcmUgaW4gdGhlIG1pZGRsZSBvZgorICAgIC8vIGFuIGFu
aW1hdGlvbiBjYWxsYmFjayAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjA1MikKKyAgICBDU1NQcm9wZXJ0eVRyYW5zaXRpb25zTWFwOjpjb25zdF9pdGVyYXRv
ciB0cmFuc2l0aW9uc0VuZCA9IG1fdHJhbnNpdGlvbnMuZW5kKCk7CisgICAgZm9yIChDU1NQcm9w
ZXJ0eVRyYW5zaXRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fdHJhbnNpdGlvbnMuYmVn
aW4oKTsgaXQgIT0gdHJhbnNpdGlvbnNFbmQ7ICsraXQpIHsKKyAgICAgICAgSW1wbGljaXRBbmlt
YXRpb24qIHRyYW5zaXRpb24gPSBpdC0+c2Vjb25kLmdldCgpOworICAgICAgICB0cmFuc2l0aW9u
LT5jbGVhclJlbmRlcmVyKCk7CisgICAgfQorCisgICAgQW5pbWF0aW9uTmFtZU1hcDo6Y29uc3Rf
aXRlcmF0b3IgYW5pbWF0aW9uc0VuZCA9IG1fa2V5ZnJhbWVBbmltYXRpb25zLmVuZCgpOworICAg
IGZvciAoQW5pbWF0aW9uTmFtZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tleWZyYW1lQW5p
bWF0aW9ucy5iZWdpbigpOyBpdCAhPSBhbmltYXRpb25zRW5kOyArK2l0KSB7CisgICAgICAgIEtl
eWZyYW1lQW5pbWF0aW9uKiBhbmltID0gaXQtPnNlY29uZC5nZXQoKTsKKyAgICAgICAgYW5pbS0+
Y2xlYXJSZW5kZXJlcigpOworICAgIH0KKyAgICAKKyAgICAvLyBUb3NzIHRoZSByZWZzIHRvIGFs
bCBhbmltYXRpb25zCiAgICAgbV90cmFuc2l0aW9ucy5jbGVhcigpOwogICAgIG1fa2V5ZnJhbWVB
bmltYXRpb25zLmNsZWFyKCk7CiB9CkBAIC0zMTcsMTYgKzMyOSw2IEBAIGNvbnN0IEtleWZyYW1l
QW5pbWF0aW9uKiBDb21wb3NpdGVBbmltYXQKICAgICByZXR1cm4gcmV0dmFsOwogfQogCi12b2lk
IENvbXBvc2l0ZUFuaW1hdGlvblByaXZhdGU6OnJlc2V0VHJhbnNpdGlvbnMoUmVuZGVyT2JqZWN0
KiByZW5kZXJlcikKLXsKLSAgICBtX3RyYW5zaXRpb25zLmNsZWFyKCk7Ci19Ci0KLXZvaWQgQ29t
cG9zaXRlQW5pbWF0aW9uUHJpdmF0ZTo6cmVzZXRBbmltYXRpb25zKFJlbmRlck9iamVjdCopCi17
Ci0gICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2xlYXIoKTsKLX0KLQogdm9pZCBDb21wb3NpdGVB
bmltYXRpb25Qcml2YXRlOjpjbGVhbnVwRmluaXNoZWRBbmltYXRpb25zKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiB7CiAgICAgaWYgKGlzU3VzcGVuZGVkKCkpCkBAIC01MzYsMTEgKzUzOCw2IEBA
IHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjpzZXRXYWl0aW5nRm9yU3QKICAgICBtX2RhdGEtPnNl
dFdhaXRpbmdGb3JTdHlsZUF2YWlsYWJsZShiKTsKIH0KIAotdm9pZCBDb21wb3NpdGVBbmltYXRp
b246OnJlc2V0VHJhbnNpdGlvbnMoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKLXsKLSAgICBtX2Rh
dGEtPnJlc2V0VHJhbnNpdGlvbnMocmVuZGVyZXIpOwotfQotCiB2b2lkIENvbXBvc2l0ZUFuaW1h
dGlvbjo6c3VzcGVuZEFuaW1hdGlvbnMoKQogewogICAgIG1fZGF0YS0+c3VzcGVuZEFuaW1hdGlv
bnMoKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
aAkocmV2aXNpb24gMzgwNzgpCisrKyBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw2IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzQW5pbWF0aW5nKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFdhaXRpbmdGb3JTdHlsZUF2
YWlsYWJsZShib29sKTsKLSAgICB2b2lkIHJlc2V0VHJhbnNpdGlvbnMoUmVuZGVyT2JqZWN0Kik7
CiAKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKCk7CiAgICAgdm9pZCByZXN1bWVBbmltYXRp
b25zKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAzODA4MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA4LTExLTAzICBDaHJpcyBNYXJy
aW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0Y2FzZSBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMDUyCisKKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVu
ZC1ldmVudC1kZWxldGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlv
bnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtZGVsZXRlZC5odG1sOiBBZGRlZC4KKwogMjAwOC0xMS0w
MyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXZlIEh5YXR0CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0
aW9uLWVuZC1ldmVudC1kZWxldGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1kZWxldGVkLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5k
LWV2ZW50LWRlbGV0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAK
K0luaXRpYXRpbmcgYSA1MDBtcyB0cmFuc2l0aW9uIG9uIHRoZSBsZWZ0IHByb3BlcnR5IG9mIGJv
eDEuCisKK0RpZCBub3QgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFu
c2l0aW9uLWVuZC1ldmVudC1kZWxldGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtZGVsZXRlZC5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtZGVsZXRl
ZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACis8aHRtbD4KKzxoZWFkPgorICA8
dGl0bGU+VHJhbnNpdGlvbiBFbmQgRXZlbnQgLSBEZWxldGluZyBhbiBvYmplY3QgaW4gdGhlIGhh
bmRsZXI8L3RpdGxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgor
ICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgbGVmdDogMDsKKyAg
ICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0aDogMTAwcHg7CisgICAgICBtYXJnaW46IDEw
cHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgLXdlYmtpdC10cmFuc2l0
aW9uLXByb3BlcnR5OiBsZWZ0OworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAw
LjVzOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJlY29yZEV2ZW50KCkgeworICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb250YWluZXInKTsKKyAgICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYm94MScpOworICAgICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKGJveCk7CisgICAgICAK
KyAgICAgIC8vIGFsbG9jYXRlIGEgYnVuY2ggb2YgdXNlbGVzcyBvYmplY3RzIHRvIHN0b21wIG9u
IHRoZSBub3cgZGVzdHJveWVkIGVsZW1lbnQKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
OyBpKyspCisgICAgICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gY2xlYW51cCgpIHsKKyAgICAgIHZhciByZXN1bHQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Jyk7CisgICAgICByZXN1bHQuaW5uZXJUZXh0ID0g
IkRpZCBub3QgY3Jhc2guIjsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbigpCisgICAgeworICAgICAgdmFyIGJveCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gxJyk7CisgICAgICBib3gxLmFkZEV2ZW50TGlzdGVu
ZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLCByZWNvcmRFdmVudCwgZmFsc2UpOworICAgICAgYm94
MS5zdHlsZS5sZWZ0ID0gJzIwMHB4JzsKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNsZWFudXAs
IDcwMCk7CisgICAgfQorICAgICAgCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBzdGFydFRyYW5zaXRpb24sIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KworPHA+SW5pdGlhdGluZyBhIDUwMG1zIHRyYW5zaXRpb24gb24gdGhlIGxlZnQgcHJvcGVydHkg
b2YgYm94MS48L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgIDxkaXYgaWQ9ImJveDEiIGNs
YXNzPSJib3giPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CisKKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="11573"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>