<?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>42860</bug_id>
          
          <creation_ts>2010-07-22 17:16:51 -0700</creation_ts>
          <short_desc>Compositing iframe layout test crashes in WebKit2</short_desc>
          <delta_ts>2010-08-03 15:33:28 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>255089</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-22 17:16:51 -0700</bug_when>
    <thetext>This test crashes:
LayoutTests/compositing/iframes/iframe-size-to-zero.html
because LayerBackedDrawingArea::updateLayoutRunLoopObserverFired() can cause the LayerBackedDrawingArea to get destroyed from under it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258895</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-02 08:50:22 -0700</bug_when>
    <thetext>*** Bug 43309 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258903</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-02 08:56:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/8259777&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259078</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-02 13:46:15 -0700</bug_when>
    <thetext>Here&apos;s the stack where the drawing area is getting blown away:


#0  WebKit::LayerBackedDrawingArea::platformClear (this=0x11c19c190) at /Volumes/InternalData/Development/webkit/OpenSource/WebKit2/WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:54
#1  0x000000010073f43e in WebKit::LayerBackedDrawingArea::~LayerBackedDrawingArea (this=0x11c19c190) at /Volumes/InternalData/Development/webkit/OpenSource/WebKit2/WebProcess/WebPage/LayerBackedDrawingArea.cpp:66
#2  0x0000000100782f49 in WTF::deleteOwnedPtr&lt;WebKit::DrawingArea&gt; (ptr=0x11c19c190) at OwnPtrCommon.h:57
#3  0x000000010078413a in WTF::OwnPtr&lt;WebKit::DrawingArea&gt;::operator= (this=0x119d01178, o=@0x7fff5fbfe3a0) at OwnPtr.h:129
#4  0x0000000100781ad9 in WebKit::WebPage::changeAcceleratedCompositingMode (this=0x119d010f0, layer=0x0) at /Volumes/InternalData/Development/webkit/OpenSource/WebKit2/WebProcess/WebPage/WebPage.cpp:189
#5  0x0000000100781b60 in WebKit::WebPage::exitAcceleratedCompositingMode (this=0x119d010f0) at /Volumes/InternalData/Development/webkit/OpenSource/WebKit2/WebProcess/WebPage/WebPage.cpp:205
#6  0x000000010076d473 in WebKit::WebChromeClient::attachRootGraphicsLayer (this=0x119d00c70, layer=0x0) at /Volumes/InternalData/Development/webkit/OpenSource/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:505
#7  0x0000000101c9af8a in WebCore::RenderLayerCompositor::detachRootPlatformLayer (this=0x11c1d64e0) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderLayerCompositor.cpp:1409
#8  0x0000000101c9b146 in WebCore::RenderLayerCompositor::destroyRootPlatformLayer (this=0x11c1d64e0) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderLayerCompositor.cpp:1343
#9  0x0000000101c9c957 in WebCore::RenderLayerCompositor::enableCompositingMode (this=0x11c1d64e0, enable=false) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderLayerCompositor.cpp:122
#10 0x0000000101c9e5b6 in WebCore::RenderLayerCompositor::computeCompositingRequirements (this=0x11c1d64e0, layer=0x11c19c6b8, overlapMap=0x7fff5fbfe6e0, compositingState=@0x7fff5fbfe6c0, layersChanged=@0x7fff5fbfe6dc) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderLayerCompositor.cpp:644
#11 0x0000000101c9e841 in WebCore::RenderLayerCompositor::updateCompositingLayers (this=0x11c1d64e0, updateType=WebCore::CompositingUpdateAfterLayoutOrStyleChange, updateRoot=0x11c19c6b8) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderLayerCompositor.cpp:215
#12 0x00000001016c127f in WebCore::FrameView::updateCompositingLayers (this=0x11c1d4fa0) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/page/FrameView.cpp:497
#13 0x00000001016c1e0f in WebCore::FrameView::layout (this=0x11c1d4fa0, allowSubtree=true) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/page/FrameView.cpp:808
#14 0x00000001016c2545 in WebCore::FrameView::layoutIfNeededRecursive (this=0x11c1d4fa0) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/page/FrameView.cpp:2012
#15 0x0000000100780b28 in WebKit::WebPage::layoutIfNeeded (this=0x119d010f0) at /Volumes/InternalData/Development/webkit/OpenSource/WebKit2/WebProcess/WebPage/WebPage.cpp:286
#16 0x000000010073f9ed in WebKit::LayerBackedDrawingArea::updateLayoutRunLoopObserverFired (this=0x11c19c190) at /Volumes/InternalData/Development/webkit/OpenSource/WebKit2/WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:152
#17 0x000000010073fa29 in WebKit::LayerBackedDrawingArea::updateLayoutRunLoopObserverCallback (info=0x11c19c190) at /Volumes/InternalData/Development/webkit/OpenSource/WebKit2/WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:147
#18 0x00007fff870ae077 in __CFRunLoopDoObservers ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259228</commentid>
    <comment_count>4</comment_count>
      <attachid>63284</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-02 17:57:06 -0700</bug_when>
    <thetext>Created attachment 63284
Part one: make DrawingArea ref-counted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259636</commentid>
    <comment_count>5</comment_count>
      <attachid>63284</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-03 12:47:56 -0700</bug_when>
    <thetext>Comment on attachment 63284
Part one: make DrawingArea ref-counted

Reference counts. Is there nothing they can&apos;t do?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259692</commentid>
    <comment_count>6</comment_count>
      <attachid>63377</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-03 14:33:05 -0700</bug_when>
    <thetext>Created attachment 63377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259696</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-03 14:36:19 -0700</bug_when>
    <thetext>Attachment 63377 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/Shared/DrawingAreaBase.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit2/Shared/DrawingAreaBase.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259729</commentid>
    <comment_count>8</comment_count>
      <attachid>63377</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-08-03 15:24:52 -0700</bug_when>
    <thetext>Comment on attachment 63377
Patch

&gt; +class DrawingAreaBase {
&gt; +public:
&gt; +    enum Type {
&gt; +        None,
&gt; +        ChunkedUpdateDrawingAreaType,
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +        LayerBackedDrawingAreaType,
&gt; +#endif
&gt; +    };
&gt; +    
&gt; +    typedef uint64_t DrawingAreaID;
&gt; +    
&gt; +    virtual ~DrawingAreaBase() { }
&gt; +    
&gt; +    Type type() const { return m_type; }
&gt; +    DrawingAreaID id() const { return m_id; }
&gt; +
&gt; +    struct DrawingAreaInfo {
&gt; +        Type type;
&gt; +        DrawingAreaID id;
&gt; +
&gt; +        DrawingAreaInfo(Type type = None, DrawingAreaID indentifier = 0)

Typo, &quot;indentifier.&quot;

&gt; +protected:
&gt; +    DrawingAreaBase(Type type, DrawingAreaID indentifier)
&gt; +        : m_type(type)
&gt; +        , m_id(indentifier)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259735</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-08-03 15:33:28 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64594
http://trac.webkit.org/changeset/64595</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63284</attachid>
            <date>2010-08-02 17:57:06 -0700</date>
            <delta_ts>2010-08-03 14:33:01 -0700</delta_ts>
            <desc>Part one: make DrawingArea ref-counted</desc>
            <filename>bug-42860-20100802175704.patch</filename>
            <type>text/plain</type>
            <size>5309</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
MzVhMzM5MjIzOWIzMjZmMzUyZTY4NGJlNjExZjg3ZGZjZDAzZDE1MC4uMWIzN2IzZTA0NWE4OTVl
NDFhY2NmN2EyNjRkMTk5NTZhNTA1MzYzZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOC0wMiAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21wb3NpdGluZyBpZnJhbWUgbGF5b3V0IHRl
c3QgY3Jhc2hlcyBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00Mjg2MAorICAgICAgICAKKyAgICAgICAgUGFydCBvbmUgb2YgdGhlIGZp
eDogbWFrZSBEcmF3aW5nQXJlYSByZWYtY291bnRlZCwgc28gdGhhdCB0aGUgb2JqZWN0CisgICAg
ICAgIGNhbiBzdXJ2aWRlIGEgc3dhcCBpbiBkcmF3aW5nIGFyZWFzIGluc2lkZSB0aGUgcnVuIGxv
b3Agb2JzZXJ2ZXIgY2FsbGJhY2suCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6Y3JlYXRlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJC
YWNrZWREcmF3aW5nQXJlYTo6cGxhdGZvcm1DbGVhcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
QmFja2VkRHJhd2luZ0FyZWE6OnVwZGF0ZUxheW91dFJ1bkxvb3BPYnNlcnZlckNhbGxiYWNrKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6dXBkYXRlTGF5b3V0UnVu
TG9vcE9ic2VydmVyRmlyZWQpOgorCiAyMDEwLTA4LTAyICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmluZGV4IDliZTZiNGYxOTIyNWQxMjU2Y2Iw
NTc2MDk0MjkyY2FlNmMwODdiNTQuLjA0MDY3NjdiZjRmYjI5NTljNTdmYTBjYWQwY2ZkNzdhZmQ2
ZTlhN2UgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKQEAg
LTMzLDI0ICszMywyMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotRHJhd2luZ0FyZWEqIERy
YXdpbmdBcmVhOjpjcmVhdGUoVHlwZSB0eXBlLCBXZWJQYWdlKiB3ZWJQYWdlKQorUGFzc1JlZlB0
cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6OmNyZWF0ZShUeXBlIHR5cGUsIFdlYlBhZ2UqIHdl
YlBhZ2UpCiB7Ci0gICAgRHJhd2luZ0FyZWEqIGRyYXdpbmdBcmVhID0gMDsKICAgICBzd2l0Y2gg
KHR5cGUpIHsKICAgICAgICAgY2FzZSBOb25lOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBjYXNlIENodW5rZWRVcGRhdGVE
cmF3aW5nQXJlYVR5cGU6Ci0gICAgICAgICAgICBkcmF3aW5nQXJlYSA9IG5ldyBDaHVua2VkVXBk
YXRlRHJhd2luZ0FyZWEod2ViUGFnZSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhKHdlYlBhZ2UpKTsK
KwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oTUFDKQogICAg
ICAgICBjYXNlIExheWVyQmFja2VkRHJhd2luZ0FyZWFUeXBlOgotICAgICAgICAgICAgZHJhd2lu
Z0FyZWEgPSBuZXcgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYSh3ZWJQYWdlKTsKLSAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBMYXllckJhY2tlZERyYXdp
bmdBcmVhKHdlYlBhZ2UpKTsKICNlbmRpZgogICAgIH0KIAotICAgIHJldHVybiBkcmF3aW5nQXJl
YTsKKyAgICByZXR1cm4gMDsKIH0KIAogRHJhd2luZ0FyZWE6OkRyYXdpbmdBcmVhKFR5cGUgdHlw
ZSwgV2ViUGFnZSogd2ViUGFnZSkKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5oCmluZGV4IGNkNDYxODg0ZjMzZDNiYjU4ZWExNTU4NDhhYTdiYTU2OTM5ODQwOTIuLmExODBl
MTRlYmY2YjJiMjdmM2M2OTE3NDgwOTdkODg2MzRhN2IxYzYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuaApAQCAtMjcsNiArMjcsOCBAQAogI2RlZmluZSBEcmF3aW5n
QXJlYV9oCiAKICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBJbnRSZWN0OwpAQCAtNDYsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgRHJhd2luZ0FyZWEgeworY2xhc3MgRHJh
d2luZ0FyZWEgOiBwdWJsaWMgUmVmQ291bnRlZDxEcmF3aW5nQXJlYT4gewogcHVibGljOgogICAg
IC8vIFRoaXMgaGFzIHRvIG1hdGNoIERyYXdpbmdBcmVhUHJveHk6OlR5cGUuCiAgICAgZW51bSBU
eXBlIHsKQEAgLTU4LDcgKzYwLDggQEAgcHVibGljOgogICAgIH07CiAKICAgICAvLyBGSVhNRTog
SXQgbWlnaHQgbWFrZSBzZW5zZSB0byBtb3ZlIHRoaXMgY3JlYXRlIGZ1bmN0aW9uIGludG8gYSBm
YWN0b3J5IHN0eWxlIGNsYXNzLiAKLSAgICBzdGF0aWMgRHJhd2luZ0FyZWEqIGNyZWF0ZShUeXBl
LCBXZWJQYWdlKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RHJhd2luZ0FyZWE+IGNyZWF0ZShU
eXBlLCBXZWJQYWdlKik7CisKICAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYSgpOwogICAgIAogICAg
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IGE1ZDk1NTc4ZTNkNDEzMmI2YzM2OWIxNjczYTE0OTUwMWRmOGVh
ZTYuLjM1Y2JjMTgxZDRjNDRjM2Q5ZWZiMmZiNDgxNDhkOTllYjdjNTRjOTMgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBwcml2YXRlOgogICAg
IEhhc2hNYXA8dWludDY0X3QsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsKIAogICAgIFdlYkNvcmU6
OkludFNpemUgbV92aWV3U2l6ZTsKLSAgICBPd25QdHI8RHJhd2luZ0FyZWE+IG1fZHJhd2luZ0Fy
ZWE7CisgICAgUmVmUHRyPERyYXdpbmdBcmVhPiBtX2RyYXdpbmdBcmVhOwogCiAgICAgSW5qZWN0
ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50IG1fZWRpdG9yQ2xpZW50OwogICAgIEluamVjdGVkQnVu
ZGxlUGFnZUxvYWRlckNsaWVudCBtX2xvYWRlckNsaWVudDsKZGlmZiAtLWdpdCBhL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9MYXllckJhY2tlZERyYXdpbmdBcmVhTWFjLm1tIGIvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyQmFja2VkRHJhd2luZ0FyZWFNYWMubW0K
aW5kZXggY2E5OTM3NzY5ZDM5NjYwZTlkYmRmOTI1MzUxNjdjYzhjOWVlOTM0OS4uMGM2NDRmNDI4
NjlhY2U2ZmY3ODA1YWY1NjBhYjJkMjY1ZGY3YWJjYyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyQmFja2VkRHJhd2luZ0FyZWFNYWMubW0KKysrIGIvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyQmFja2VkRHJhd2luZ0FyZWFNYWMubW0K
QEAgLTYwLDYgKzYwLDggQEAgdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhOjpwbGF0Zm9ybUNs
ZWFyKCkKICAgICBXS0NBUmVtb3RlTGF5ZXJDbGllbnRJbnZhbGlkYXRlKG1fcmVtb3RlTGF5ZXJS
ZWYuZ2V0KCkpOwogICAgIG1fcmVtb3RlTGF5ZXJSZWYgPSAwOwogI2VuZGlmCisKKyAgICBtX2F0
dGFjaGVkID0gZmFsc2U7CiB9CiAKIHZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6YXR0YWNo
Q29tcG9zaXRpbmdDb250ZXh0KCkKQEAgLTE0MywxNCArMTQ1LDE4IEBAIHZvaWQgTGF5ZXJCYWNr
ZWREcmF3aW5nQXJlYTo6cmVtb3ZlVXBkYXRlTGF5b3V0UnVuTG9vcE9ic2VydmVyKCkKIAogdm9p
ZCBMYXllckJhY2tlZERyYXdpbmdBcmVhOjp1cGRhdGVMYXlvdXRSdW5Mb29wT2JzZXJ2ZXJDYWxs
YmFjayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0aXZpdHksIHZvaWQqIGluZm8p
CiB7Ci0gICAgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYSogZHJhd2luZ0FyZWEgPSByZWludGVycHJl
dF9jYXN0PExheWVyQmFja2VkRHJhd2luZ0FyZWEqPihpbmZvKTsKKyAgICAvLyBLZWVwIHRoZSBk
cmF3aW5nIGFyZWEgYWxpdmUgd2hpbGUgcnVubmluZyB0aGUgY2FsbGJhY2ssIHNpbmNlIHRoYXQg
ZG9lcyBsYXlvdXQsCisgICAgLy8gd2hpY2ggbWlnaHQgcmVwbGFjZSB0aGlzIGRyYXdpbmcgYXJl
YSB3aXRoIG9uZSBvZiBhbm90aGVyIHR5cGUuCisgICAgUmVmUHRyPExheWVyQmFja2VkRHJhd2lu
Z0FyZWE+IGRyYXdpbmdBcmVhID0gcmVpbnRlcnByZXRfY2FzdDxMYXllckJhY2tlZERyYXdpbmdB
cmVhKj4oaW5mbyk7CiAgICAgZHJhd2luZ0FyZWEtPnVwZGF0ZUxheW91dFJ1bkxvb3BPYnNlcnZl
ckZpcmVkKCk7CiB9CiAKIHZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6dXBkYXRlTGF5b3V0
UnVuTG9vcE9ic2VydmVyRmlyZWQoKQogewogICAgIG1fd2ViUGFnZS0+bGF5b3V0SWZOZWVkZWQo
KTsKLSAgICBzeW5jQ29tcG9zaXRpbmdMYXllcnMoKTsKKyAgICAKKyAgICBpZiAobV9hdHRhY2hl
ZCkKKyAgICAgICAgc3luY0NvbXBvc2l0aW5nTGF5ZXJzKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63377</attachid>
            <date>2010-08-03 14:33:05 -0700</date>
            <delta_ts>2010-08-03 15:24:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42860-20100803143303.patch</filename>
            <type>text/plain</type>
            <size>39516</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
MWY5ZWQ1YTljMDRmNjVjODc5M2Q5YmU2OTlmYWViOWQ3MmRmYjUxMS4uZTA2MTU4M2E5M2E5ZTU1
MTk0MTQ2YTEyNWVjNzc4YmEwMzhlOGQ3NyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw3NCBAQAogMjAxMC0wOC0wMyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21wb3NpdGluZyBpZnJhbWUgbGF5b3V0IHRl
c3QgY3Jhc2hlcyBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00Mjg2MAorICAgICAgICAKKyAgICAgICAgRml4IGFzc2VydGlvbiBjYXVz
ZWQgYnkgYSBEcmF3aW5nQXJlYSBoYW5kbGluZyBhIG1lc3NhZ2UgdGhhdCB3YXMgdGFyZ2V0dGVk
IGF0IGFuIG9sZGVyIERyYXdpbmdBcmVhCisgICAgICAgIHRoYXQgaXQgaGFzIHJlcGxhY2VkLgor
ICAgICAgICAKKyAgICAgICAgVGhpcyB3YXMgZG9uZSBieSBhc3NpZ25pbmcgYSB1bmlxdWUgSUQg
dG8gZWFjaCBEcmF3aW5nQXJlYVByb3h5IHRoYXQgZ2V0cyBjcmVhdGVkLCBhbmQgcGFzc2luZwor
ICAgICAgICB0aGlzIElELCBhbG9uZyB3aXRoIHRoZSB0eXBlLCB0byB0aGUgV2ViUHJvY2VzcyB2
aWEgYW4gZW5jb2RlZCBEcmF3aW5nQXJlYUluZm8uIEVhY2ggbWVzc2FnZQorICAgICAgICBhbHNv
IGluY2x1ZGVzIHRoaXMgSUQuIE1lc3NhZ2VzIHdpdGggYW4gSUQgdGhhdCBkb2Vzbid0IG1hdGNo
IHRoYXQgb2YgdGhlIGN1cnJlbnQgRHJhd2luZ0FyZWEgYXJlIGlnbm9yZWQuCisgICAgICAgIAor
ICAgICAgICBSZWZhY3RvcmVkIHNvbWUgY29tbW9uIGNvZGUgYW5kIGRhdGEgaW50byBhIERyYXdp
bmdBcmVhQmFzZSBjbGFzcyB3aGljaCBpcyBzaGFyZWQsIGFuZCBhZGRpbmcKKyAgICAgICAgZW5j
b2RlL2RlY29kZSBvZiBEcmF3aW5nQXJlYUluZm8uCisKKyAgICAgICAgKiBTaGFyZWQvRHJhd2lu
Z0FyZWFCYXNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhQmFzZTo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFCYXNlOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9EcmF3aW5nQXJlYUJhc2UuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OkRyYXdpbmdBcmVhQmFzZTo6KToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFCYXNlOjp+
RHJhd2luZ0FyZWFCYXNlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFCYXNlOjp0eXBl
KToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFCYXNlOjppZCk6CisgICAgICAgIChXZWJL
aXQ6OkRyYXdpbmdBcmVhQmFzZTo6RHJhd2luZ0FyZWFJbmZvOjpEcmF3aW5nQXJlYUluZm8pOgor
ICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYUJhc2U6OkRyYXdpbmdBcmVhQmFzZSk6CisgICAg
ICAgIChDb3JlSVBDOjopOgorICAgICAgICAqIFVJUHJvY2Vzcy9DaHVua2VkVXBkYXRlRHJhd2lu
Z0FyZWFQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJl
YVByb3h5OjpzZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdB
cmVhUHJveHk6OnNldFBhZ2VJc1Zpc2libGUpOgorICAgICAgICAoV2ViS2l0OjpDaHVua2VkVXBk
YXRlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OkRyYXdp
bmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpuZXh0RHJh
d2luZ0FyZWFJRCk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpzZXRTaXplKToKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpzZXRQYWdlSXNWaXNpYmxl
KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAqIFdlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVw
ZGF0ZURyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2h1bmtlZFVwZGF0ZURyYXdp
bmdBcmVhOjpDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEpOgorICAgICAgICAoV2ViS2l0OjpDaHVu
a2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2lu
Z0FyZWE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpEcmF3aW5nQXJl
YSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyQmFja2VkRHJhd2luZ0FyZWEuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpMYXllckJhY2tlZERyYXdpbmdBcmVhOjpMYXllckJhY2tlZERyYXdpbmdBcmVh
KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdB
cmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpX
ZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2hhbmdlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRp
ZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAg
ICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKKzIwMTAtMDgtMDMgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KIAogICAgICAgICBDb21wb3NpdGluZyBpZnJhbWUgbGF5b3V0IHRlc3QgY3Jhc2hlcyBpbiBX
ZWJLaXQyCmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUJhc2UuY3BwIGIv
V2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFCYXNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTM5ZmNmOTA5
YTM0NThlNTIxZGUwNWM3ZDZjOTgyNmE4OTU3MjU2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
Mi9TaGFyZWQvRHJhd2luZ0FyZWFCYXNlLmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgIkRyYXdpbmdBcmVhQmFzZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBEcmF3aW5nQXJlYUJhc2U6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgRHJhd2luZ0FyZWFJbmZvIGluZm8odHlwZSgpLCBpZCgpKTsK
KyAgICBlbmNvZGVyLmVuY29kZShpbmZvKTsKK30KKworYm9vbCBEcmF3aW5nQXJlYUJhc2U6OmRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIERyYXdpbmdBcmVhSW5mbyYg
aW5mbykKK3sKKyAgICB1aW50MzJfdCBkcmF3aW5nQXJlYVR5cGU7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShkcmF3aW5nQXJlYVR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBE
cmF3aW5nQXJlYUlEIGRyYXdpbmdBcmVhSUQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkcmF3
aW5nQXJlYUlEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW5mby50eXBlID0gc3Rh
dGljX2Nhc3Q8VHlwZT4oZHJhd2luZ0FyZWFUeXBlKTsKKyAgICBpbmZvLmlkID0gZHJhd2luZ0Fy
ZWFJRDsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhQmFzZS5oIGIvV2ViS2l0Mi9TaGFy
ZWQvRHJhd2luZ0FyZWFCYXNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJlMzQ1NmI3YWMxOWZiODhkYzliZGY2
NGY1NDljMjNmNTcyNzhhNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvU2hhcmVkL0RyYXdp
bmdBcmVhQmFzZS5oCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERyYXdp
bmdBcmVhQmFzZV9oCisjZGVmaW5lIERyYXdpbmdBcmVhQmFzZV9oCisKKyNpbmNsdWRlICJBcmd1
bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgSW50UmVjdDsK
KyAgICBjbGFzcyBJbnRTaXplOworfQorCituYW1lc3BhY2UgQ29yZUlQQyB7CisgICAgY2xhc3Mg
QXJndW1lbnREZWNvZGVyOworICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2Fn
ZUlEOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRHJhd2luZ0FyZWFCYXNlIHsK
K3B1YmxpYzoKKyAgICBlbnVtIFR5cGUgeworICAgICAgICBOb25lLAorICAgICAgICBDaHVua2Vk
VXBkYXRlRHJhd2luZ0FyZWFUeXBlLAorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
KyAgICAgICAgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVR5cGUsCisjZW5kaWYKKyAgICB9OworICAg
IAorICAgIHR5cGVkZWYgdWludDY0X3QgRHJhd2luZ0FyZWFJRDsKKyAgICAKKyAgICB2aXJ0dWFs
IH5EcmF3aW5nQXJlYUJhc2UoKSB7IH0KKyAgICAKKyAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KKyAgICBEcmF3aW5nQXJlYUlEIGlkKCkgY29uc3QgeyByZXR1cm4gbV9p
ZDsgfQorCisgICAgc3RydWN0IERyYXdpbmdBcmVhSW5mbyB7CisgICAgICAgIFR5cGUgdHlwZTsK
KyAgICAgICAgRHJhd2luZ0FyZWFJRCBpZDsKKworICAgICAgICBEcmF3aW5nQXJlYUluZm8oVHlw
ZSB0eXBlID0gTm9uZSwgRHJhd2luZ0FyZWFJRCBpbmRlbnRpZmllciA9IDApCisgICAgICAgICAg
ICA6IHR5cGUodHlwZSkKKyAgICAgICAgICAgICwgaWQoaW5kZW50aWZpZXIpCisgICAgICAgIHsK
KyAgICAgICAgfQorICAgIH07CisgICAgCisgICAgLy8gVGhlIERyYXdpbmdBcmVhUHJveHkgc2hv
dWxkIG5ldmVyIGJlIGRlY29kZWQgaXRzZWxmLiBJbnN0ZWFkLCB0aGUgRHJhd2luZ0FyZWEgc2hv
dWxkIGJlIGRlY29kZWQuCisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyJiwgRHJhd2luZ0FyZWFJbmZvJik7CisKK3Byb3RlY3RlZDoKKyAgICBEcmF3aW5n
QXJlYUJhc2UoVHlwZSB0eXBlLCBEcmF3aW5nQXJlYUlEIGluZGVudGlmaWVyKQorICAgICAgICA6
IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1faWQoaW5kZW50aWZpZXIpCisgICAgeworICAgIH0K
KworICAgIFR5cGUgbV90eXBlOworICAgIERyYXdpbmdBcmVhSUQgbV9pZDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgQ29yZUlQQyB7Cit0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYktpdDo6RHJhd2luZ0FyZWFCYXNlOjpEcmF3aW5nQXJlYUluZm8+
IDogU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJLaXQ6OkRyYXdpbmdBcmVhQmFzZTo6RHJhd2luZ0Fy
ZWFJbmZvPiB7IH07Cit9CisKKyNlbmRpZiAvLyBEcmF3aW5nQXJlYUJhc2VfaApkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHkuY3BwIGIv
V2ViS2l0Mi9VSVByb2Nlc3MvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHkuY3BwCmluZGV4
IDFlZDZlMmIzNjc3NTllZWZlYjA5OGE0NGE5ZjNlZWI4YmFmNjY5ODMuLjA2YTRkMWRlNzBiY2Fk
ZTQzNmE2NmMzZTI0NDUzMGM3NmQ0ODg5NTQgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNz
L0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vz
cy9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9p
ZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiB2
aWV3U2l6ZSkKICAgICBtX2lzV2FpdGluZ0ZvckRpZFNldEZyYW1lTm90aWZpY2F0aW9uID0gdHJ1
ZTsKIAogICAgIHBhZ2UtPnByb2Nlc3MoKS0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgp
OwotICAgIHBhZ2UtPnByb2Nlc3MoKS0+c2VuZChEcmF3aW5nQXJlYU1lc3NhZ2U6OlNldFNpemUs
IHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbih2aWV3U2l6ZSkpOworICAgIHBhZ2UtPnByb2Nl
c3MoKS0+c2VuZChEcmF3aW5nQXJlYU1lc3NhZ2U6OlNldFNpemUsIHBhZ2UtPnBhZ2VJRCgpLCBD
b3JlSVBDOjpJbihpZCgpLCB2aWV3U2l6ZSkpOwogfQogCiB2b2lkIENodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYVByb3h5OjpzZXRQYWdlSXNWaXNpYmxlKGJvb2wgaXNWaXNpYmxlKQpAQCAtMTAxLDEy
ICsxMDEsMTIgQEAgdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6c2V0UGFnZUlz
VmlzaWJsZShib29sIGlzVmlzaWJsZSkKIAogICAgIGlmICghbV9pc1Zpc2libGUpIHsKICAgICAg
ICAgLy8gVGVsbCB0aGUgd2ViIHByb2Nlc3MgdGhhdCBpdCBkb2Vzbid0IG5lZWQgdG8gcGFpbnQg
YW55dGhpbmcgZm9yIG5vdy4KLSAgICAgICAgcGFnZS0+cHJvY2VzcygpLT5zZW5kKERyYXdpbmdB
cmVhTWVzc2FnZTo6U3VzcGVuZFBhaW50aW5nLCBwYWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6SW4o
KSk7CisgICAgICAgIHBhZ2UtPnByb2Nlc3MoKS0+c2VuZChEcmF3aW5nQXJlYU1lc3NhZ2U6OlN1
c3BlbmRQYWludGluZywgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGlkKCkpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAKICAgICAvLyBUaGUgcGFnZSBpcyBub3cgdmlzaWJsZSwg
cmVzdW1lIHBhaW50aW5nLgotICAgIHBhZ2UtPnByb2Nlc3MoKS0+c2VuZChEcmF3aW5nQXJlYU1l
c3NhZ2U6OlJlc3VtZVBhaW50aW5nLCBwYWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6SW4obV9mb3Jj
ZVJlcGFpbnRXaGVuUmVzdW1pbmdQYWludGluZykpOworICAgIHBhZ2UtPnByb2Nlc3MoKS0+c2Vu
ZChEcmF3aW5nQXJlYU1lc3NhZ2U6OlJlc3VtZVBhaW50aW5nLCBwYWdlLT5wYWdlSUQoKSwgQ29y
ZUlQQzo6SW4oaWQoKSwgbV9mb3JjZVJlcGFpbnRXaGVuUmVzdW1pbmdQYWludGluZykpOwogICAg
IG1fZm9yY2VSZXBhaW50V2hlblJlc3VtaW5nUGFpbnRpbmcgPSBmYWxzZTsKIH0KICAgICAKQEAg
LTE0MSw3ICsxNDEsNyBAQCB2b2lkIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5Ojp1cGRh
dGUoVXBkYXRlQ2h1bmsqIHVwZGF0ZUNodW5rKQogICAgIH0KIAogICAgIFdlYlBhZ2VQcm94eSog
cGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBwYWdlLT5wcm9jZXNzKCktPnNlbmQoRHJhd2luZ0Fy
ZWFNZXNzYWdlOjpEaWRVcGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbigpKTsKKyAg
ICBwYWdlLT5wcm9jZXNzKCktPnNlbmQoRHJhd2luZ0FyZWFNZXNzYWdlOjpEaWRVcGRhdGUsIHBh
Z2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpZCgpKSk7CiB9CiAKIHZvaWQgQ2h1bmtlZFVwZGF0
ZURyYXdpbmdBcmVhUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIm
IGFyZ3VtZW50cykKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKaW5kZXggMGI2
NDcyMjgwYzhmY2QxMzUwMjk2MGUzMGU3NmE5OTM0YTkzYzc1Mi4uZTQ2MWY5MDBlYmMwYzViN2Nj
ZmJlODM1YjcwZWRlYTUxNDU3NWJlMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eS5jcHAKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eS5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBEcmF3aW5nQXJl
YVByb3h5OjpEcmF3aW5nQXJlYVByb3h5KFR5cGUgdHlwZSkKLSAgICA6IG1fdHlwZSh0eXBlKQor
ICAgIDogRHJhd2luZ0FyZWFCYXNlKHR5cGUsIG5leHREcmF3aW5nQXJlYUlEKCkpCiB7CiB9CiAK
QEAgLTM2LDQgKzM2LDEwIEBAIERyYXdpbmdBcmVhUHJveHk6On5EcmF3aW5nQXJlYVByb3h5KCkK
IHsKIH0KIAorRHJhd2luZ0FyZWFQcm94eTo6RHJhd2luZ0FyZWFJRCBEcmF3aW5nQXJlYVByb3h5
OjpuZXh0RHJhd2luZ0FyZWFJRCgpCit7CisgICAgc3RhdGljIERyYXdpbmdBcmVhSUQgbmV4dElE
ID0gMTsKKyAgICByZXR1cm4gKytuZXh0SUQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDM4MTdlYjFmNTVjNzBmYWRhZmJj
YjU4MDQ1Y2I0NjRlZGNjNjJkNTkuLmY3MjU5ZjgzNDllMDliZTc0OTg3NTgxZDFkN2U1YWM1NmFi
ZDNiMzIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAor
KysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTI2LDIzICsyNiwx
MiBAQAogI2lmbmRlZiBEcmF3aW5nQXJlYVByb3h5X2gKICNkZWZpbmUgRHJhd2luZ0FyZWFQcm94
eV9oCiAKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJEcmF3aW5nQXJl
YUJhc2UuaCIKIAogI2lmIFBMQVRGT1JNKFFUKQogY2xhc3MgUVBhaW50ZXI7CiAjZW5kaWYKIAot
bmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFz
cyBDb25uZWN0aW9uOwotICAgIGNsYXNzIE1lc3NhZ2VJRDsKLX0KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotICAgIGNsYXNzIEludFNpemU7Ci0gICAgY2xhc3MgSW50UmVjdDsKLX0KLQogbmFtZXNw
YWNlIFdlYktpdCB7CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC01MywyMSArNDIsMTIgQEAgdHlw
ZWRlZiBIREMgUGxhdGZvcm1EcmF3aW5nQ29udGV4dDsKIHR5cGVkZWYgUVBhaW50ZXIqIFBsYXRm
b3JtRHJhd2luZ0NvbnRleHQ7CiAjZW5kaWYKIAotY2xhc3MgRHJhd2luZ0FyZWFQcm94eSB7Citj
bGFzcyBEcmF3aW5nQXJlYVByb3h5IDogcHVibGljIERyYXdpbmdBcmVhQmFzZSB7CiBwdWJsaWM6
Ci0gICAgLy8gVGhpcyBoYXMgdG8gbWF0Y2ggRHJhd2luZ0FyZWE6OlR5cGUuCi0gICAgZW51bSBU
eXBlIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhVHlw
ZSwKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgICAgIExheWVyQmFja2Vk
RHJhd2luZ0FyZWFUeXBlLAotI2VuZGlmCi0gICAgfTsKKyAgICBzdGF0aWMgRHJhd2luZ0FyZWFJ
RCBuZXh0RHJhd2luZ0FyZWFJRCgpOwogCiAgICAgdmlydHVhbCB+RHJhd2luZ0FyZWFQcm94eSgp
OwogCi0gICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0KICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJikgPSAwOwogCkBAIC03NiwxMiArNTYsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2V0UGFnZUlzVmlzaWJsZShib29sIGlzVmlzaWJsZSkgPSAwOwogICAgIAotICAgIC8v
IFRoZSBEcmF3aW5nQXJlYVByb3h5IHNob3VsZCBuZXZlciBiZSBkZWNvZGVkIGl0c2VsZi4gSW5z
dGVhZCwgdGhlIERyYXdpbmdBcmVhIHNob3VsZCBiZSBkZWNvZGVkLgotICAgIHZpcnR1YWwgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotICAgIHsK
LSAgICAgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fdHlwZSkpOwot
ICAgIH0KLQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoQ29tcG9zaXRpbmdDb250ZXh0KHVpbnQzMl90IGNvbnRleHRJRCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkZXRhY2hDb21wb3NpdGluZ0NvbnRleHQoKSA9IDA7CkBAIC04OSwxMCAr
NjMsOCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBEcmF3aW5nQXJlYVByb3h5KFR5cGUp
OwotCi0gICAgVHlwZSBtX3R5cGU7CiB9OwotICAgIAorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI2VuZGlmIC8vIERyYXdpbmdBcmVhUHJveHlfaApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNz
L0xheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eS5jcHAKaW5kZXggYWJkMGIyYmMwMzBhZGEzYWZj
NzY1MmU0MjIyNzQ2ZmNmMGE3ZTEzMC4uYjIzNzVmYzAzNjNkNTMzZmYxYTNmZDMwMjJiOWI4ZjJm
NmIwMmU3YSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5n
QXJlYVByb3h5LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdB
cmVhUHJveHkuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJl
YVByb3h5OjpzZXRTaXplKGNvbnN0IEludFNpemUmIHZpZXdTaXplKQogICAgIG1faXNXYWl0aW5n
Rm9yRGlkU2V0RnJhbWVOb3RpZmljYXRpb24gPSB0cnVlOwogCiAgICAgcGFnZS0+cHJvY2Vzcygp
LT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7Ci0gICAgcGFnZS0+cHJvY2VzcygpLT5j
b25uZWN0aW9uKCktPnNlbmQoRHJhd2luZ0FyZWFNZXNzYWdlOjpTZXRTaXplLCBwYWdlLT5wYWdl
SUQoKSwgQ29yZUlQQzo6SW4odmlld1NpemUpKTsKKyAgICBwYWdlLT5wcm9jZXNzKCktPmNvbm5l
Y3Rpb24oKS0+c2VuZChEcmF3aW5nQXJlYU1lc3NhZ2U6OlNldFNpemUsIHBhZ2UtPnBhZ2VJRCgp
LCBDb3JlSVBDOjpJbihpZCgpLCB2aWV3U2l6ZSkpOwogfQogCiAjaWYgIVBMQVRGT1JNKE1BQykK
QEAgLTk0LDEyICs5NCwxMiBAQCB2b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eTo6c2V0
UGFnZUlzVmlzaWJsZShib29sIGlzVmlzaWJsZSkKIAogICAgIGlmICghbV9pc1Zpc2libGUpIHsK
ICAgICAgICAgLy8gVGVsbCB0aGUgd2ViIHByb2Nlc3MgdGhhdCBpdCBkb2Vzbid0IG5lZWQgdG8g
cGFpbnQgYW55dGhpbmcgZm9yIG5vdy4KLSAgICAgICAgcGFnZS0+cHJvY2VzcygpLT5jb25uZWN0
aW9uKCktPnNlbmQoRHJhd2luZ0FyZWFNZXNzYWdlOjpTdXNwZW5kUGFpbnRpbmcsIHBhZ2UtPnBh
Z2VJRCgpLCBDb3JlSVBDOjpJbigpKTsKKyAgICAgICAgcGFnZS0+cHJvY2VzcygpLT5jb25uZWN0
aW9uKCktPnNlbmQoRHJhd2luZ0FyZWFNZXNzYWdlOjpTdXNwZW5kUGFpbnRpbmcsIHBhZ2UtPnBh
Z2VJRCgpLCBDb3JlSVBDOjpJbihpZCgpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
CiAgICAgLy8gVGhlIHBhZ2UgaXMgbm93IHZpc2libGUuCi0gICAgcGFnZS0+cHJvY2VzcygpLT5j
b25uZWN0aW9uKCktPnNlbmQoRHJhd2luZ0FyZWFNZXNzYWdlOjpSZXN1bWVQYWludGluZywgcGFn
ZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKCkpOworICAgIHBhZ2UtPnByb2Nlc3MoKS0+Y29ubmVj
dGlvbigpLT5zZW5kKERyYXdpbmdBcmVhTWVzc2FnZTo6UmVzdW1lUGFpbnRpbmcsIHBhZ2UtPnBh
Z2VJRCgpLCBDb3JlSVBDOjpJbihpZCgpKSk7CiAgICAgCiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCByZXF1ZXN0IGEgZnVsbCByZXBhaW50IGhlcmUgaWYgbmVlZGVkLgogfQpAQCAtMTE1LDcgKzEx
NSw3IEBAIHZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpkaWRTZXRTaXplKCkKIHZv
aWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGUoKQogewogICAgIFdlYlBhZ2VQ
cm94eSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBwYWdlLT5wcm9jZXNzKCktPmNvbm5lY3Rp
b24oKS0+c2VuZChEcmF3aW5nQXJlYU1lc3NhZ2U6OkRpZFVwZGF0ZSwgcGFnZS0+cGFnZUlEKCks
IENvcmVJUEM6OkluKCkpOworICAgIHBhZ2UtPnByb2Nlc3MoKS0+Y29ubmVjdGlvbigpLT5zZW5k
KERyYXdpbmdBcmVhTWVzc2FnZTo6RGlkVXBkYXRlLCBwYWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6
SW4oaWQoKSkpOwogfQogCiB2b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgYXJndW1lbnRzKQpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmggYi9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaAppbmRleCA4MGYzY2FiNTk4
ZGUzYjIwN2NiOTk0NjYyMzM0OGRiYzdjZGY2NTVhLi41YzA3MmJlMmRjYjZiYzA0NDM2NTEzNGYw
MTUxMWRkMTYyM2NlNzYyIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllckJhY2tl
ZERyYXdpbmdBcmVhUHJveHkuaAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllckJhY2tlZERy
YXdpbmdBcmVhUHJveHkuaApAQCAtNTgsMTIgKzU4LDYgQEAgcHVibGljOgogICAgIExheWVyQmFj
a2VkRHJhd2luZ0FyZWFQcm94eShQbGF0Zm9ybVdlYlZpZXcqKTsKICAgICB2aXJ0dWFsIH5MYXll
ckJhY2tlZERyYXdpbmdBcmVhUHJveHkoKTsKIAotICAgIC8vIFRoZSBEcmF3aW5nQXJlYVByb3h5
IHNob3VsZCBuZXZlciBiZSBkZWNvZGVkIGl0c2VsZi4gSW5zdGVhZCwgdGhlIERyYXdpbmdBcmVh
IHNob3VsZCBiZSBkZWNvZGVkLgotICAgIHZpcnR1YWwgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgRHJhd2luZ0FyZWFQ
cm94eTo6ZW5jb2RlKGVuY29kZXIpOwotICAgIH0KLQogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJv
eHkqIHBhZ2UoKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNmQ4NWJiZGE5
MTZkYTliYzA0MjkzMGRhMGMwNmFjYzE2NzQyYmM3MC4uZTQ1NWIzYjVmYjdjZThjNzUwYzliYWRh
NmY5NmU5ZmEzYTE0OThlZiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OTUs
MTAgKzU5NSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQCiAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IFBhc3MgdGhlIHJlYWwgc2l6ZS4KICAgICAgICAgICAgICAgICByZXBseS5lbmNvZGUo
Q29yZUlQQzo6SW4obmV3UGFnZS0+cGFnZUlEKCksIEludFNpemUoMTAwLCAxMDApLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFnZS0+cGFnZU5hbWVzcGFj
ZSgpLT5jb250ZXh0KCktPnByZWZlcmVuY2VzKCktPnN0b3JlKCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICoobmV3UGFnZS0+bV9kcmF3aW5nQXJlYS5nZXQoKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihuZXdQYWdlLT5k
cmF3aW5nQXJlYSgpKSkpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGVuY29kZSBhIGRyYXdpbmcgYXJlYSB0eXBlIGhlcmUgaW5zdGVh
ZC4KLSAgICAgICAgICAgICAgICByZXBseS5lbmNvZGUoQ29yZUlQQzo6SW4oc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KDApLCBJbnRTaXplKCksIFdlYlByZWZlcmVuY2VzU3RvcmUoKSwgMCkpOworICAg
ICAgICAgICAgICAgIHJlcGx5LmVuY29kZShDb3JlSVBDOjpJbihzdGF0aWNfY2FzdDx1aW50NjRf
dD4oMCksIEludFNpemUoKSwgV2ViUHJlZmVyZW5jZXNTdG9yZSgpLCBEcmF3aW5nQXJlYUJhc2U6
OkRyYXdpbmdBcmVhSW5mbygpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQpAQCAtNjY2LDcgKzY2NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBkaWRDaGFuZ2VBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nKGNvbXBvc2l0aW5nKTsKLSAgICAgICAgICAgIHJlcGx5LmVuY29kZShDb3Jl
SVBDOjpJbihzdGF0aWNfY2FzdDx1aW50MzJfdD4oZHJhd2luZ0FyZWEoKS0+dHlwZSgpKSkpOwor
ICAgICAgICAgICAgcmVwbHkuZW5jb2RlKCooZHJhd2luZ0FyZWEoKSkpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU0NDRlNDNi
OTlkMTc1ZmVhZmQ1M2FhOTk2NmRhMzFhMzRhMzA1MmIuLmY2YjQ1MTYyOWM5ZjU0ZjRiNTZkZWFh
MDExNzdlZTlmNDQwMjdmNDUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0zMCw2ICszMCw4IEBACiAJCTBGNTI2NUJBMTFERDM3N0YwMDA2RDMzQyAvKiBM
YXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTI2NUI4MTFERDM3N0YwMDA2RDMzQyAvKiBMYXllckJhY2tl
ZERyYXdpbmdBcmVhUHJveHkuaCAqLzsgfTsKIAkJMEY1MjY1QkMxMUREMzc4NjAwMDZEMzNDIC8q
IExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTI2NUJCMTFERDM3ODYwMDA2RDMzQyAvKiBMYXll
ckJhY2tlZERyYXdpbmdBcmVhUHJveHlNYWMubW0gKi87IH07CiAJCTBGNTI2Njc0MTFERDRBNDkw
MDA2RDMzQyAvKiBXZWJQcm9jZXNzUHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUyNjY3MzExREQ0QTQ5MDAwNkQzM0MgLyogV2ViUHJv
Y2Vzc1Byb3h5TWFjLm1tICovOyB9OworCQkwRkI2NTkyMzEyMDhCNERCMDA0NDgxNkMgLyogRHJh
d2luZ0FyZWFCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkI2NTkyMjEyMDhCNERCMDA0NDgxNkMgLyogRHJhd2luZ0FyZWFCYXNlLmggKi87IH07
CisJCTBGQjY1OUE2MTIwOEI5RUUwMDQ0ODE2QyAvKiBEcmF3aW5nQXJlYUJhc2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCNjU5QTUxMjA4QjlF
RTAwNDQ4MTZDIC8qIERyYXdpbmdBcmVhQmFzZS5jcHAgKi87IH07CiAJCTFBMTA0NzVBMTEwQTVB
RDUwMEE0M0VDRCAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUExQzdERTEwMEU4NDZFMDA3OERFQkMg
LyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwogCQkxQTFDNEVDODEwRDA2MDk5MDA1
RTY3RTcgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQUExQzc5QTEwMEU3RkM1MDA3OERFQkMgLyogV2ViQ29yZS5m
cmFtZXdvcmsgKi87IH07CiAJCTFBMUM2NDlCMTFGNDE3NDIwMDU1M0MxOSAvKiBXZWJDb250ZXh0
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEx
QzY0ODYxMUY0MTVCNzAwNTUzQzE5IC8qIFdlYkNvbnRleHRNYWMubW0gKi87IH07CkBAIC0zMjUs
NiArMzI3LDggQEAKIAkJMEY1MjY1QjgxMUREMzc3RjAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJh
d2luZ0FyZWFQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckJh
Y2tlZERyYXdpbmdBcmVhUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1
MjY1QkIxMUREMzc4NjAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eU1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExheWVyQmFja2VkRHJh
d2luZ0FyZWFQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1MjY2
NzMxMURENEE0OTAwMDZEMzNDIC8qIFdlYlByb2Nlc3NQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlByb2Nlc3NQcm94eU1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZCNjU5MjIxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdp
bmdBcmVhQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmF3aW5nQXJl
YUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZCNjU5QTUxMjA4QjlFRTAw
NDQ4MTZDIC8qIERyYXdpbmdBcmVhQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEcmF3aW5nQXJlYUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxMDU4QzdCMUZFQTU1ODVFMTFDQTJDQkIgLyogQ29jb2EuZnJhbWV3b3JrICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdv
cms7IG5hbWUgPSBDb2NvYS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9Db2NvYS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCTFB
MUM2NDg2MTFGNDE1QjcwMDU1M0MxOSAvKiBXZWJDb250ZXh0TWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29udGV4dE1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUEyMTYxQUUxMUYzNzY2NDAwOEFEMEY1IC8qIE5QUnVudGltZU9i
amVjdE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOUFJ1bnRpbWVPYmpl
Y3RNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2Niw2ICs3NzAsOCBAQAog
CQkJCUJDMTExQjVGMTEyRjYzNUUwMDMzN0JBQiAvKiBDb3JlSVBDU3VwcG9ydCAqLywKIAkJCQlC
QzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAogCQkJCUJDRjA0QzhDMTFGRjlCN0Qw
MEY4NkE1OCAvKiBBUElPYmplY3QuaCAqLywKKwkJCQkwRkI2NTkyMjEyMDhCNERCMDA0NDgxNkMg
LyogRHJhd2luZ0FyZWFCYXNlLmggKi8sCisJCQkJMEZCNjU5QTUxMjA4QjlFRTAwNDQ4MTZDIC8q
IERyYXdpbmdBcmVhQmFzZS5jcHAgKi8sCiAJCQkJQkNGMDRDOEUxMUZGOUY2RTAwRjg2QTU4IC8q
IFdlYlN0cmluZy5oICovLAogCQkJCUJDREI4NkMwMTIwMEZCOTcwMDcyNTRCRSAvKiBXZWJVUkwu
aCAqLywKIAkJCQkxQTZGOUY4RTExRTEzRUZDMDBEQjEzNzEgLyogQ29tbWFuZExpbmUuaCAqLywK
QEAgLTEzMzksNiArMTM0NSw3IEBACiAJCQkJQkNDQjc1QzYxMjAzQTFDRTAwMjIyRDFCIC8qIFdl
YkNvbnRleHRNZXNzYWdlS2luZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQjk0ODQ3MTFGRjRC
NjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQjk0ODQ5
MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJTZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGQjY1OTIzMTIwOEI0REIwMDQ0ODE2QyAvKiBEcmF3aW5nQXJlYUJhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMTU0Miw2ICsxNTQ5LDcgQEAKIAkJCQlCQ0RCODU4MzEyMDBFQzU3MDA3MjU0
QkUgLyogV0tUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQzQjk0ODQ2MTFGRjRCNjUwMDAz
MkIzOSAvKiBXZWJQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDNCOTQ4NDgxMUZG
NEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkwRkI2NTlBNjEyMDhCOUVFMDA0NDgxNkMgLyogRHJhd2luZ0FyZWFCYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCA3ZTkxOGFmMWU0MTI4MDBmYWVkY2ZiOTAyNzVjMmNiM2U4
YzQ2ZmNiLi5iMDUzYjUyOTVhMmEwMTAyZjYwZmIzZjkyOTc4MDI4Mjg2ZTNjM2VjIDEwMDY0NAot
LS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtMTEwLDEwICsxMTAsMTAgQEAgUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVX
aW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG8KICAgICB1
aW50NjRfdCBuZXdQYWdlSUQgPSAwOwogICAgIEludFNpemUgdmlld1NpemU7CiAgICAgV2ViUHJl
ZmVyZW5jZXNTdG9yZSBzdG9yZTsKLSAgICB1aW50MzJfdCBkcmF3aW5nQXJlYVR5cGU7CisgICAg
RHJhd2luZ0FyZWFCYXNlOjpEcmF3aW5nQXJlYUluZm8gZHJhd2luZ0FyZWFJbmZvOwogICAgIGlm
ICghV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kU3luYyhXZWJQYWdlUHJv
eHlNZXNzYWdlOjpDcmVhdGVOZXdQYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3BhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbigpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3Jl
SVBDOjpPdXQobmV3UGFnZUlELCB2aWV3U2l6ZSwgc3RvcmUsIGRyYXdpbmdBcmVhVHlwZSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvcmVJ
UEM6Ok91dChuZXdQYWdlSUQsIHZpZXdTaXplLCBzdG9yZSwgZHJhd2luZ0FyZWFJbmZvKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29yZUlQ
Qzo6Q29ubmVjdGlvbjo6Tm9UaW1lb3V0KSkgewogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBA
IC0xMjEsNyArMTIxLDcgQEAgUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJh
bWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG8KICAgICBpZiAoIW5ld1Bh
Z2VJRCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBXZWJQYWdlKiBuZXdXZWJQYWdlID0gV2Vi
UHJvY2Vzczo6c2hhcmVkKCkuY3JlYXRlV2ViUGFnZShuZXdQYWdlSUQsIHZpZXdTaXplLCBzdG9y
ZSwgc3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWE6OlR5cGU+KGRyYXdpbmdBcmVhVHlwZSkpOworICAg
IFdlYlBhZ2UqIG5ld1dlYlBhZ2UgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jcmVhdGVXZWJQYWdl
KG5ld1BhZ2VJRCwgdmlld1NpemUsIHN0b3JlLCBkcmF3aW5nQXJlYUluZm8pOwogICAgIHJldHVy
biBuZXdXZWJQYWdlLT5jb3JlUGFnZSgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmNwcAppbmRleCA0MGEwNjlm
ZDMxODIzZDc4ZWVkZjk3YjdmODRiYjI3NDZhMDE5NmIxLi4yNGJhZGZmYzY2MGI3YmVmMDRlMThl
NGYyMDRmMWRlMjc0MmI0NTdkIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5jcHAKQEAgLTM3LDggKzM3LDggQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1DaHVua2VkVXBk
YXRlRHJhd2luZ0FyZWE6OkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYShXZWJQYWdlKiB3ZWJQYWdl
KQotICAgIDogRHJhd2luZ0FyZWEoQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhVHlwZSwgd2ViUGFn
ZSkKK0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYTo6Q2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhKERy
YXdpbmdBcmVhSUQgaWRlbnRpZmllciwgV2ViUGFnZSogd2ViUGFnZSkKKyAgICA6IERyYXdpbmdB
cmVhKENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVR5cGUsIGlkZW50aWZpZXIsIHdlYlBhZ2UpCiAg
ICAgLCBtX2lzV2FpdGluZ0ZvclVwZGF0ZShmYWxzZSkKICAgICAsIG1fcGFpbnRpbmdJc1N1c3Bl
bmRlZChmYWxzZSkKICAgICAsIG1fZGlzcGxheVRpbWVyKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJ1
bkxvb3AoKSwgdGhpcywgJkNodW5rZWRVcGRhdGVEcmF3aW5nQXJlYTo6ZGlzcGxheSkKQEAgLTE4
Miw2ICsxODIsMTQgQEAgdm9pZCBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWE6OmRpZFVwZGF0ZSgp
CiAKIHZvaWQgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhOjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyJiBhcmd1bWVudHMpCiB7CisgICAgRHJhd2luZ0FyZWFJRCB0YXJnZXRE
cmF3aW5nQXJlYUlEOworICAgIGlmICghYXJndW1lbnRzLmRlY29kZShDb3JlSVBDOjpPdXQodGFy
Z2V0RHJhd2luZ0FyZWFJRCkpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBjYW4gc3dp
dGNoIGRyYXdpbmcgYXJlYXMgb24gdGhlIGZseSwgc28gaWYgdGhpcyBtZXNzYWdlIHdhcyB0YXJn
ZXR0ZWQgYXQgYW4gb2Jzb2xldGUgZHJhd2luZyBhcmVhLCBpZ25vcmUgaXQuCisgICAgaWYgKHRh
cmdldERyYXdpbmdBcmVhSUQgIT0gaWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgc3dpdGNo
IChtZXNzYWdlSUQuZ2V0PERyYXdpbmdBcmVhTWVzc2FnZTo6S2luZD4oKSkgewogICAgICAgICBj
YXNlIERyYXdpbmdBcmVhTWVzc2FnZTo6U2V0U2l6ZTogewogICAgICAgICAgICAgSW50U2l6ZSBz
aXplOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0
ZURyYXdpbmdBcmVhLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWEuaAppbmRleCBhNWJhZmMyZjQzZjg4MDMzYWZjM2VhYzAzZWU2OGIzZWY4M2Vj
NGJjLi45YjkzN2Q5OTJmNjZiNmE3OWEyMzgyNDQzM2M5MzIzODY0N2RjZDJmIDEwMDY0NAotLS0g
YS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuaAor
KysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEu
aApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBVcGRhdGVDaHVuazsKIAogY2xhc3MgQ2h1bmtlZFVw
ZGF0ZURyYXdpbmdBcmVhIDogcHVibGljIERyYXdpbmdBcmVhIHsKIHB1YmxpYzoKLSAgICBDaHVu
a2VkVXBkYXRlRHJhd2luZ0FyZWEoV2ViUGFnZSopOworICAgIENodW5rZWRVcGRhdGVEcmF3aW5n
QXJlYShEcmF3aW5nQXJlYUlEIGlkZW50aWZpZXIsIFdlYlBhZ2UqKTsKICAgICB2aXJ0dWFsIH5D
aHVua2VkVXBkYXRlRHJhd2luZ0FyZWEoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
V2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIGJvb2wgaW1tZWRpYXRlKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcCBiL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAppbmRleCAwNDA2NzY3YmY0
ZmIyOTU5YzU3ZmEwY2FkMGNmZDc3YWZkNmU5YTdlLi4yNzMxMjZiMmQ4OTBiZGExY2I3NjU3MTM4
MjFkODBhODIzOTJhOWZmIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVm
UHRyPERyYXdpbmdBcmVhPiBEcmF3aW5nQXJlYTo6Y3JlYXRlKFR5cGUgdHlwZSwgV2ViUGFnZSog
d2ViUGFnZSkKK1Bhc3NSZWZQdHI8RHJhd2luZ0FyZWE+IERyYXdpbmdBcmVhOjpjcmVhdGUoVHlw
ZSB0eXBlLCBEcmF3aW5nQXJlYUlEIGlkZW50aWZpZXIsIFdlYlBhZ2UqIHdlYlBhZ2UpCiB7CiAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgTm9uZToKQEAgLTQxLDE5ICs0MSwxOSBA
QCBQYXNzUmVmUHRyPERyYXdpbmdBcmVhPiBEcmF3aW5nQXJlYTo6Y3JlYXRlKFR5cGUgdHlwZSwg
V2ViUGFnZSogd2ViUGFnZSkKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgQ2h1
bmtlZFVwZGF0ZURyYXdpbmdBcmVhVHlwZToKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhKHdlYlBhZ2UpKTsKKyAgICAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhKGlkZW50aWZpZXIsIHdlYlBh
Z2UpKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oTUFD
KQogICAgICAgICBjYXNlIExheWVyQmFja2VkRHJhd2luZ0FyZWFUeXBlOgotICAgICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBMYXllckJhY2tlZERyYXdpbmdBcmVhKHdlYlBhZ2UpKTsKKyAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYShpZGVu
dGlmaWVyLCB3ZWJQYWdlKSk7CiAjZW5kaWYKICAgICB9CiAKICAgICByZXR1cm4gMDsKIH0KIAot
RHJhd2luZ0FyZWE6OkRyYXdpbmdBcmVhKFR5cGUgdHlwZSwgV2ViUGFnZSogd2ViUGFnZSkKLSAg
ICA6IG1fdHlwZSh0eXBlKQorRHJhd2luZ0FyZWE6OkRyYXdpbmdBcmVhKFR5cGUgdHlwZSwgRHJh
d2luZ0FyZWFJRCBpZGVudGlmaWVyLCBXZWJQYWdlKiB3ZWJQYWdlKQorICAgIDogRHJhd2luZ0Fy
ZWFCYXNlKHR5cGUsIGlkZW50aWZpZXIpCiAgICAgLCBtX3dlYlBhZ2Uod2ViUGFnZSkKIHsKIH0K
ZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IGExODBlMTRlYmY2
YjJiMjdmM2M2OTE3NDgwOTdkODg2MzRhN2IxYzYuLjFjYTNlMjc0OGJlMzFhZThkMjRhYjk0MGY3
NDRjNTljZTQ2NjRiNWUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEu
aApAQCAtMjYsNDYgKzI2LDI4IEBACiAjaWZuZGVmIERyYXdpbmdBcmVhX2gKICNkZWZpbmUgRHJh
d2luZ0FyZWFfaAogCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFCYXNlLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgSW50UmVj
dDsKLSAgICBjbGFzcyBJbnRTaXplOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBjbGFzcyBHcmFwaGljc0xheWVyOwogI2VuZGlmCiB9CiAKLW5hbWVzcGFjZSBDb3JlSVBD
IHsKLSAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQ29ubmVjdGlvbjsKLSAg
ICBjbGFzcyBNZXNzYWdlSUQ7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQ
YWdlOwogCi1jbGFzcyBEcmF3aW5nQXJlYSA6IHB1YmxpYyBSZWZDb3VudGVkPERyYXdpbmdBcmVh
PiB7CitjbGFzcyBEcmF3aW5nQXJlYSA6IHB1YmxpYyBEcmF3aW5nQXJlYUJhc2UsIHB1YmxpYyBS
ZWZDb3VudGVkPERyYXdpbmdBcmVhPiB7CiBwdWJsaWM6Ci0gICAgLy8gVGhpcyBoYXMgdG8gbWF0
Y2ggRHJhd2luZ0FyZWFQcm94eTo6VHlwZS4KLSAgICBlbnVtIFR5cGUgewotICAgICAgICBOb25l
LAotICAgICAgICBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFUeXBlLAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLSAgICAgICAgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVR5cGUsCi0j
ZW5kaWYKLSAgICB9OwotCiAgICAgLy8gRklYTUU6IEl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gbW92
ZSB0aGlzIGNyZWF0ZSBmdW5jdGlvbiBpbnRvIGEgZmFjdG9yeSBzdHlsZSBjbGFzcy4gCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RHJhd2luZ0FyZWE+IGNyZWF0ZShUeXBlLCBXZWJQYWdlKik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RHJhd2luZ0FyZWE+IGNyZWF0ZShUeXBlLCBEcmF3aW5nQXJl
YUlELCBXZWJQYWdlKik7CiAKICAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYSgpOwogICAgIAotICAg
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotICAgIAogICAgIHZpcnR1YWwg
dm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIGJvb2wg
aW1tZWRpYXRlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdp
bmRvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHJlY3QsIGJvb2wgaW1tZWRpYXRlKSA9IDA7CkBAIC04NCwxMyArNjYs
OSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyJikgPSAwOwogCi0gICAgLy8gVGhlIERyYXdpbmdBcmVhIHNob3VsZCBuZXZlciBiZSBlbmNv
ZGVkIGl0c2VsZi4gSW5zdGVhZCwgdGhlIERyYXdpbmdBcmVhUHJveHkgc2hvdWxkIGJlIGVuY29k
ZWQuCi0gICAgLy8gVGhlIERyYXdpbmdBcmVhIHNob3VsZCBhbHNvIG5ldmVyIGJlIGRlY29kZWQg
aXRzZWxmLiBJbnN0ZWFkLCB0aGUgRHJhd2luZ0FyZWE6OlR5cGUgc2hvdWxkIGJlIGRlY29kZWQu
Ci0KIHByb3RlY3RlZDoKLSAgICBEcmF3aW5nQXJlYShUeXBlLCBXZWJQYWdlKik7CisgICAgRHJh
d2luZ0FyZWEoVHlwZSwgRHJhd2luZ0FyZWFJRCwgV2ViUGFnZSopOwogCi0gICAgVHlwZSBtX3R5
cGU7CiAgICAgV2ViUGFnZSogbV93ZWJQYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5jcHAgYi9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmNwcAppbmRleCBjY2ExY2Rm
NGRmZDNiMzRmNzBhYmE1NTJlOWM0ZDlmZThkOGRhNzBhLi4yMTNlZmExOWEwOTQ4MjVjY2Q4Nzkx
YWExZThlN2ZmOWE3OGY2MzAyIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmNwcApAQCAtMzksOCArMzksOCBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUxheWVyQmFja2VkRHJh
d2luZ0FyZWE6OkxheWVyQmFja2VkRHJhd2luZ0FyZWEoV2ViUGFnZSogd2ViUGFnZSkKLSAgICA6
IERyYXdpbmdBcmVhKExheWVyQmFja2VkRHJhd2luZ0FyZWFUeXBlLCB3ZWJQYWdlKQorTGF5ZXJC
YWNrZWREcmF3aW5nQXJlYTo6TGF5ZXJCYWNrZWREcmF3aW5nQXJlYShEcmF3aW5nQXJlYUlEIGlk
ZW50aWZpZXIsIFdlYlBhZ2UqIHdlYlBhZ2UpCisgICAgOiBEcmF3aW5nQXJlYShMYXllckJhY2tl
ZERyYXdpbmdBcmVhVHlwZSwgaWRlbnRpZmllciwgd2ViUGFnZSkKICAgICAsIG1fc3luY1RpbWVy
KFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJ1bkxvb3AoKSwgdGhpcywgJkxheWVyQmFja2VkRHJhd2lu
Z0FyZWE6OnN5bmNDb21wb3NpdGluZ0xheWVycykKICNpZiBQTEFURk9STShNQUMpICYmIEhBVkUo
SE9TVEVEX0NPUkVfQU5JTUFUSU9OKQogICAgICwgbV9yZW1vdGVMYXllclJlZigwKQpAQCAtMTQ4
LDYgKzE0OCwxNCBAQCB2b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWE6OmRpZFVwZGF0ZSgpCiAK
IHZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgYXJndW1lbnRzKQogeworICAgIERyYXdpbmdBcmVhSUQgdGFyZ2V0RHJhd2lu
Z0FyZWFJRDsKKyAgICBpZiAoIWFyZ3VtZW50cy5kZWNvZGUoQ29yZUlQQzo6T3V0KHRhcmdldERy
YXdpbmdBcmVhSUQpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2UgY2FuIHN3aXRjaCBk
cmF3aW5nIGFyZWFzIG9uIHRoZSBmbHksIHNvIGlmIHRoaXMgbWVzc2FnZSB3YXMgdGFyZ2V0dGVk
IGF0IGFuIG9ic29sZXRlIGRyYXdpbmcgYXJlYSwgaWdub3JlIGl0LgorICAgIGlmICh0YXJnZXRE
cmF3aW5nQXJlYUlEICE9IGlkKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIHN3aXRjaCAobWVz
c2FnZUlELmdldDxEcmF3aW5nQXJlYU1lc3NhZ2U6OktpbmQ+KCkpIHsKICAgICAgICAgY2FzZSBE
cmF3aW5nQXJlYU1lc3NhZ2U6OlNldFNpemU6IHsKICAgICAgICAgICAgIEludFNpemUgc2l6ZTsK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyQmFja2VkRHJhd2lu
Z0FyZWEuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyQmFja2VkRHJhd2luZ0Fy
ZWEuaAppbmRleCBiNDQ2NzQxNTVkYzAzZTk3YjUyZmQ2MjQxZGNmODA2YTgyZDhkOTY5Li4zNzQ5
NDIwZmJjOWEyZWI2MDYxODVkYzc5ZDEwYzhkODc2MGVjNTUyIDEwMDY0NAotLS0gYS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmgKKysrIGIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5oCkBAIC00NiwxNCAr
NDYsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgX19XS0NBUmVtb3RlTGF5ZXJDbGllbnRSZWYgKldLQ0FS
ZW1vdGVMYXllckNsaWVudFJlZjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHcmFw
aGljc0NvbnRleHQ7CiAgICAgY2xhc3MgR3JhcGhpY3NMYXllcjsKLSAgICBjbGFzcyBJbnRSZWN0
OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTGF5ZXJCYWNrZWREcmF3aW5nQXJl
YSA6IHB1YmxpYyBEcmF3aW5nQXJlYSwgcHJpdmF0ZSBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICBMYXllckJhY2tlZERyYXdpbmdBcmVhKFdlYlBhZ2UqKTsKKyAg
ICBMYXllckJhY2tlZERyYXdpbmdBcmVhKERyYXdpbmdBcmVhSUQgaWRlbnRpZmllciwgV2ViUGFn
ZSopOwogICAgIHZpcnR1YWwgfkxheWVyQmFja2VkRHJhd2luZ0FyZWEoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIGJv
b2wgaW1tZWRpYXRlKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
NzZjNWNhMjhjZjNmZDhiODgyN2I3YTc5NmFjZGM2MmRhNWM1YzEwMS4uNmE2M2QwNWZkMjc0ZDlj
NDg1OTJmNTUyN2ZmMmExMDUzM2U2MWFkNCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTc0LDE0ICs3NCwxNCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0YXRpYyBX
VEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciB3ZWJQYWdlQ291bnRlcigiV2ViUGFnZSIpOwogI2Vu
ZGlmCiAKLVBhc3NSZWZQdHI8V2ViUGFnZT4gV2ViUGFnZTo6Y3JlYXRlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0
b3JlLCBEcmF3aW5nQXJlYTo6VHlwZSBkcmF3aW5nQXJlYVR5cGUpCitQYXNzUmVmUHRyPFdlYlBh
Z2U+IFdlYlBhZ2U6OmNyZWF0ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IEludFNpemUmIHZpZXdT
aXplLCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSwgY29uc3QgRHJhd2luZ0FyZWFC
YXNlOjpEcmF3aW5nQXJlYUluZm8mIGRyYXdpbmdBcmVhSW5mbykKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYlBhZ2UocGFnZUlELCB2aWV3U2l6ZSwgc3RvcmUsIGRyYXdpbmdBcmVhVHlw
ZSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUGFnZShwYWdlSUQsIHZpZXdTaXplLCBz
dG9yZSwgZHJhd2luZ0FyZWFJbmZvKSk7CiB9CiAKLVdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3Qg
cGFnZUlELCBjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9y
ZSYgc3RvcmUsIERyYXdpbmdBcmVhOjpUeXBlIGRyYXdpbmdBcmVhVHlwZSkKK1dlYlBhZ2U6Oldl
YlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUsIGNvbnN0IERyYXdpbmdBcmVhQmFzZTo6RHJhd2luZ0Fy
ZWFJbmZvJiBkcmF3aW5nQXJlYUluZm8pCiAgICAgOiBtX3ZpZXdTaXplKHZpZXdTaXplKQotICAg
ICwgbV9kcmF3aW5nQXJlYShEcmF3aW5nQXJlYTo6Y3JlYXRlKGRyYXdpbmdBcmVhVHlwZSwgdGhp
cykpCisgICAgLCBtX2RyYXdpbmdBcmVhKERyYXdpbmdBcmVhOjpjcmVhdGUoZHJhd2luZ0FyZWFJ
bmZvLnR5cGUsIGRyYXdpbmdBcmVhSW5mby5pZCwgdGhpcykpCiAgICAgLCBtX3BhZ2VJRChwYWdl
SUQpCiB7CiAgICAgQVNTRVJUKG1fcGFnZUlEKTsKQEAgLTE3OCwxNSArMTc4LDE0IEBAIHZvaWQg
V2ViUGFnZTo6Y2hhbmdlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciogbGF5ZXIpCiAgICAgCiAgICAgLy8gVGVsbCB0aGUgVUkgcHJvY2VzcyB0aGF0IGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nIGNoYW5nZWQuIEl0IG1heSByZXNwb25kIGJ5IGNoYW5naW5n
CiAgICAgLy8gZHJhd2luZyBhcmVhIHR5cGVzLgotICAgIHVpbnQzMl90IG5ld0RyYXdpbmdBcmVh
VHlwZTsKKyAgICBEcmF3aW5nQXJlYTo6RHJhd2luZ0FyZWFJbmZvIG5ld0RyYXdpbmdBcmVhSW5m
bzsKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKFdlYlBh
Z2VQcm94eU1lc3NhZ2U6OkRpZENoYW5nZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhZ2VJRCwgQ29yZUlQ
Qzo6SW4oY29tcG9zaXRpbmcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29yZUlQQzo6T3V0KG5ld0RyYXdpbmdBcmVhVHlwZSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JlSVBDOjpPdXQobmV3RHJh
d2luZ0FyZWFJbmZvKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENvcmVJUEM6OkNvbm5lY3Rpb246Ok5vVGltZW91dCk7CiAgICAgCi0gICAgRHJhd2lu
Z0FyZWE6OlR5cGUgbmV3VHlwZSA9IHN0YXRpY19jYXN0PERyYXdpbmdBcmVhOjpUeXBlPihuZXdE
cmF3aW5nQXJlYVR5cGUpOwotICAgIGlmIChuZXdUeXBlICE9IGRyYXdpbmdBcmVhKCktPnR5cGUo
KSkgewotICAgICAgICBtX2RyYXdpbmdBcmVhID0gRHJhd2luZ0FyZWE6OmNyZWF0ZShuZXdUeXBl
LCB0aGlzKTsKKyAgICBpZiAobmV3RHJhd2luZ0FyZWFJbmZvLnR5cGUgIT0gZHJhd2luZ0FyZWEo
KS0+dHlwZSgpKSB7CisgICAgICAgIG1fZHJhd2luZ0FyZWEgPSBEcmF3aW5nQXJlYTo6Y3JlYXRl
KG5ld0RyYXdpbmdBcmVhSW5mby50eXBlLCBuZXdEcmF3aW5nQXJlYUluZm8uaWQsIHRoaXMpOwog
ICAgICAgICBtX2RyYXdpbmdBcmVhLT5zZXROZWVkc0Rpc3BsYXkoSW50UmVjdChJbnRQb2ludCgw
LCAwKSwgbV92aWV3U2l6ZSkpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCAzNWNiYzE4MWQ0YzQ0YzNkOWVmYjJmYjQ4MTQ4ZDk5ZWI3YzU0YzkzLi4yOTY0
YTRjMWJiMjg3MmRjNjVhYWExNmM4ODJkMDNhODFlMWM0YTllIDEwMDY0NAotLS0gYS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIFdlYlBhZ2UgOiBwdWJsaWMg
QVBJT2JqZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlw
ZUJ1bmRsZVBhZ2U7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQYWdlPiBjcmVhdGUodWlu
dDY0X3QgcGFnZUlELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYsIERyYXdpbmdBcmVhOjpUeXBlKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJQYWdlPiBjcmVhdGUodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiB2aWV3U2l6ZSwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIGNvbnN0IERyYXdpbmdB
cmVhQmFzZTo6RHJhd2luZ0FyZWFJbmZvJik7CiAgICAgfldlYlBhZ2UoKTsKIAogICAgIHZvaWQg
Y2xvc2UoKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFdl
YkV2ZW50KiBjdXJyZW50RXZlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJQYWdlKHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUsIGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmLCBEcmF3aW5nQXJlYTo6VHlwZSk7CisgICAgV2ViUGFnZSh1aW50NjRfdCBw
YWdlSUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHZpZXdTaXplLCBjb25zdCBXZWJQcmVmZXJl
bmNlc1N0b3JlJiwgY29uc3QgRHJhd2luZ0FyZWFCYXNlOjpEcmF3aW5nQXJlYUluZm8mKTsKIAog
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNjhhM2ZiOWRhN2VjYjU4ODZkNTkyMTMyMDZjMzk4
ODExMTliMTIzZC4uN2Q0OGM2YThhODA4YTRjZjEwZWNkYjViNjkyMjFhMDFmMjE5ZTc0YSAxMDA2
NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTI2LDE0ICsxMjYsMTQgQEAgV2ViUGFnZSog
V2ViUHJvY2Vzczo6d2ViUGFnZSh1aW50NjRfdCBwYWdlSUQpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cGFnZU1hcC5nZXQocGFnZUlEKS5nZXQoKTsKIH0KIAotV2ViUGFnZSogV2ViUHJvY2Vzczo6Y3Jl
YXRlV2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSwgRHJhd2luZ0FyZWE6OlR5cGUgZHJhd2luZ0Fy
ZWFUeXBlKQorV2ViUGFnZSogV2ViUHJvY2Vzczo6Y3JlYXRlV2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBz
dG9yZSwgY29uc3QgRHJhd2luZ0FyZWFCYXNlOjpEcmF3aW5nQXJlYUluZm8mIGRyYXdpbmdBcmVh
SW5mbykKIHsKICAgICAvLyBJdCBpcyBuZWNlc3NhcnkgdG8gY2hlY2sgZm9yIHBhZ2UgZXhpc3Rl
bmNlIGhlcmUgc2luY2UgZHVyaW5nIGEgd2luZG93Lm9wZW4oKSAob3IgdGFyZ2V0ZWQKICAgICAv
LyBsaW5rKSB0aGUgV2ViUGFnZSBnZXRzIGNyZWF0ZWQgYm90aCBpbiB0aGUgc3luY2hyb25vdXMg
aGFuZGxlciBhbmQgdGhyb3VnaCB0aGUgbm9ybWFsIHdheS4gCiAgICAgc3RkOjpwYWlyPEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdlPiA+OjppdGVyYXRvciwgYm9vbD4gcmVzdWx0ID0g
bV9wYWdlTWFwLmFkZChwYWdlSUQsIDApOwogICAgIGlmIChyZXN1bHQuc2Vjb25kKSB7CiAgICAg
ICAgIEFTU0VSVCghcmVzdWx0LmZpcnN0LT5zZWNvbmQpOwotICAgICAgICByZXN1bHQuZmlyc3Qt
PnNlY29uZCA9IFdlYlBhZ2U6OmNyZWF0ZShwYWdlSUQsIHZpZXdTaXplLCBzdG9yZSwgZHJhd2lu
Z0FyZWFUeXBlKTsKKyAgICAgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgPSBXZWJQYWdlOjpjcmVh
dGUocGFnZUlELCB2aWV3U2l6ZSwgc3RvcmUsIGRyYXdpbmdBcmVhSW5mbyk7CiAgICAgfQogCiAg
ICAgQVNTRVJUKHJlc3VsdC5maXJzdC0+c2Vjb25kKTsKQEAgLTIyNCwxMSArMjI0LDExIEBAIHZv
aWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgICAgICAgICAgICAgdWludDY0X3QgcGFnZUlEID0g
YXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CiAgICAgICAgICAgICAgICAgSW50U2l6ZSB2aWV3
U2l6ZTsKICAgICAgICAgICAgICAgICBXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlOwotICAgICAg
ICAgICAgICAgIHVpbnQzMl90IGRyYXdpbmdBcmVhVHlwZTsKLSAgICAgICAgICAgICAgICBpZiAo
IWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dCh2aWV3U2l6ZSwgc3RvcmUsIGRyYXdpbmdB
cmVhVHlwZSkpKQorICAgICAgICAgICAgICAgIERyYXdpbmdBcmVhOjpEcmF3aW5nQXJlYUluZm8g
ZHJhd2luZ0FyZWFJbmZvOworICAgICAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUo
Q29yZUlQQzo6T3V0KHZpZXdTaXplLCBzdG9yZSwgZHJhd2luZ0FyZWFJbmZvKSkpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgICAgIGNyZWF0ZVdlYlBhZ2UocGFn
ZUlELCB2aWV3U2l6ZSwgc3RvcmUsIHN0YXRpY19jYXN0PERyYXdpbmdBcmVhOjpUeXBlPihkcmF3
aW5nQXJlYVR5cGUpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVXZWJQYWdlKHBhZ2VJRCwgdmll
d1NpemUsIHN0b3JlLCBkcmF3aW5nQXJlYUluZm8pOwogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgV2ViUHJvY2Vzc01lc3NhZ2U6OlJlZ2lz
dGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50OiB7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRl
eCAwZmI0YWQxMGVlYTAxNDI4YTY1NTY5NGEwNmE5ZTYyM2Q2ZjFjOTY0Li43M2JkMjliYzFiNWEy
OWQzZmNhZTQyMThhNWJjODQ5Y2Y3OTVmYTczIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAg
LTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIFJ1bkxvb3AqIHJ1bkxvb3AoKSBjb25zdCB7IHJl
dHVybiBtX3J1bkxvb3A7IH0KIAogICAgIFdlYlBhZ2UqIHdlYlBhZ2UodWludDY0X3QgcGFnZUlE
KSBjb25zdDsKLSAgICBXZWJQYWdlKiBjcmVhdGVXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
LCBEcmF3aW5nQXJlYTo6VHlwZSk7CisgICAgV2ViUGFnZSogY3JlYXRlV2ViUGFnZSh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHZpZXdTaXplLCBjb25zdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlJiwgY29uc3QgRHJhd2luZ0FyZWFCYXNlOjpEcmF3aW5nQXJlYUluZm8mKTsK
ICAgICB2b2lkIHJlbW92ZVdlYlBhZ2UodWludDY0X3QgcGFnZUlEKTsKIAogICAgIEluamVjdGVk
QnVuZGxlKiBpbmplY3RlZEJ1bmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRCdW5kbGUu
Z2V0KCk7IH0KZGlmZiAtLWdpdCBhL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvV2ViS2l0
Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggOWM1MGNhMmY5OTlmOGU1Yzg5ODg1MTg3NzUxODlj
ZDY2N2ZmNzA5Yy4uYTcyNDMyNDk1ZDg3YTQ3YTY1NGE2MDkyZmFmMDRkMzFlZDUxNmQ5NSAxMDA3
NTUKLS0tIGEvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi52Y3Byb2oKQEAgLTM5Nyw2ICszOTcsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXERyYXdpbmdBcmVhQmFzZS5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxT
aGFyZWRcRHJhd2luZ0FyZWFCYXNlLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcSW1tdXRhYmxlQXJyYXkuY3BwIg0KIAkJCQk+
DQogCQkJPC9GaWxlPg0K
</data>
<flag name="review"
          id="51721"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>