<?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>26024</bug_id>
          
          <creation_ts>2009-05-26 10:04:22 -0700</creation_ts>
          <short_desc>AX: possible to fail assertion because AXPostNotification calls accessibilityIsIgnored</short_desc>
          <delta_ts>2009-05-29 11:39:33 -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>Accessibility</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 fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>123144</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-05-26 10:04:22 -0700</bug_when>
    <thetext>ASSERTION FAILED: !m_layoutState
(/Volumes/data/Web/WebKit-2/WebCore/rendering/RenderView.cpp:115 virtual void WebCore::RenderView::layout())

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x00000000bbadbeef
0x0000000101afc46d in WebCore::RenderView::layout (this=0x119aaf898) at /Volumes/data/Web/WebKit-2/WebCore/rendering/RenderView.cpp:115
115	    ASSERT(!m_layoutState);
(gdb) bt
#0  0x0000000101afc46d in WebCore::RenderView::layout (this=0x119aaf898) at /Volumes/data/Web/WebKit-2/WebCore/rendering/RenderView.cpp:115
#1  0x0000000101cb92f7 in WebCore::RenderObject::layoutIfNeeded (this=0x119aaf898) at RenderObject.h:479
#2  0x000000010139ece4 in WebCore::AccessibilityRenderObject::updateBackingStore (this=0x119c21e80) at /Volumes/data/Web/WebKit-2/WebCore/page/AccessibilityRenderObject.cpp:2537
#3  0x000000010138f235 in -[AccessibilityObjectWrapper accessibilityIsIgnored] (self=0x119c1a230, _cmd=0x7fff820a67d8) at /Volumes/data/Web/WebKit-2/WebCore/page/mac/AccessibilityObjectWrapper.mm:1530
#4  0x00007fff819c0431 in NSAccessibilityPostNotificationForObservedElement ()
#5  0x00000001013889e1 in WebCore::AXObjectCache::postNotification (this=0x119ad5aa0, renderer=0x119c218d8, message=@0x7fff5fbf9950) at /Volumes/data/Web/WebKit-2/WebCore/page/mac/AXObjectCacheMac.mm:68
#6  0x0000000101ae2a18 in WebCore::RenderTextControl::setInnerTextValue (this=0x119c218d8, innerTextValue=@0x7fff5fbf99f0) at /Volumes/data/Web/WebKit-2/WebCore/rendering/RenderTextControl.cpp:176
#7  0x0000000101ae7d4e in WebCore::RenderTextControlSingleLine::updateFromElement (this=0x119c218d8) at /Volumes/data/Web/WebKit-2/WebCore/rendering/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123146</commentid>
    <comment_count>1</comment_count>
      <attachid>30671</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-05-26 10:16:25 -0700</bug_when>
    <thetext>Created attachment 30671
patch

This patch fixes the problem where an AX notification can be posted while the render tree is being changed. this callout can cause other problems.

the fix is to have a one shot timer post all the notifications after rendering is done

this also consolidate postNotification and postNotificationToElement into one method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123573</commentid>
    <comment_count>2</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-05-29 11:25:18 -0700</bug_when>
    <thetext>Assigned to cfleizach@apple.com for landing his own patch (simply to make this obvious in the commit queue).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123576</commentid>
    <comment_count>3</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2009-05-29 11:33:49 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/44266</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30671</attachid>
            <date>2009-05-26 10:16:25 -0700</date>
            <delta_ts>2009-05-29 09:32:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>15127</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDE1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMDktMDUtMjYgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBCdWcgMjYwMjQ6IEFYOiBwb3NzaWJsZSB0byBmYWlsIGFzc2VydGlvbiBiZWNhdXNlIEFYUG9z
dE5vdGlmaWNhdGlvbiBjYWxscyBhY2Nlc3NpYmlsaXR5SXNJZ25vcmVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjAyNAorCisgICAgICAgIEFYIG5v
dGlmaWNhdGlvbnMgYXJlIHBvc3RlZCBhZnRlciBhIG9uZSBzaG90IHRpbWVyIHNvIHRoYXQgbm90
aWZpY2F0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCBtaWQtbGF5b3V0LgorICAgICAgICBDb25zb2xp
ZGF0ZWQgcG9zdE5vdGlmaWNhdGlvbiBhbmQgcG9zdE5vdGlmaWNhdGlvblRvRWxlbWVudCBpbnRv
IG9uZSBtZXRob2QuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6QVhPYmplY3RDYWNoZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKToK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGFuZGxlQWN0aXZlRGVzY2VuZGFudENoYW5n
ZWQpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmplY3RDYWNoZUF0
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3Rp
ZmljYXRpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmltcGxpY2l0Q2xvc2UpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKToKKyAgICAg
ICAgKiBlZGl0aW5nL21hYy9TZWxlY3Rpb25Db250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0aW9uQ29udHJvbGxlcjo6bm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlv
bkNoYW5nZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6c2V0SW5uZXJU
ZXh0VmFsdWUpOgorCiAyMDA5LTA1LTI2ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAJKHJldmlzaW9uIDQ0MTUwKQor
KysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVRhYmxlUm93LmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIApAQCAtNTQs
NiArNTUsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIGJvb2wgQVhPYmplY3RDYWNo
ZTo6Z0FjY2Vzc2liaWxpdHlFbmFibGVkID0gZmFsc2U7CiBib29sIEFYT2JqZWN0Q2FjaGU6OmdB
Y2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCA9IGZhbHNlOwogCitBWE9i
amVjdENhY2hlOjpBWE9iamVjdENhY2hlKCkKKyAgICA6IG1fbm90aWZpY2F0aW9uUG9zdFRpbWVy
KHRoaXMsICZBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCkKK3sKK30K
KwogQVhPYmplY3RDYWNoZTo6fkFYT2JqZWN0Q2FjaGUoKQogewogICAgIEhhc2hNYXA8QVhJRCwg
UmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+ID46Oml0ZXJhdG9yIGVuZCA9IG1fb2JqZWN0cy5l
bmQoKTsKQEAgLTI0NywxMSArMjUzLDY4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5D
aGFuZ2VkKFJlbmQKICAgICBpZiAob2JqKQogICAgICAgICBvYmotPmNoaWxkcmVuQ2hhbmdlZCgp
OwogfQorICAgIAordm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZChUaW1lcjxBWE9iamVjdENhY2hlPiopCit7CisgICAgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIu
c3RvcCgpOworCisgICAgdW5zaWduZWQgaSA9IDAsIGNvdW50ID0gbV9ub3RpZmljYXRpb25zVG9Q
b3N0LnNpemUoKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmogPSBtX25vdGlmaWNhdGlvbnNUb1Bvc3RbaV0uZmlyc3Q7
CisjaWZuZGVmIE5ERUJVRworICAgICAgICAvLyBNYWtlIHN1cmUgbm9uZSBvZiB0aGUgcmVuZGVy
IHZpZXdzIGFyZSBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBsYXllZCBvdXQuCisgICAgICAgIC8v
IE5vdGlmaWNhdGlvbnMgc2hvdWxkIG9ubHkgYmUgc2VudCBhZnRlciB0aGUgcmVuZGVyZXIgaGFz
IGZpbmlzaGVkCisgICAgICAgIGlmIChvYmotPmlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgp
KSB7CisgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KiByZW5kZXJPYmogPSBz
dGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Kj4ob2JqKTsKKyAgICAgICAgICAg
IFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSByZW5kZXJPYmotPnJlbmRlcmVyKCk7CisgICAgICAg
ICAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVyZXItPnZpZXcoKSkKKyAgICAgICAgICAgICAgICBB
U1NFUlQoIXJlbmRlcmVyLT52aWV3KCktPmxheW91dFN0YXRlKCkpOworICAgICAgICB9CisjZW5k
aWYKKyAgICAgICAgCisgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmosIG1fbm90
aWZpY2F0aW9uc1RvUG9zdFtpXS5zZWNvbmQpOworICAgIH0KKyAgICAKKyAgICBtX25vdGlmaWNh
dGlvbnNUb1Bvc3QuY2xlYXIoKTsKK30KKyAgICAKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5v
dGlmaWNhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGJvb2wgcG9zdFRvRWxlbWVudCkKK3sKKyAgICAvLyBOb3RpZmljYXRpb25zIGZvciB0ZXh0IGlu
cHV0IG9iamVjdHMgYXJlIHNlbnQgdG8gdGhhdCBvYmplY3QuCisgICAgLy8gQWxsIG90aGVycyBh
cmUgc2VudCB0byB0aGUgdG9wIFdlYkFyZWEuCisgICAgaWYgKCFyZW5kZXJlcikKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIC8vIEdldCBhbiBhY2Nlc3NpYmlsaXR5IG9iamVjdCB0aGF0IGFs
cmVhZHkgZXhpc3RzLiBPbmUgc2hvdWxkIG5vdCBiZSBjcmVhdGVkIGhlcmUKKyAgICAvLyBiZWNh
dXNlIGEgcmVuZGVyIHVwZGF0ZSBtYXkgYmUgaW4gcHJvZ3Jlc3MgYW5kIGNyZWF0aW5nIGFuIEFY
IG9iamVjdCBjYW4gcmUtdHJpZ2dlciBhIGxheW91dAorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5
T2JqZWN0PiBvYmogPSBnZXQocmVuZGVyZXIpOworICAgIHdoaWxlICghb2JqICYmIHJlbmRlcmVy
KSB7CisgICAgICAgIHJlbmRlcmVyID0gcmVuZGVyZXItPnBhcmVudCgpOworICAgICAgICBvYmog
PSBnZXQocmVuZGVyZXIpOyAKKyAgICB9CisgICAgCisgICAgaWYgKCFyZW5kZXJlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKG9iaiAmJiAhcG9zdFRvRWxlbWVudCkKKyAgICAgICAgb2Jq
ID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgCisgICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gcmVuZGVyZXItPmRvY3VtZW50KCk7CisgICAgaWYgKCFvYmogJiYgZG9jdW1lbnQpCisgICAg
ICAgIG9iaiA9IGdldChkb2N1bWVudC0+cmVuZGVyZXIoKSk7CisgICAgCisgICAgaWYgKCFvYmop
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbm90aWZpY2F0aW9uc1RvUG9zdC5hcHBlbmQobWFr
ZV9wYWlyKG9iai5nZXQoKSwgbWVzc2FnZSkpOworICAgIGlmICghbV9ub3RpZmljYXRpb25Qb3N0
VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRP
bmVTaG90KDApOworfQogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQogdm9pZCBBWE9iamVjdENh
Y2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogewot
ICAgIHBvc3ROb3RpZmljYXRpb25Ub0VsZW1lbnQocmVuZGVyZXIsICJBWFNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkIik7CisgICAgcG9zdE5vdGlmaWNhdGlvbihyZW5kZXJlciwgIkFYU2VsZWN0ZWRD
aGlsZHJlbkNoYW5nZWQiLCB0cnVlKTsKIH0KICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmgJKHJldmlzaW9uIDQ0MTUwKQorKysgV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAog
I2RlZmluZSBBWE9iamVjdENhY2hlX2gKIAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3Qu
aCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KQEAgLTU3LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xh
c3MgQVhPYmplY3RDYWNoZSB7CiAgICAgcHVibGljOgorICAgICAgICBBWE9iamVjdENhY2hlKCk7
CiAgICAgICAgIH5BWE9iamVjdENhY2hlKCk7CiAgICAgICAgIAogICAgICAgICAvLyB0byBiZSB1
c2VkIHdpdGggcmVuZGVyIG9iamVjdHMKQEAgLTczLDggKzc2LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZvaWQgZGV0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7
CiAgICAgICAgIHZvaWQgYXR0YWNoV3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7Ci0gICAg
ICAgIHZvaWQgcG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBjb25zdCBTdHJpbmcmKTsK
LSAgICAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uVG9FbGVtZW50KFJlbmRlck9iamVjdCosIGNv
bnN0IFN0cmluZyYpOworICAgICAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0
KiwgY29uc3QgU3RyaW5nJiwgYm9vbCBwb3N0VG9FbGVtZW50KTsKKyAgICAgICAgdm9pZCBwb3N0
UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIGNvbnN0IFN0cmluZyYp
OwogICAgICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqKTsKICAgICAgICAg
dm9pZCBzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqKTsKICAgICAgICAgdm9p
ZCBoYW5kbGVBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZChSZW5kZXJPYmplY3QqKTsKQEAgLTEwMCw2
ICsxMDMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAKICAgICAgICAgSGFzaFNl
dDxBWElEPiBtX2lkc0luVXNlOwogICAgICAgICAKKyAgICAgICAgVGltZXI8QVhPYmplY3RDYWNo
ZT4gbV9ub3RpZmljYXRpb25Qb3N0VGltZXI7CisgICAgICAgIFZlY3RvcjxwYWlyPEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBjb25zdCBTdHJpbmc+ID4gbV9ub3RpZmljYXRpb25zVG9Qb3N0OworICAg
ICAgICB2b2lkIG5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKFRpbWVyPEFYT2JqZWN0Q2FjaGU+
Kik7CisgICAgICAgIAogICAgICAgICBBWElEIGdldEFYSUQoQWNjZXNzaWJpbGl0eU9iamVjdCop
OwogICAgICAgICBib29sIG5vZGVJc0FyaWFUeXBlKE5vZGUqIG5vZGUsIFN0cmluZyByb2xlKTsK
ICAgICB9OwpAQCAtMTExLDggKzExOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KSB7IH0KICAgICBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vz
c2liaWxpdHlPYmplY3QqKSB7IH0KICAgICBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmplY3QqKSB7IH0KLSAgICBpbmxpbmUgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIGNvbnN0IFN0cmlu
ZyYpIHsgfQotICAgIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb25U
b0VsZW1lbnQoUmVuZGVyT2JqZWN0KiwgY29uc3QgU3RyaW5nJikgeyB9CisgICAgaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmplY3QqLCBjb25zdCBT
dHJpbmcmLCBib29sIHBvc3RUb0VsZW1lbnQpIHsgfQorICAgIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgY29u
c3QgU3RyaW5nJikgeyB9CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkV2l0aFJlbmRlcmVycyhSZW5k
ZXJPYmplY3QqLCBSZW5kZXJPYmplY3QqKSB7IH0KICNlbmRpZgpJbmRleDogV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkocmV2aXNp
b24gNDQxNTApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOTYsNyArMjA5Niw3IEBAIHZvaWQgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6aGFuZGxlQWMKICAgICBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0KiBhY3RpdmVkZXNjZW5kYW50ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdCo+KGFjdGl2ZURlc2NlbmRhbnQoKSk7CiAgICAgCiAgICAgaWYgKGFjdGl2ZWRlc2NlbmRh
bnQgJiYgc2hvdWxkRm9jdXNBY3RpdmVEZXNjZW5kYW50KCkpCi0gICAgICAgIGRvYy0+YXhPYmpl
Y3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uVG9FbGVtZW50KGFjdGl2ZWRlc2NlbmRhbnQtPnJl
bmRlcmVyKCksICJBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkIik7CisgICAgICAgIGRvYy0+YXhP
YmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKGFjdGl2ZWRlc2NlbmRhbnQtPnJlbmRlcmVy
KCksICJBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkIiwgdHJ1ZSk7CiB9CiAKIApJbmRleDogV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVD
aHJvbWl1bS5jcHAJKHJldmlzaW9uIDQ0MTUwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2No
cm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEx
ICs0Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcihBY2Nlc3MKICAgICAv
LyBJbiBDaHJvbWl1bSwgQWNjZXNzaWJpbGl0eU9iamVjdHMgYXJlIHdyYXBwZWQgbGF6aWx5Lgog
fQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgU3RyaW5nJikKLXsKLX0KLQotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0
aW9uVG9FbGVtZW50KFJlbmRlck9iamVjdCosIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgY29u
c3QgU3RyaW5nJikKIHsKIH0KIApJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BWE9i
amVjdENhY2hlQXRrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3Rr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCShyZXZpc2lvbiA0NDE1MCkKKysrIFdlYkNvcmUvYWNjZXNz
aWJpbGl0eS9ndGsvQVhPYmplY3RDYWNoZUF0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE0
ICszNywxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzCiAgICAg
Z19vYmplY3RfdW5yZWYoYXRrT2JqKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90
aWZpY2F0aW9uKFJlbmRlck9iamVjdCosIGNvbnN0IFN0cmluZyYpCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgY29uc3Qg
U3RyaW5nJikKIHsKIH0KLQotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uVG9F
bGVtZW50KFJlbmRlck9iamVjdCosIGNvbnN0IFN0cmluZyYpCi17Ci19Ci0KKyAgICAKIHZvaWQg
QVhPYmplY3RDYWNoZTo6aGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoKQogewogfQpJbmRl
eDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQkocmV2
aXNpb24gNDQxNTApCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVN
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTUxLDMzICs1MSwxMSBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzCiAgICAgb2JqLT5zZXRXcmFwcGVyKFtbQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXIgYWxsb2NdIGluaXRXaXRoQWNjZXNzaWJpbGl0eU9iamVjdDpvYmpd
KTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKFJlbmRlck9iamVj
dCogcmVuZGVyZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewotICAgIGlmICghcmVuZGVyZXIpCi0gICAgICAgIHJldHVybjsK
LSAgICAKLSAgICAvLyBub3RpZmljYXRpb25zIGZvciB0ZXh0IGlucHV0IG9iamVjdHMgYXJlIHNl
bnQgdG8gdGhhdCBvYmplY3QKLSAgICAvLyBhbGwgb3RoZXJzIGFyZSBzZW50IHRvIHRoZSB0b3Ag
V2ViQXJlYQotICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBvYmogPSBnZXRPckNyZWF0
ZShyZW5kZXJlciktPm9ic2VydmFibGVPYmplY3QoKTsKLSAgICBpZiAoIW9iaikKLSAgICAgICAg
b2JqID0gZ2V0T3JDcmVhdGUocmVuZGVyZXItPmRvY3VtZW50KCktPnJlbmRlcmVyKCkpOwotCiAg
ICAgaWYgKCFvYmopCiAgICAgICAgIHJldHVybjsKLQotICAgIE5TQWNjZXNzaWJpbGl0eVBvc3RO
b3RpZmljYXRpb24ob2JqLT53cmFwcGVyKCksIG1lc3NhZ2UpOwotfQotCi12b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3ROb3RpZmljYXRpb25Ub0VsZW1lbnQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIC8vIHNlbmQgdGhlIG5vdGlmaWNhdGlvbiB0
byB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgaXRzZWxmLCBub3Qgb25lIG9mIGl0cyBhbmNlc3RvcnMK
LSAgICBpZiAoIXJlbmRlcmVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8QWNjZXNz
aWJpbGl0eU9iamVjdD4gb2JqID0gZ2V0T3JDcmVhdGUocmVuZGVyZXIpOwotICAgIGlmICghb2Jq
KQotICAgICAgICByZXR1cm47Ci0KKyAgICAKICAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZp
Y2F0aW9uKG9iai0+d3JhcHBlcigpLCBtZXNzYWdlKTsKIH0KIApJbmRleDogV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwCShyZXZpc2lvbiA0NDE1MCkK
KysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDExICs0Niw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNoV3Jh
cHBlcihBY2Nlc3MKICAgICAvLyBzb2Z0d2FyZSByZXF1ZXN0cyB0aGVtIHZpYSBnZXRfYWNjQ2hp
bGQuCiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBTdHJpbmcmKQotewotfQotCi12b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3Rp
ZmljYXRpb25Ub0VsZW1lbnQoUmVuZGVyT2JqZWN0KiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBjb25zdCBTdHJpbmcmKQogewogfQogCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA0NDE1MCkK
KysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2OSw3ICsx
NjY5LDcgQEAgdm9pZCBEb2N1bWVudDo6aW1wbGljaXRDbG9zZSgpCiAKICNpZiBQTEFURk9STShN
QUMpCiAgICAgaWYgKGYgJiYgcmVuZGVyZXIoKSAmJiB0aGlzID09IHRvcERvY3VtZW50KCkgJiYg
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgYXhPYmplY3RD
YWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uVG9FbGVtZW50KHJlbmRlcmVyKCksICJBWExvYWRDb21w
bGV0ZSIpOworICAgICAgICBheE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRpb24ocmVuZGVy
ZXIoKSwgIkFYTG9hZENvbXBsZXRlIiwgdHJ1ZSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTVkcp
CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNDQxNTApCisrKyBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzkxLDcgKzM5MSw3IEBAIHZvaWQgRWRpdG9y
OjpyZXNwb25kVG9DaGFuZ2VkQ29udGVudHMoY28KICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkgewogICAgICAgICBOb2RlKiBub2RlID0gZW5kaW5nU2VsZWN0
aW9uLnN0YXJ0KCkubm9kZSgpOwogICAgICAgICBpZiAobm9kZSkKLSAgICAgICAgICAgIG1fZnJh
bWUtPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihub2RlLT5y
ZW5kZXJlcigpLCAiQVhWYWx1ZUNoYW5nZWQiKTsKKyAgICAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbihub2RlLT5yZW5kZXJlcigp
LCAiQVhWYWx1ZUNoYW5nZWQiLCBmYWxzZSk7CiAgICAgfQogICAgIAogICAgIGlmIChjbGllbnQo
KSkKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9tYWMvU2VsZWN0aW9uQ29udHJvbGxlck1hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvbWFjL1NlbGVjdGlvbkNvbnRyb2xsZXJNYWMu
bW0JKHJldmlzaW9uIDQ0MTUwKQorKysgV2ViQ29yZS9lZGl0aW5nL21hYy9TZWxlY3Rpb25Db250
cm9sbGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgU2VsZWN0
aW9uQ29udHJvbGxlcjo6bm90aWZ5QWNjZXNzaWIKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBt
X2ZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkgJiYgbV9zZWwuc3RhcnQoKS5pc05vdE51bGwoKSAmJiBtX3NlbC5lbmQoKS5p
c05vdE51bGwoKSkKLSAgICAgICAgZG9jdW1lbnQtPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlm
aWNhdGlvbihtX3NlbC5zdGFydCgpLm5vZGUoKS0+cmVuZGVyZXIoKSwgIkFYU2VsZWN0ZWRUZXh0
Q2hhbmdlZCIpOworICAgICAgICBkb2N1bWVudC0+YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZp
Y2F0aW9uKG1fc2VsLnN0YXJ0KCkubm9kZSgpLT5yZW5kZXJlcigpLCAiQVhTZWxlY3RlZFRleHRD
aGFuZ2VkIiwgZmFsc2UpOwogCiAgICAgLy8gaWYgem9vbSBmZWF0dXJlIGlzIGVuYWJsZWQsIGlu
c2VydGlvbiBwb2ludCBjaGFuZ2VzIHNob3VsZCB1cGRhdGUgdGhlIHpvb20KICAgICBpZiAoIVVB
Wm9vbUVuYWJsZWQoKSB8fCAhbV9zZWwuaXNDYXJldCgpKQpJbmRleDogV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJl
dmlzaW9uIDQ0MTUwKQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYxOSw3ICs2MTksNyBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dT
dWJ0cmVlCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHJvb3QtPmRvY3VtZW50KCktPmF4T2JqZWN0Q2Fj
aGUoKS0+cG9zdE5vdGlmaWNhdGlvblRvRWxlbWVudChyb290LCAiQVhMYXlvdXRDb21wbGV0ZSIp
OworICAgICAgICByb290LT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmlj
YXRpb24ocm9vdCwgIkFYTGF5b3V0Q29tcGxldGUiLCB0cnVlKTsKICNlbmRpZgogI2lmIEVOQUJM
RShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICB1cGRhdGVEYXNoYm9hcmRSZWdpb25zKCk7CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCShyZXZpc2lvbiA0NDE1MCkK
KysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTczLDcgKzE3Myw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnNldElubmVyVGV4
dFZhbHUKICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmNsZWFyVW5kb1JlZG9PcGVy
YXRpb25zKCk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCAiQVhWYWx1ZUNo
YW5nZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgp
LT5wb3N0Tm90aWZpY2F0aW9uKHRoaXMsICJBWFZhbHVlQ2hhbmdlZCIsIGZhbHNlKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCg==
</data>
<flag name="review"
          id="15531"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>