<?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>66434</bug_id>
          
          <creation_ts>2011-08-17 16:55:53 -0700</creation_ts>
          <short_desc>[chromium] Update VideoLayerChromium to not access GC3D on the main thread</short_desc>
          <delta_ts>2011-08-25 10:24:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>66430</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrienne Walker">enne</reporter>
          <assigned_to name="Adrienne Walker">enne</assigned_to>
          <cc>enne</cc>
    
    <cc>hclam</cc>
    
    <cc>husky</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>scherkus</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>452736</commentid>
    <comment_count>0</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-08-17 16:55:53 -0700</bug_when>
    <thetext>VideoLayerChromium needs to be refactored to not access layerRenderer() or layerRendererContext().  The only GC3D that should be accessed is during updateCompositorResources.

This also means that resource deletion (via the destructor, for example) needs to be deferred until the next commit as the GC3D is not immediately available.  I&apos;m not sure of the best way to do this.  These texture IDs need to be put on a queue either in the TextureManager or perhaps via some out-of-band message to the compositor thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456579</commentid>
    <comment_count>1</comment_count>
      <attachid>105111</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-08-24 18:04:28 -0700</bug_when>
    <thetext>Created attachment 105111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456586</commentid>
    <comment_count>2</comment_count>
      <attachid>105111</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-24 18:14:19 -0700</bug_when>
    <thetext>Comment on attachment 105111
Patch

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

R=me.

The TextureManager right now doesn&apos;t know how much memory different texture formats take up (see memoryUseBytes in TextureManager.cpp).  That might be worth fixing now that we&apos;re managing non-RGBA textures, could you file a bug for that? The current code is a bit pessimistic but not obviously harmful.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:72
&gt; +void CCVideoLayerImpl::setTexture(size_t idx, Platform3DObject textureId, const IntSize&amp; size, const IntSize&amp; visibleSize)

we don&apos;t abbreviate in WebKit, although we do use &apos;i&apos; so either &apos;i&apos; or &apos;index&apos; are good but not &apos;idx&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456591</commentid>
    <comment_count>3</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-08-24 18:25:21 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 105111 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=105111&amp;action=review
&gt; 
&gt; R=me.
&gt; 
&gt; The TextureManager right now doesn&apos;t know how much memory different texture formats take up (see memoryUseBytes in TextureManager.cpp).  That might be worth fixing now that we&apos;re managing non-RGBA textures, could you file a bug for that? The current code is a bit pessimistic but not obviously harmful.

https://bugs.webkit.org/show_bug.cgi?id=66917

&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:72
&gt; &gt; +void CCVideoLayerImpl::setTexture(size_t idx, Platform3DObject textureId, const IntSize&amp; size, const IntSize&amp; visibleSize)
&gt; 
&gt; we don&apos;t abbreviate in WebKit, although we do use &apos;i&apos; so either &apos;i&apos; or &apos;index&apos; are good but not &apos;idx&apos;

Ah, quite right.  I personally don&apos;t like &apos;i&apos; as a variable except in a small loop, so I&apos;ll just change it to &apos;index&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456957</commentid>
    <comment_count>4</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-08-25 10:24:20 -0700</bug_when>
    <thetext>Committed r93796: &lt;http://trac.webkit.org/changeset/93796&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105111</attachid>
            <date>2011-08-24 18:04:28 -0700</date>
            <delta_ts>2011-08-24 18:14:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66434-20110824180427.patch</filename>
            <type>text/plain</type>
            <size>22392</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM3NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmYjAzMzkyMGZhMGRhNDc5
MmNkYWMzMDUyNTBhYzRlODQ0MjY5YjMxLi42NjA4NDY3MmRjYTQ4MTk0YWI3MGVhMzg1N2RhNzI1
NmI2NzViZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTEtMDgtMjQgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFVwZGF0
ZSBWaWRlb0xheWVyQ2hyb21pdW0gdG8gbm90IGFjY2VzcyBHQzNEIG9uIHRoZSBtYWluIHRocmVh
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0MzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsbG93cyB0aGUgbWFp
biB0aHJlYWQgVmlkZW9MYXllckNocm9taXVtIHRvIG5vdCBkZXBlbmQgb24KKyAgICAgICAgY29t
cG9zaXRvciB0aHJlYWQgcmVzb3VyY2VzIChHQzNELCBMYXllclJlbmRlcmVyQ2hyb21pdW0pLiBU
aGUgdGV4dHVyZQorICAgICAgICBhbGxvY2F0aW9uIGluIFZpZGVvTGF5ZXJDaHJvbWl1bSB3YXMg
Y2hhbmdlZCB0byB1c2UgTWFuYWdlZFRleHR1cmUgc28KKyAgICAgICAgdGhhdCB0ZXh0dXJlcyBj
YW4gbm93IGJlIGV2aWN0ZWQgd2hlbiB0aGVyZSBpcyB0ZXh0dXJlIG1lbW9yeSBwcmVzc3VyZQor
ICAgICAgICBhbmQgc28gdGhhdCBkZXN0cnVjdGlvbiBjYW4gYmUgYXV0b21hdGljYWxseSBkZWZl
cnJlZCB1bnRpbCBhIEdDM0QgaXMKKyAgICAgICAgYXZhaWxhYmxlLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9NYW5hZ2VkVGV4dHVyZS5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTWFuYWdlZFRleHR1cmUuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1hbmFnZWRUZXh0dXJlOjpzaXplKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1hbmFnZWRUZXh0dXJlOjpmb3JtYXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b0xheWVyQ2hyb21pdW06OlZpZGVvTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpW
aWRlb0xheWVyQ2hyb21pdW06On5WaWRlb0xheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9MYXllckNocm9taXVtOjpjbGVhbnVwUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8pOgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9MYXllckNocm9taXVtOjpzZXRMYXllclRyZWVIb3N0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvTGF5ZXJDaHJvbWl1bTo6ZGV0ZXJtaW5lVGV4dHVyZUZvcm1h
dCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW06OnJlc2VydmVUZXh0dXJl
cyk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW06OnVwZGF0ZVRleHR1cmUp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9MYXllckNocm9taXVtOjpyZWxlYXNlQ3VycmVudEZy
YW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hy
b21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojpjb250ZW50
c1RleHR1cmVNYW5hZ2VyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVmlkZW9MYXll
ckltcGw6OnNldFRleHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NWaWRlb0xheWVySW1wbDo6
ZHJhd1lVVik6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5ZXJJbXBsOjpkcmF3UkdCQSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1w
bC5oOgorCiAyMDExLTA4LTI0ICBDaHJpcyBQYWxtZXIgIDxwYWxtZXJAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBSZXNvbHZlIHBvdGVudGlhbCBpbnRlZ2VyIG92ZXJmbG93IGluIG1lbW9yeSBhbGxv
Y2F0aW9uLCBhbmQgZW5zdXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApp
bmRleCBjMjE0NmZjZTIyYjMzYjdjMzA4NmVjODgwMjBhNWFmODhlMmFjM2VhLi40MTAwMDc0YWM4
NjJkODY3MmMzZWU5MmVmNGE2ZTZmNGRjOWI1NmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5jcHAKQEAgLTEwNjAsMTQgKzEwNjAsNiBAQCBib29sIExheWVyUmVuZGVyZXJD
aHJvbWl1bTo6bWFrZUNvbnRleHRDdXJyZW50KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotLy8g
Q2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBzaXplIGlzIHdpdGhpbiB0aGUgbWF4aW11bSBhbGxvd2Vk
IHRleHR1cmUgc2l6ZSByYW5nZS4KLWJvb2wgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpjaGVja1Rl
eHR1cmVTaXplKGNvbnN0IEludFNpemUmIHRleHR1cmVTaXplKQotewotICAgIGlmICh0ZXh0dXJl
U2l6ZS53aWR0aCgpID4gbV9tYXhUZXh0dXJlU2l6ZSB8fCB0ZXh0dXJlU2l6ZS5oZWlnaHQoKSA+
IG1fbWF4VGV4dHVyZVNpemUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQogLy8gU2V0cyB0aGUgY29vcmRpbmF0ZSByYW5nZSBvZiBjb250ZW50IHRoYXQgZW5k
cyBiZWluZyBkcmF3biBvbnRvIHRoZSB0YXJnZXQgcmVuZGVyIHN1cmZhY2UuCiAvLyBUaGUgdGFy
Z2V0IHJlbmRlciBzdXJmYWNlIGlzIGFzc3VtZWQgdG8gaGF2ZSBhbiBvcmlnaW4gYXQgMCwgMCBh
bmQgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YKIC8vIG9mIHRoZSBkcmF3UmVjdC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmgKaW5kZXggOTU1OGZhMWU2MGEwNDA3YWYxOWE3YzhmYjUz
NjE4MmQyODhhMTNjNC4uZjg1YTczMTJjMWFiMWU1ZTUxMzVlZThlNWI4MTdkMTc5ZGVhYjUyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKQEAgLTExNSw3ICsxMTUsNiBAQCBw
dWJsaWM6CiAgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHByb2plY3Rpb25NYXRyaXgo
KSBjb25zdCB7IHJldHVybiBtX3Byb2plY3Rpb25NYXRyaXg7IH0KICAgICBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgd2luZG93TWF0cml4KCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dNYXRy
aXg7IH0KIAotICAgIGJvb2wgY2hlY2tUZXh0dXJlU2l6ZShjb25zdCBJbnRTaXplJik7CiAgICAg
aW50IG1heFRleHR1cmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhUZXh0dXJlU2l6ZTsgfQog
CiAgICAgY29uc3QgR2VvbWV0cnlCaW5kaW5nKiBzaGFyZWRHZW9tZXRyeSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2hhcmVkR2VvbWV0cnkuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL01hbmFnZWRUZXh0dXJlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL01hbmFnZWRUZXh0dXJlLmNwcAppbmRl
eCA2MmRkNmYwN2ZkMWExNzE3YWJkZmE4ZjNlMDgwMmY3ODY0YTdjMGQxLi43OTBjNzBmMDI3YWNi
YTEzODE1MzRmZWVjYWE3ZDc0N2IxMzc4NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9NYW5hZ2VkVGV4dHVyZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTWFuYWdlZFRleHR1cmUuY3BwCkBA
IC0xMDEsNCArMTAxLDMgQEAgdm9pZCBNYW5hZ2VkVGV4dHVyZTo6ZnJhbWVidWZmZXJUZXh0dXJl
MkQoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiB9CiAKICNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL01hbmFnZWRUZXh0dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9NYW5hZ2VkVGV4dHVyZS5oCmluZGV4IDMxMGUxNjg2YmQz
NWZmYTVkY2JmNjE0YTdiNGI4NzNhODQzZjdiNDkuLjg2MmU4Njc0ZjA3MGMwNDY2MDViMjc3NDc2
MGExYWFkZGIyYmNmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL01hbmFnZWRUZXh0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTWFuYWdlZFRleHR1cmUuaApAQCAtNDcsNyArNDcsNiBAQCBw
dWJsaWM6CiAgICAgfQogICAgIH5NYW5hZ2VkVGV4dHVyZSgpOwogCi0gICAgdW5zaWduZWQgZm9y
bWF0KCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXQ7IH0KICAgICBib29sIGlzVmFsaWQoY29uc3Qg
SW50U2l6ZSYsIHVuc2lnbmVkIGZvcm1hdCk7CiAgICAgYm9vbCByZXNlcnZlKGNvbnN0IEludFNp
emUmLCB1bnNpZ25lZCBmb3JtYXQpOwogICAgIHZvaWQgdW5yZXNlcnZlKCk7CkBAIC02MCw2ICs1
OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEKik7
CiAgICAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChHcmFwaGljc0NvbnRleHQzRCopOwogCisg
ICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisgICAgdW5zaWduZWQg
Zm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXQ7IH0KICAgICB1bnNpZ25lZCB0ZXh0dXJl
SWQoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmVJZDsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNo
cm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Zp
ZGVvTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNmM0ODNiNTVmNTM1ZWY5ODVlNjg0ZjRkODUwNDQw
OWFhZTM5NWM3YS4uNjUyZDI4ZGZiM2M2MjM2ZTcwM2MxOTNkNGVlNTc2ZTE2OTk4ZDFjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9M
YXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCkBAIC01NiwxNSArNTYsMTQgQEAgVmlkZW9M
YXllckNocm9taXVtOjpWaWRlb0xheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBv
d25lciwgVmlkZW9GcmFtZVAKICAgICAsIG1fc2tpcHNEcmF3KHRydWUpCiAgICAgLCBtX2ZyYW1l
Rm9ybWF0KFZpZGVvRnJhbWVDaHJvbWl1bTo6SW52YWxpZCkKICAgICAsIG1fcHJvdmlkZXIocHJv
dmlkZXIpCisgICAgLCBtX2xheWVyVHJlZUhvc3QoMCkKICAgICAsIG1fY3VycmVudEZyYW1lKDAp
CiB7Ci0gICAgcmVzZXRGcmFtZVBhcmFtZXRlcnMoKTsKIH0KIAogVmlkZW9MYXllckNocm9taXVt
Ojp+VmlkZW9MYXllckNocm9taXVtKCkKIHsKICAgICBjbGVhbnVwUmVzb3VyY2VzKCk7Ci0gICAg
ZGVsZXRlVGV4dHVyZXNJblVzZSgpOwogfQogCiBQYXNzUmVmUHRyPENDTGF5ZXJJbXBsPiBWaWRl
b0xheWVyQ2hyb21pdW06OmNyZWF0ZUNDTGF5ZXJJbXBsKCkKQEAgLTcyLDI2ICs3MSwxMCBAQCBQ
YXNzUmVmUHRyPENDTGF5ZXJJbXBsPiBWaWRlb0xheWVyQ2hyb21pdW06OmNyZWF0ZUNDTGF5ZXJJ
bXBsKCkKICAgICByZXR1cm4gQ0NWaWRlb0xheWVySW1wbDo6Y3JlYXRlKG1fbGF5ZXJJZCk7CiB9
CiAKLXZvaWQgVmlkZW9MYXllckNocm9taXVtOjpkZWxldGVUZXh0dXJlc0luVXNlKCkKLXsKLSAg
ICBpZiAoIWxheWVyUmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQgPSBsYXllclJlbmRlcmVyQ29udGV4dCgpOwotICAgIGZvciAodW5z
aWduZWQgcGxhbmUgPSAwOyBwbGFuZSA8IFZpZGVvRnJhbWVDaHJvbWl1bTo6bWF4UGxhbmVzOyBw
bGFuZSsrKSB7Ci0gICAgICAgIFRleHR1cmUgdGV4dHVyZSA9IG1fdGV4dHVyZXNbcGxhbmVdOwot
ICAgICAgICBpZiAoIXRleHR1cmUuaXNFbXB0eSAmJiB0ZXh0dXJlLm93bmVkQnlMYXllclJlbmRl
cmVyKQotICAgICAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmRlbGV0ZVRleHR1cmUodGV4
dHVyZS5pZCkpOwotICAgIH0KLX0KLQogdm9pZCBWaWRlb0xheWVyQ2hyb21pdW06OmNsZWFudXBS
ZXNvdXJjZXMoKQogewogICAgIExheWVyQ2hyb21pdW06OmNsZWFudXBSZXNvdXJjZXMoKTsKLSAg
ICBpZiAobV9jdXJyZW50RnJhbWUpCi0gICAgICAgIHJlbGVhc2VDdXJyZW50RnJhbWUoKTsKLSAg
ICBlbHNlCi0gICAgICAgIHJlc2V0RnJhbWVQYXJhbWV0ZXJzKCk7CisgICAgcmVsZWFzZUN1cnJl
bnRGcmFtZSgpOwogfQogCiB2b2lkIFZpZGVvTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29tcG9zaXRv
clJlc291cmNlcyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKQEAgLTExNCw3ICs5Nyw3IEBA
IHZvaWQgVmlkZW9MYXllckNocm9taXVtOjp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBo
aWNzQ29udGV4dDNEKiBjb250ZXh0KQogICAgIH0KIAogICAgIG1fZnJhbWVGb3JtYXQgPSBmcmFt
ZS0+Zm9ybWF0KCk7Ci0gICAgdW5zaWduZWQgdGV4dHVyZUZvcm1hdCA9IGRldGVybWluZVRleHR1
cmVGb3JtYXQoZnJhbWUpOworICAgIEdDM0RlbnVtIHRleHR1cmVGb3JtYXQgPSBkZXRlcm1pbmVU
ZXh0dXJlRm9ybWF0KGZyYW1lKTsKICAgICBpZiAodGV4dHVyZUZvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9WQUxVRSkgewogICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IG90
aGVyIHBhdGhzLgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMTI1LDggKzEwOCw4IEBA
IHZvaWQgVmlkZW9MYXllckNocm9taXVtOjp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBo
aWNzQ29udGV4dDNEKiBjb250ZXh0KQogCiAgICAgLy8gQWxsb2NhdGUgdGV4dHVyZXMgZm9yIHBs
YW5lcyBpZiB0aGV5IGFyZSBub3QgYWxsb2NhdGVkIGFscmVhZHksIG9yCiAgICAgLy8gcmVhbGxv
Y2F0ZSB0ZXh0dXJlcyB0aGF0IGFyZSB0aGUgd3Jvbmcgc2l6ZSBmb3IgdGhlIGZyYW1lLgotICAg
IGJvb2wgdGV4dHVyZXNBbGxvY2F0ZWQgPSBhbGxvY2F0ZVRleHR1cmVzSWZOZWVkZWQoY29udGV4
dCwgZnJhbWUsIHRleHR1cmVGb3JtYXQpOwotICAgIGlmICghdGV4dHVyZXNBbGxvY2F0ZWQpIHsK
KyAgICBib29sIHRleHR1cmVzUmVzZXJ2ZWQgPSByZXNlcnZlVGV4dHVyZXMoZnJhbWUsIHRleHR1
cmVGb3JtYXQpOworICAgIGlmICghdGV4dHVyZXNSZXNlcnZlZCkgewogICAgICAgICBtX3NraXBz
RHJhdyA9IHRydWU7CiAgICAgICAgIG1fcHJvdmlkZXItPnB1dEN1cnJlbnRGcmFtZShmcmFtZSk7
CiAgICAgICAgIHJldHVybjsKQEAgLTEzNCw5ICsxMTcsMTAgQEAgdm9pZCBWaWRlb0xheWVyQ2hy
b21pdW06OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRl
eHQpCiAKICAgICAvLyBVcGRhdGUgdGV4dHVyZSBwbGFuZXMuCiAgICAgZm9yICh1bnNpZ25lZCBw
bGFuZSA9IDA7IHBsYW5lIDwgZnJhbWUtPnBsYW5lcygpOyBwbGFuZSsrKSB7Ci0gICAgICAgIFRl
eHR1cmUgdGV4dHVyZSA9IG1fdGV4dHVyZXNbcGxhbmVdOwotICAgICAgICBBU1NFUlQoZnJhbWUt
PnJlcXVpcmVkVGV4dHVyZVNpemUocGxhbmUpID09IHRleHR1cmUuc2l6ZSk7Ci0gICAgICAgIHVw
ZGF0ZVRleHR1cmUoY29udGV4dCwgdGV4dHVyZS5pZCwgdGV4dHVyZS5zaXplLCB0ZXh0dXJlRm9y
bWF0LCBmcmFtZS0+ZGF0YShwbGFuZSkpOworICAgICAgICBUZXh0dXJlJiB0ZXh0dXJlID0gbV90
ZXh0dXJlc1twbGFuZV07CisgICAgICAgIEFTU0VSVCh0ZXh0dXJlLm1fdGV4dHVyZSk7CisgICAg
ICAgIEFTU0VSVChmcmFtZS0+cmVxdWlyZWRUZXh0dXJlU2l6ZShwbGFuZSkgPT0gdGV4dHVyZS5t
X3RleHR1cmUtPnNpemUoKSk7CisgICAgICAgIHVwZGF0ZVRleHR1cmUoY29udGV4dCwgdGV4dHVy
ZSwgZnJhbWUtPmRhdGEocGxhbmUpKTsKICAgICB9CiAKICAgICBtX2RpcnR5UmVjdC5zZXRTaXpl
KEZsb2F0U2l6ZSgpKTsKQEAgLTE1MiwxMiArMTM2LDI5IEBAIHZvaWQgVmlkZW9MYXllckNocm9t
aXVtOjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBDQ1ZpZGVvTGF5
ZXJJbXBsKiB2aWRlb0xheWVyID0gc3RhdGljX2Nhc3Q8Q0NWaWRlb0xheWVySW1wbCo+KGxheWVy
KTsKICAgICB2aWRlb0xheWVyLT5zZXRTa2lwc0RyYXcobV9za2lwc0RyYXcpOwogICAgIHZpZGVv
TGF5ZXItPnNldEZyYW1lRm9ybWF0KG1fZnJhbWVGb3JtYXQpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgMzsgKytpKQotICAgICAgICB2aWRlb0xheWVyLT5zZXRUZXh0dXJlKGksIG1fdGV4
dHVyZXNbaV0pOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAg
IGlmICghbV90ZXh0dXJlc1tpXS5tX3RleHR1cmUpIHsKKyAgICAgICAgICAgIHZpZGVvTGF5ZXIt
PnNldFNraXBzRHJhdyh0cnVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIHZpZGVvTGF5ZXItPnNldFRleHR1cmUoaSwgbV90ZXh0dXJlc1tpXS5tX3RleHR1cmUtPnRl
eHR1cmVJZCgpLCBtX3RleHR1cmVzW2ldLm1fdGV4dHVyZS0+c2l6ZSgpLCBtX3RleHR1cmVzW2ld
Lm1fdmlzaWJsZVNpemUpOworICAgIH0KIH0KIAordm9pZCBWaWRlb0xheWVyQ2hyb21pdW06OnNl
dExheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KQoreworICAgIGlm
IChtX2xheWVyVHJlZUhvc3QgPT0gbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgcmV0dXJuOwogCi11
bnNpZ25lZCBWaWRlb0xheWVyQ2hyb21pdW06OmRldGVybWluZVRleHR1cmVGb3JtYXQoY29uc3Qg
VmlkZW9GcmFtZUNocm9taXVtKiBmcmFtZSkKKyAgICBtX2xheWVyVHJlZUhvc3QgPSBsYXllclRy
ZWVIb3N0OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICAgICAg
bV90ZXh0dXJlc1tpXS5tX3Zpc2libGVTaXplID0gSW50U2l6ZSgpOworICAgICAgICBtX3RleHR1
cmVzW2ldLm1fdGV4dHVyZSA9IE1hbmFnZWRUZXh0dXJlOjpjcmVhdGUobGF5ZXJUcmVlSG9zdC0+
Y29udGVudHNUZXh0dXJlTWFuYWdlcigpKTsKKyAgICB9Cit9CisKK0dDM0RlbnVtIFZpZGVvTGF5
ZXJDaHJvbWl1bTo6ZGV0ZXJtaW5lVGV4dHVyZUZvcm1hdChjb25zdCBWaWRlb0ZyYW1lQ2hyb21p
dW0qIGZyYW1lKQogewogICAgIHN3aXRjaCAoZnJhbWUtPmZvcm1hdCgpKSB7CiAgICAgY2FzZSBW
aWRlb0ZyYW1lQ2hyb21pdW06OllWMTI6CkBAIC0xNzEsMzIgKzE3MiwyOSBAQCB1bnNpZ25lZCBW
aWRlb0xheWVyQ2hyb21pdW06OmRldGVybWluZVRleHR1cmVGb3JtYXQoY29uc3QgVmlkZW9GcmFt
ZUNocm9taXVtKiBmcgogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxV
RTsKIH0KIAotYm9vbCBWaWRlb0xheWVyQ2hyb21pdW06OmFsbG9jYXRlVGV4dHVyZXNJZk5lZWRl
ZChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgVmlkZW9GcmFtZUNocm9taXVtKiBm
cmFtZSwgdW5zaWduZWQgdGV4dHVyZUZvcm1hdCkKK2Jvb2wgVmlkZW9MYXllckNocm9taXVtOjpy
ZXNlcnZlVGV4dHVyZXMoY29uc3QgVmlkZW9GcmFtZUNocm9taXVtKiBmcmFtZSwgR0MzRGVudW0g
dGV4dHVyZUZvcm1hdCkKIHsKLSAgICBBU1NFUlQoY29udGV4dCk7CisgICAgQVNTRVJUKG1fbGF5
ZXJUcmVlSG9zdCk7CiAgICAgQVNTRVJUKGZyYW1lKTsKKyAgICBBU1NFUlQodGV4dHVyZUZvcm1h
dCAhPSBHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CisKKyAgICBpbnQgbWF4VGV4
dHVyZVNpemUgPSBtX2xheWVyVHJlZUhvc3QtPm1heFRleHR1cmVTaXplKCk7CiAKICAgICBmb3Ig
KHVuc2lnbmVkIHBsYW5lID0gMDsgcGxhbmUgPCBmcmFtZS0+cGxhbmVzKCk7IHBsYW5lKyspIHsK
ICAgICAgICAgSW50U2l6ZSByZXF1aXJlZFRleHR1cmVTaXplID0gZnJhbWUtPnJlcXVpcmVkVGV4
dHVyZVNpemUocGxhbmUpOwotICAgICAgICBUZXh0dXJlIHRleHR1cmUgPSBtX3RleHR1cmVzW3Bs
YW5lXTsKIAogICAgICAgICAvLyBJZiB0aGUgcmVuZGVyZXIgY2Fubm90IGhhbmRsZSB0aGlzIGxh
cmdlIG9mIGEgdGV4dHVyZSwgcmV0dXJuIGZhbHNlLgogICAgICAgICAvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgdGVzdCB3aGVuIHRpbGVkIGxheWVycyBhcmUgaW1wbGVtZW50ZWQuCi0gICAgICAgIGlm
ICghbGF5ZXJSZW5kZXJlcigpLT5jaGVja1RleHR1cmVTaXplKHJlcXVpcmVkVGV4dHVyZVNpemUp
KQorICAgICAgICBpZiAocmVxdWlyZWRUZXh0dXJlU2l6ZS5pc1plcm8oKSB8fCByZXF1aXJlZFRl
eHR1cmVTaXplLndpZHRoKCkgPiBtYXhUZXh0dXJlU2l6ZSB8fCByZXF1aXJlZFRleHR1cmVTaXpl
LmhlaWdodCgpID4gbWF4VGV4dHVyZVNpemUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICAgICAgaWYgKHRleHR1cmUuaXNFbXB0eSkgewotICAgICAgICAgICAgdGV4dHVyZS5pZCA9
IGxheWVyUmVuZGVyZXIoKS0+Y3JlYXRlTGF5ZXJUZXh0dXJlKCk7Ci0gICAgICAgICAgICB0ZXh0
dXJlLm93bmVkQnlMYXllclJlbmRlcmVyID0gdHJ1ZTsKLSAgICAgICAgICAgIHRleHR1cmUuaXNF
bXB0eSA9IGZhbHNlOwotICAgICAgICB9CisgICAgICAgIGlmICghbV90ZXh0dXJlc1twbGFuZV0u
bV90ZXh0dXJlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGlmICghcmVx
dWlyZWRUZXh0dXJlU2l6ZS5pc1plcm8oKSAmJiByZXF1aXJlZFRleHR1cmVTaXplICE9IHRleHR1
cmUuc2l6ZSkgewotICAgICAgICAgICAgYWxsb2NhdGVUZXh0dXJlKGNvbnRleHQsIHRleHR1cmUu
aWQsIHJlcXVpcmVkVGV4dHVyZVNpemUsIHRleHR1cmVGb3JtYXQpOwotICAgICAgICAgICAgdGV4
dHVyZS5zaXplID0gcmVxdWlyZWRUZXh0dXJlU2l6ZTsKLSAgICAgICAgICAgIHRleHR1cmUudmlz
aWJsZVNpemUgPSBjb21wdXRlVmlzaWJsZVNpemUoZnJhbWUsIHBsYW5lKTsKLSAgICAgICAgfQot
ICAgICAgICBtX3RleHR1cmVzW3BsYW5lXSA9IHRleHR1cmU7CisgICAgICAgIGlmIChtX3RleHR1
cmVzW3BsYW5lXS5tX3RleHR1cmUtPnNpemUoKSAhPSByZXF1aXJlZFRleHR1cmVTaXplKQorICAg
ICAgICAgICAgbV90ZXh0dXJlc1twbGFuZV0ubV92aXNpYmxlU2l6ZSA9IGNvbXB1dGVWaXNpYmxl
U2l6ZShmcmFtZSwgcGxhbmUpOworCisgICAgICAgIG1fdGV4dHVyZXNbcGxhbmVdLm1fdGV4dHVy
ZS0+cmVzZXJ2ZShyZXF1aXJlZFRleHR1cmVTaXplLCB0ZXh0dXJlRm9ybWF0KTsKICAgICB9CiAK
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIyNiwxNiArMjI0LDE2IEBAIEludFNpemUgVmlkZW9MYXll
ckNocm9taXVtOjpjb21wdXRlVmlzaWJsZVNpemUoY29uc3QgVmlkZW9GcmFtZUNocm9taXVtKiBm
cmFtZSwKICAgICByZXR1cm4gSW50U2l6ZSh2aXNpYmxlV2lkdGgsIHZpc2libGVIZWlnaHQpOwog
fQogCi12b2lkIFZpZGVvTGF5ZXJDaHJvbWl1bTo6YWxsb2NhdGVUZXh0dXJlKEdyYXBoaWNzQ29u
dGV4dDNEKiBjb250ZXh0LCB1bnNpZ25lZCB0ZXh0dXJlSWQsIGNvbnN0IEludFNpemUmIGRpbWVu
c2lvbnMsIHVuc2lnbmVkIHRleHR1cmVGb3JtYXQpIGNvbnN0Ci17Ci0gICAgR0xDKGNvbnRleHQs
IGNvbnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCB0ZXh0
dXJlSWQpKTsKLSAgICBHTEMoY29udGV4dCwgY29udGV4dC0+dGV4SW1hZ2UyRFJlc291cmNlU2Fm
ZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgdGV4dHVyZUZvcm1hdCwgZGltZW5z
aW9ucy53aWR0aCgpLCBkaW1lbnNpb25zLmhlaWdodCgpLCAwLCB0ZXh0dXJlRm9ybWF0LCBHcmFw
aGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSkpOwotfQotCi12b2lkIFZpZGVvTGF5ZXJDaHJv
bWl1bTo6dXBkYXRlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgdW5zaWduZWQg
dGV4dHVyZUlkLCBjb25zdCBJbnRTaXplJiBkaW1lbnNpb25zLCB1bnNpZ25lZCBmb3JtYXQsIGNv
bnN0IHZvaWQqIGRhdGEpIGNvbnN0Cit2b2lkIFZpZGVvTGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGV4
dHVyZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgVGV4dHVyZSYgdGV4dHVyZSwgY29uc3Qg
dm9pZCogZGF0YSkgY29uc3QKIHsKICAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgR0xDKGNvbnRl
eHQsIGNvbnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCB0
ZXh0dXJlSWQpKTsKKyAgICBBU1NFUlQodGV4dHVyZS5tX3RleHR1cmUpOworCisgICAgdGV4dHVy
ZS5tX3RleHR1cmUtPmJpbmRUZXh0dXJlKGNvbnRleHQpOworCisgICAgR0MzRGVudW0gZm9ybWF0
ID0gdGV4dHVyZS5tX3RleHR1cmUtPmZvcm1hdCgpOworICAgIEludFNpemUgZGltZW5zaW9ucyA9
IHRleHR1cmUubV90ZXh0dXJlLT5zaXplKCk7CisKICAgICB2b2lkKiBtZW0gPSBzdGF0aWNfY2Fz
dDxFeHRlbnNpb25zM0RDaHJvbWl1bSo+KGNvbnRleHQtPmdldEV4dGVuc2lvbnMoKSktPm1hcFRl
eFN1YkltYWdlMkRDSFJPTUlVTShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgMCwg
MCwgZGltZW5zaW9ucy53aWR0aCgpLCBkaW1lbnNpb25zLmhlaWdodCgpLCBmb3JtYXQsIEdyYXBo
aWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFLCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6V1JJVEVf
T05MWSk7CiAgICAgaWYgKG1lbSkgewogICAgICAgICBtZW1jcHkobWVtLCBkYXRhLCBkaW1lbnNp
b25zLndpZHRoKCkgKiBkaW1lbnNpb25zLmhlaWdodCgpKTsKQEAgLTI1NSwxOSArMjUzLDYgQEAg
dm9pZCBWaWRlb0xheWVyQ2hyb21pdW06OnJlbGVhc2VDdXJyZW50RnJhbWUoKQogCiAgICAgbV9w
cm92aWRlci0+cHV0Q3VycmVudEZyYW1lKG1fY3VycmVudEZyYW1lKTsKICAgICBtX2N1cnJlbnRG
cmFtZSA9IDA7Ci0gICAgcmVzZXRGcmFtZVBhcmFtZXRlcnMoKTsKLX0KLQotdm9pZCBWaWRlb0xh
eWVyQ2hyb21pdW06OnJlc2V0RnJhbWVQYXJhbWV0ZXJzKCkKLXsKLSAgICBkZWxldGVUZXh0dXJl
c0luVXNlKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBwbGFuZSA9IDA7IHBsYW5lIDwgVmlkZW9GcmFt
ZUNocm9taXVtOjptYXhQbGFuZXM7IHBsYW5lKyspIHsKLSAgICAgICAgbV90ZXh0dXJlc1twbGFu
ZV0uaWQgPSAwOwotICAgICAgICBtX3RleHR1cmVzW3BsYW5lXS5zaXplID0gSW50U2l6ZSgpOwot
ICAgICAgICBtX3RleHR1cmVzW3BsYW5lXS52aXNpYmxlU2l6ZSA9IEludFNpemUoKTsKLSAgICAg
ICAgbV90ZXh0dXJlc1twbGFuZV0ub3duZWRCeUxheWVyUmVuZGVyZXIgPSBmYWxzZTsKLSAgICAg
ICAgbV90ZXh0dXJlc1twbGFuZV0uaXNFbXB0eSA9IHRydWU7Ci0gICAgfQogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDJmNjUxZWE2
OGJlMDEwNzYzNTdiOTE0ZGZiNWU5NjNmYjNjNzA5YjAuLjVlNDUzNGM4YTc2MzFlMmMxYjViZWYz
NDIxYmZlNDI3ZGE2NmZhMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oCkBAIC0zNSw2
ICszNSw3IEBACiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiAjaW5jbHVkZSAi
TGF5ZXJDaHJvbWl1bS5oIgorI2luY2x1ZGUgIk1hbmFnZWRUZXh0dXJlLmgiCiAjaW5jbHVkZSAi
VmlkZW9GcmFtZVByb3ZpZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDEzICs0
Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEEgTGF5ZXIgdGhhdCBjb250YWlucyBhIFZp
ZGVvIGVsZW1lbnQuCiBjbGFzcyBWaWRlb0xheWVyQ2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJDaHJv
bWl1bSB7CiBwdWJsaWM6Ci0gICAgc3RydWN0IFRleHR1cmUgewotICAgICAgICB1bnNpZ25lZCBp
ZDsKLSAgICAgICAgSW50U2l6ZSBzaXplOwotICAgICAgICBJbnRTaXplIHZpc2libGVTaXplOwot
ICAgICAgICBib29sIG93bmVkQnlMYXllclJlbmRlcmVyOwotICAgICAgICBib29sIGlzRW1wdHk7
Ci0gICAgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZGVvTGF5ZXJDaHJvbWl1bT4gY3Jl
YXRlKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIgPSAwLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvRnJhbWVQcm92aWRlciogPSAwKTsK
QEAgLTY1LDI3ICs1OSwzMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcHVzaFByb3Bl
cnRpZXNUbyhDQ0xheWVySW1wbCopOwogCisgICAgdmlydHVhbCB2b2lkIHNldExheWVyVHJlZUhv
c3QoQ0NMYXllclRyZWVIb3N0Kik7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgY2xl
YW51cFJlc291cmNlcygpOwogICAgIHZpcnR1YWwgY29uc3QgY2hhciogbGF5ZXJUeXBlQXNTdHJp
bmcoKSBjb25zdCB7IHJldHVybiAiVmlkZW9MYXllciI7IH0KIAogcHJpdmF0ZToKKyAgICBzdHJ1
Y3QgVGV4dHVyZSB7CisgICAgICAgIEludFNpemUgbV92aXNpYmxlU2l6ZTsKKyAgICAgICAgT3du
UHRyPE1hbmFnZWRUZXh0dXJlPiBtX3RleHR1cmU7CisgICAgfTsKKwogICAgIFZpZGVvTGF5ZXJD
aHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVyLCBWaWRlb0ZyYW1lUHJvdmlkZXIq
KTsKIAotICAgIHN0YXRpYyB1bnNpZ25lZCBkZXRlcm1pbmVUZXh0dXJlRm9ybWF0KGNvbnN0IFZp
ZGVvRnJhbWVDaHJvbWl1bSopOworICAgIHN0YXRpYyBHQzNEZW51bSBkZXRlcm1pbmVUZXh0dXJl
Rm9ybWF0KGNvbnN0IFZpZGVvRnJhbWVDaHJvbWl1bSopOwogICAgIHN0YXRpYyBJbnRTaXplIGNv
bXB1dGVWaXNpYmxlU2l6ZShjb25zdCBWaWRlb0ZyYW1lQ2hyb21pdW0qLCB1bnNpZ25lZCBwbGFu
ZSk7Ci0gICAgdm9pZCBkZWxldGVUZXh0dXJlc0luVXNlKCk7Ci0KLSAgICBib29sIGFsbG9jYXRl
VGV4dHVyZXNJZk5lZWRlZChHcmFwaGljc0NvbnRleHQzRCosIGNvbnN0IFZpZGVvRnJhbWVDaHJv
bWl1bSosIHVuc2lnbmVkIHRleHR1cmVGb3JtYXQpOwotICAgIHZvaWQgYWxsb2NhdGVUZXh0dXJl
KEdyYXBoaWNzQ29udGV4dDNEKiwgdW5zaWduZWQgdGV4dHVyZUlkLCBjb25zdCBJbnRTaXplJiBk
aW1lbnNpb25zLCB1bnNpZ25lZCB0ZXh0dXJlRm9ybWF0KSBjb25zdDsKLQotICAgIHZvaWQgdXBk
YXRlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRCosIHVuc2lnbmVkIHRleHR1cmVJZCwgY29uc3Qg
SW50U2l6ZSYgZGltZW5zaW9ucywgdW5zaWduZWQgdGV4dHVyZUZvcm1hdCwgY29uc3Qgdm9pZCog
ZGF0YSkgY29uc3Q7CisgICAgYm9vbCByZXNlcnZlVGV4dHVyZXMoY29uc3QgVmlkZW9GcmFtZUNo
cm9taXVtKiwgR0MzRGVudW0gdGV4dHVyZUZvcm1hdCk7CisgICAgdm9pZCB1cGRhdGVUZXh0dXJl
KEdyYXBoaWNzQ29udGV4dDNEKiwgVGV4dHVyZSYsIGNvbnN0IHZvaWQqKSBjb25zdDsKIAogICAg
IHZvaWQgcmVzZXRGcmFtZVBhcmFtZXRlcnMoKTsKIAogICAgIGJvb2wgbV9za2lwc0RyYXc7CiAg
ICAgVmlkZW9GcmFtZUNocm9taXVtOjpGb3JtYXQgbV9mcmFtZUZvcm1hdDsKICAgICBWaWRlb0Zy
YW1lUHJvdmlkZXIqIG1fcHJvdmlkZXI7CisgICAgQ0NMYXllclRyZWVIb3N0KiBtX2xheWVyVHJl
ZUhvc3Q7CiAKICAgICBUZXh0dXJlIG1fdGV4dHVyZXNbM107CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuY3BwCmluZGV4IDk3ZTc0MmNjMTgyODI3OGM2YjUyZTI5NmI4MGRlOTdiNGFhMTgw
NWEuLmQwOWQ0ZjcyMWUxMDEwYTllOWRjOTI4ZjRkODY2OGVlZTVmODhkYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtMjI5LDYgKzIyOSwxNCBAQCBQYXNzUmVmUHRyPExh
eWVyUmVuZGVyZXJDaHJvbWl1bT4gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllclJlbmRlcmVy
KCkKICAgICByZXR1cm4gbGF5ZXJSZW5kZXJlcjsKIH0KIAorVGV4dHVyZU1hbmFnZXIqIENDTGF5
ZXJUcmVlSG9zdDo6Y29udGVudHNUZXh0dXJlTWFuYWdlcigpIGNvbnN0Cit7CisgICAgLy8gRklY
TUU6IHRoaXMgY2xhc3Mgc2hvdWxkIG93biB0aGUgY29udGVudHMgdGV4dHVyZSBtYW5hZ2VyCisg
ICAgaWYgKCFtX2xheWVyUmVuZGVyZXIpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBt
X2xheWVyUmVuZGVyZXItPmNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKTsKK30KKwogI2lmICFVU0Uo
VEhSRUFERURfQ09NUE9TSVRJTkcpCiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6ZG9Db21wb3NpdGUo
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAppbmRleCBmZGE3MjIwZjZhMmZmNTU5ZmQ2
MGMxY2E5ZmZlNWQ2OWRjZWUzMjQxLi45OWI4YmYyMDk0ZDgzNjQxNDgzYjQ5ZDkzYzY5MGZiMWVh
YmFlOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaApAQCAtNDUsNiArNDUsNyBAQCBj
bGFzcyBMYXllclBhaW50ZXJDaHJvbWl1bTsKIGNsYXNzIExheWVyUmVuZGVyZXJDaHJvbWl1bTsK
IGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q7Citj
bGFzcyBUZXh0dXJlTWFuYWdlcjsKIAogY2xhc3MgQ0NMYXllclRyZWVIb3N0Q2xpZW50IHsKIHB1
YmxpYzoKQEAgLTExMiw2ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWaWV3cG9ydChj
b25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwg
Y29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKTsKIAogICAgIGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRTaXplOyB9CisgICAgVGV4dHVy
ZU1hbmFnZXIqIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0
VmlzaWJsZShib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcAppbmRleCA5
NWMxYjcwMWU3ZjZhMDJmMTUwOWMyZTk1MjVjN2RjYjE3NzM5YWE2Li44YmJhMWU0YjkzYTE3MTM2
NzhlY2JjMjQ5OTQ3ODdmNzUwY2FmOTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBs
LmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAj
aW5jbHVkZSAiTGF5ZXJSZW5kZXJlckNocm9taXVtLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKLSNpbmNsdWRlICJWaWRlb0xheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJjYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsUHJveHkuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IApAQCAtNzAsMTAgKzY5LDEyIEBAIENDVmlkZW9MYXllckltcGw6On5DQ1ZpZGVvTGF5ZXJJbXBs
KCkKICAgICBjbGVhbnVwUmVzb3VyY2VzKCk7CiB9CiAKLXZvaWQgQ0NWaWRlb0xheWVySW1wbDo6
c2V0VGV4dHVyZShzaXplX3QgaSwgVmlkZW9MYXllckNocm9taXVtOjpUZXh0dXJlIHRleHR1cmUp
Cit2b2lkIENDVmlkZW9MYXllckltcGw6OnNldFRleHR1cmUoc2l6ZV90IGlkeCwgUGxhdGZvcm0z
RE9iamVjdCB0ZXh0dXJlSWQsIGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IEludFNpemUmIHZp
c2libGVTaXplKQogewotICAgIEFTU0VSVChpIDwgMyk7Ci0gICAgbV90ZXh0dXJlc1tpXSA9IHRl
eHR1cmU7CisgICAgQVNTRVJUKGlkeCA8IDMpOworICAgIG1fdGV4dHVyZXNbaWR4XS5pZCA9IHRl
eHR1cmVJZDsKKyAgICBtX3RleHR1cmVzW2lkeF0uc2l6ZSA9IHNpemU7CisgICAgbV90ZXh0dXJl
c1tpZHhdLnZpc2libGVTaXplID0gdmlzaWJsZVNpemU7CiB9CiAKIHZvaWQgQ0NWaWRlb0xheWVy
SW1wbDo6ZHJhdygpCkBAIC0xMDcsOSArMTA4LDkgQEAgdm9pZCBDQ1ZpZGVvTGF5ZXJJbXBsOjpk
cmF3KCkKIHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6ZHJhd1lVVihjb25zdCBDQ1ZpZGVvTGF5ZXJJ
bXBsOjpZVVZQcm9ncmFtKiBwcm9ncmFtKSBjb25zdAogewogICAgIEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0ID0gbGF5ZXJSZW5kZXJlcigpLT5jb250ZXh0KCk7Ci0gICAgVmlkZW9MYXllckNo
cm9taXVtOjpUZXh0dXJlIHlUZXh0dXJlID0gbV90ZXh0dXJlc1tWaWRlb0ZyYW1lQ2hyb21pdW06
OnlQbGFuZV07Ci0gICAgVmlkZW9MYXllckNocm9taXVtOjpUZXh0dXJlIHVUZXh0dXJlID0gbV90
ZXh0dXJlc1tWaWRlb0ZyYW1lQ2hyb21pdW06OnVQbGFuZV07Ci0gICAgVmlkZW9MYXllckNocm9t
aXVtOjpUZXh0dXJlIHZUZXh0dXJlID0gbV90ZXh0dXJlc1tWaWRlb0ZyYW1lQ2hyb21pdW06OnZQ
bGFuZV07CisgICAgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSB5VGV4dHVyZSA9IG1fdGV4dHVy
ZXNbVmlkZW9GcmFtZUNocm9taXVtOjp5UGxhbmVdOworICAgIENDVmlkZW9MYXllckltcGw6OlRl
eHR1cmUgdVRleHR1cmUgPSBtX3RleHR1cmVzW1ZpZGVvRnJhbWVDaHJvbWl1bTo6dVBsYW5lXTsK
KyAgICBDQ1ZpZGVvTGF5ZXJJbXBsOjpUZXh0dXJlIHZUZXh0dXJlID0gbV90ZXh0dXJlc1tWaWRl
b0ZyYW1lQ2hyb21pdW06OnZQbGFuZV07CiAKICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+YWN0
aXZlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTEpKTsKICAgICBHTEMoY29udGV4
dCwgY29udGV4dC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIHlU
ZXh0dXJlLmlkKSk7CkBAIC0xNDUsNyArMTQ2LDcgQEAgdm9pZCBDQ1ZpZGVvTGF5ZXJJbXBsOjpk
cmF3WVVWKGNvbnN0IENDVmlkZW9MYXllckltcGw6OllVVlByb2dyYW0qIHByb2dyYW0pIGNvbnMK
IHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6ZHJhd1JHQkEoY29uc3QgQ0NWaWRlb0xheWVySW1wbDo6
UkdCQVByb2dyYW0qIHByb2dyYW0pIGNvbnN0CiB7CiAgICAgR3JhcGhpY3NDb250ZXh0M0QqIGNv
bnRleHQgPSBsYXllclJlbmRlcmVyKCktPmNvbnRleHQoKTsKLSAgICBWaWRlb0xheWVyQ2hyb21p
dW06OlRleHR1cmUgdGV4dHVyZSA9IG1fdGV4dHVyZXNbVmlkZW9GcmFtZUNocm9taXVtOjpyZ2JQ
bGFuZV07CisgICAgQ0NWaWRlb0xheWVySW1wbDo6VGV4dHVyZSB0ZXh0dXJlID0gbV90ZXh0dXJl
c1tWaWRlb0ZyYW1lQ2hyb21pdW06OnJnYlBsYW5lXTsKIAogICAgIEdMQyhjb250ZXh0LCBjb250
ZXh0LT5hY3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFMCkpOwogICAgIEdM
Qyhjb250ZXh0LCBjb250ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV8yRCwgdGV4dHVyZS5pZCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5oCmluZGV4IGVl
OWQ0MjE2OTNhOWQxNzc3OTg0ZThiYjA2NzY2YTM2MDRlNTBjZTQuLmJkMTYzNzZiYjVmNDcyNjA5
ZWM0MTBlMGRlZjMyOTc1NzY3ZGYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmgK
QEAgLTUzLDExICs1MywxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFNraXBzRHJhdyhib29s
IHNraXBzRHJhdykgeyBtX3NraXBzRHJhdyA9IHNraXBzRHJhdzsgfQogICAgIHZvaWQgc2V0RnJh
bWVGb3JtYXQoVmlkZW9GcmFtZUNocm9taXVtOjpGb3JtYXQgZm9ybWF0KSB7IG1fZnJhbWVGb3Jt
YXQgPSBmb3JtYXQ7IH0KLSAgICB2b2lkIHNldFRleHR1cmUoc2l6ZV90LCBWaWRlb0xheWVyQ2hy
b21pdW06OlRleHR1cmUpOworICAgIHZvaWQgc2V0VGV4dHVyZShzaXplX3QsIFBsYXRmb3JtM0RP
YmplY3QgdGV4dHVyZUlkLCBjb25zdCBJbnRTaXplJiwgY29uc3QgSW50U2l6ZSYgdmlzaWJsZVNp
emUpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDVmlkZW9MYXllckltcGwoaW50KTsKIAor
ICAgIHN0cnVjdCBUZXh0dXJlIHsKKyAgICAgICAgUGxhdGZvcm0zRE9iamVjdCBpZDsKKyAgICAg
ICAgSW50U2l6ZSBzaXplOworICAgICAgICBJbnRTaXplIHZpc2libGVTaXplOworICAgIH07CisK
ICAgICB2b2lkIGRyYXdZVVYoY29uc3QgWVVWUHJvZ3JhbSopIGNvbnN0OwogICAgIHZvaWQgZHJh
d1JHQkEoY29uc3QgUkdCQVByb2dyYW0qKSBjb25zdDsKIApAQCAtNjYsNyArNzIsNyBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBtX3NraXBzRHJhdzsKICAgICBWaWRlb0ZyYW1lQ2hyb21pdW06OkZv
cm1hdCBtX2ZyYW1lRm9ybWF0OwotICAgIFZpZGVvTGF5ZXJDaHJvbWl1bTo6VGV4dHVyZSBtX3Rl
eHR1cmVzWzNdOworICAgIFRleHR1cmUgbV90ZXh0dXJlc1szXTsKIH07CiAKIH0K
</data>
<flag name="review"
          id="101167"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>