<?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>178992</bug_id>
          
          <creation_ts>2017-10-29 14:04:04 -0700</creation_ts>
          <short_desc>Implement &quot;bitmaprenderer&quot; CanvasRenderingContext</short_desc>
          <delta_ts>2017-10-30 12:37:56 -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>Canvas</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1365843</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-10-29 14:04:04 -0700</bug_when>
    <thetext>Implement &quot;bitmaprenderer&quot; CanvasRenderingContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365844</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-10-29 14:04:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/34147157&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365847</commentid>
    <comment_count>2</comment_count>
      <attachid>325292</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-10-29 14:17:31 -0700</bug_when>
    <thetext>Created attachment 325292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365848</commentid>
    <comment_count>3</comment_count>
      <attachid>325292</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2017-10-29 14:25:40 -0700</bug_when>
    <thetext>Comment on attachment 325292
Patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:507
&gt; +// FIXME: Needs to accept ImageBitmapRenderingContext::Settings.

Might as well file a bug for this, even if you fix it soon.

&gt; Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp:55
&gt; +    // 1. If a bitmap argument was not provided, then:

I&apos;d prefer a simple link to the spec than copying the entire copy as-is which may end up being stale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365849</commentid>
    <comment_count>4</comment_count>
      <attachid>325292</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-29 14:33:16 -0700</bug_when>
    <thetext>Comment on attachment 325292
Patch

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

&gt; Source/WebCore/html/ImageBitmap.cpp:563
&gt; +    m_detached = true;

Not related to this change, but is the m_detached useful? I would think it always corresponds to whether m_bitmapData is null or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366096</commentid>
    <comment_count>5</comment_count>
      <attachid>325292</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-10-30 11:34:07 -0700</bug_when>
    <thetext>Comment on attachment 325292
Patch

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

&gt;&gt; Source/WebCore/html/ImageBitmap.cpp:563
&gt;&gt; +    m_detached = true;
&gt; 
&gt; Not related to this change, but is the m_detached useful? I would think it always corresponds to whether m_bitmapData is null or not.

It might be possible to transfer a null ImageBitmap, although I&apos;m not sure how you&apos;d ever create one.

I think you&apos;re right though, so I&apos;ll make the change.

&gt;&gt; Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp:55
&gt;&gt; +    // 1. If a bitmap argument was not provided, then:
&gt; 
&gt; I&apos;d prefer a simple link to the spec than copying the entire copy as-is which may end up being stale.

I prefer the specification as comments because:

1. It makes it easier to implement.

2. It makes it easier to review - you don&apos;t have to be reading the specification and linking the logic up.

3. It makes it more clear when our implementation gets out of date compared to the specification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366126</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-10-30 12:37:56 -0700</bug_when>
    <thetext>Committed r224195: &lt;https://trac.webkit.org/changeset/224195&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325292</attachid>
            <date>2017-10-29 14:17:31 -0700</date>
            <delta_ts>2017-10-29 14:33:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178992-20171030081728.patch</filename>
            <type>text/plain</type>
            <size>22950</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBmOWYzZjI1MzNjNzRk
ODUxMjdlMjVkMWZmMzZhY2VmOTZjYTQ1OS4uMjliYzczMGMzNTUzOWMyYjlhN2JmYWJiNTBiNDdh
MjQzOTAxMzhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE3LTEwLTI5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgImJpdG1hcHJl
bmRlcmVyIiBDYW52YXNSZW5kZXJpbmdDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg5OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0
MTQ3MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEltcGxlbWVudCB0aGUgImJpdG1hcHJlbmRlcmVyIiBjb250ZXh0IGZvciBIVE1MQ2FudmFzRWxl
bWVudC4KKyAgICAgICAgVXNlIGFzIG11Y2ggb2YgdGhlIGV4aXN0aW5nIDJkIGNvbnRleHQgY29k
ZSBhcyBwb3NzaWJsZSwgd2hpY2gKKyAgICAgICAgbWVhbnMgdGhhdCB3ZSBhcmUgcGFpbnRpbmcg
dGhlIEltYWdlQml0bWFwIGludG8gdGhlIGJhY2tpbmcKKyAgICAgICAgc3RvcmUuIFRoaXMgaXNu
J3Qgb3B0aW1hbCwgYnV0IGl0IGlzIGdvb2QgZW5vdWdoIHRvIGdldAorICAgICAgICBnb2luZyB3
aGlsZSB3ZSBtb3ZlIGJ1ZmZlciBvd25lcnNoaXAgZnJvbSB0aGUgY2FudmFzIG9iamVjdAorICAg
ICAgICBpbnRvIHRoZSByZW5kZXJpbmcgY29udGV4dHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBy
YWlzZWQgYSBmZXcgaXNzdWVzIG9uIHRoZSBIVE1MIHNwZWNpZmljYXRpb246CisgICAgICAgIGh0
dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvMzE2NAorICAgICAgICBodHRwczov
L2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNzdWVzLzMxNjUKKyAgICAgICAgaHR0cHM6Ly9naXRo
dWIuY29tL3doYXR3Zy9odG1sL2lzc3Vlcy8zMTY2CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv
bS93aGF0d2cvaHRtbC9pc3N1ZXMvMzE2NworCisgICAgICAgIFVwZGF0ZSBleGlzdGluZyBXZWIg
UGxhdGZvcm0gVGVzdCByZXN1bHRzLgorCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4
dDJkKTogRHJpdmUtYnkgY29tbWVudCBmaXguCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdMKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdQVSk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJlcik6
IFdlIG5vdyByZXF1aXJlCisgICAgICAgIGEgbGF5ZXIvYmFja2luZyBzdG9yZSBmb3IgYSBiaXRt
YXAgY29udGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWludHNJ
bnRvQ2FudmFzQnVmZmVyIGNvbnN0KTogQWRkIGJpdG1hcC1yZW5kZXJlcgorICAgICAgICB0byB0
aGUgdHlwZSBvZiBjb250ZXh0IHRoYXQgdXNlcyB0aGUgY2FudmFzJ3MgYmFja2luZyBzdG9yZS4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBj
b25zdCk6IENvbW1lbnQgZml4LgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6
OnNldEltYWdlQnVmZmVyIGNvbnN0KTogQ2hhbmdlIHBhcmFtZXRlciB0byBhICYmLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5
KTogTmV3IGZ1bmN0aW9uIHRvIHNldAorICAgICAgICB0aGUgYmFja2luZyBzdG9yZSBlZmZpY2ll
bnRseSwgYXMgd2VsbCBhcyBtYWtlIGl0IGxvb2sgbGlrZSB3ZSBuZWVkIHRvIHJlcGFpbnQKKyAg
ICAgICAgdGhlIGVudGlyZSBjYW52YXMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxl
bWVudDo6ZHJhd2luZ0NvbnRleHQgY29uc3QpOiBUaGUgYnVmZmVyIGRvZXNuJ3QgYWN0dWFsbHkK
KyAgICAgICAgbmVlZCB0byBwcm92aWRlIGEgR3JhcGhpY3NDb250ZXh0IGlmIHdlJ3JlIGEgYml0
bWFwIHJlbmRlcmVyLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKworICAg
ICAgICAqIGh0bWwvSW1hZ2VCaXRtYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRt
YXA6OnRyYW5zZmVyT3duZXJzaGlwQW5kQ2xvc2UpOiBOZXcgaGVscGVyIHRvIGdpdmUgdGhlIG93
bmVyc2hpcAorICAgICAgICBvZiB0aGUgSW1hZ2VCdWZmZXIgYXdheSwgYW5kIGxvb2sgbGlrZSBj
bG9zZSgpIHdhcyBjYWxsZWQuCisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5oOgorCisgICAg
ICAgICogaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcDogSW1wbGVt
ZW50IHRoZSBhbGdvcml0aG0gZnJvbSB0aGUgSFRNTAorICAgICAgICBzcGVjaWZpY2F0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0OjpJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0Ojppc0FjY2VsZXJhdGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dDo6c2V0T3V0cHV0Qml0bWFwKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDo6dHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAp
OgorICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGw6CisK
IDIwMTctMTAtMjkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
QXNzZXJ0IHRoYXQgbm8gc2NyaXB0IGlzIGV4ZWN1dGVkIGR1cmluZyBzdHlsZSByZWNhbGMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggNzRkMWIyOGY4Mjdi
N2JmMmNhMWZjOGJlN2NmMDk4MDdiZTM0NTg2NS4uYWE2Yjc4YjMwZGY4ODlmZTA2ZDAwNDU5OTQ4
YzVmMjlhMmMyNWU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKQEAgLTM3Myw3ICszNzMsNyBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIEhUTUxDYW52
YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0MmQoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhp
cyk7CiAKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUo
QUNDRUxFUkFURURfMkRfQ0FOVkFTKQotICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVy
TGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCisg
ICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5
ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMuCiAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5
ZXJDb21wb3NpdGlvbigpOwogI2VuZGlmCiAKQEAgLTQzMyw3ICs0MzMsNyBAQCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlKiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdMKGNv
bnN0IFN0cmluZyYgdAogCiAgICAgbV9jb250ZXh0ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Y3JlYXRlKCp0aGlzLCBhdHRycywgdHlwZSk7CiAgICAgaWYgKG1fY29udGV4dCkgewotICAg
ICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBs
YXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcworICAgICAgICAvLyBOZWVkIHRvIG1ha2Ug
c3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3Ig
dGhlIENhbnZhcy4KICAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigp
OwogCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dCgqdGhpcyk7CkBAIC00NzQsNyArNDc0LDcgQEAgV2ViR1BVUmVuZGVyaW5n
Q29udGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRXZWJHUFUoY29uc3QgU3Ry
aW5nJiB0eXAKIAogICAgIG1fY29udGV4dCA9IFdlYkdQVVJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0
ZSgqdGhpcyk7CiAgICAgaWYgKG1fY29udGV4dCkgewotICAgICAgICAvLyBOZWVkIHRvIG1ha2Ug
c3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3Ig
dGhlIENhbnZhcworICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFu
ZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcy4KICAgICAgICAg
aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwogCiAgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlQ2FudmFzUmVuZGVyaW5nQ29udGV4dCgqdGhpcyk7
CkBAIC01MDQsNiArNTA0LDcgQEAgYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6aXNCaXRtYXBSZW5k
ZXJlclR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgIHJldHVybiB0eXBlID09ICJiaXRtYXBy
ZW5kZXJlciI7CiB9CiAKKy8vIEZJWE1FOiBOZWVkcyB0byBhY2NlcHQgSW1hZ2VCaXRtYXBSZW5k
ZXJpbmdDb250ZXh0OjpTZXR0aW5ncy4KIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCogSFRN
TENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRCaXRtYXBSZW5kZXJlcihjb25zdCBTdHJpbmcm
IHR5cGUpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCBIVE1MQ2FudmFzRWxlbWVudDo6aXNC
aXRtYXBSZW5kZXJlclR5cGUodHlwZSkpOwpAQCAtNTExLDYgKzUxMiwxMSBAQCBJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0Qml0bWFw
UmVuZGVyZXIoY29ucwogCiAgICAgbV9jb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQ+KCp0aGlzKTsKIAorI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFT
X0JBQ0tJTkdfU1RPUkUpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisgICAgLy8g
TmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0
IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMuCisgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21w
b3NpdGlvbigpOworI2VuZGlmCisKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0Kj4obV9jb250ZXh0LmdldCgpKTsKIH0KIApAQCAtNjAyLDcgKzYwOCw3
IEBAIGJvb2wgSFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50c0ludG9DYW52YXNCdWZmZXIoKSBjb25z
dAogewogICAgIEFTU0VSVChtX2NvbnRleHQpOwogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JB
Q0tJTkdfU1RPUkUpCi0gICAgaWYgKG1fY29udGV4dC0+aXMyZCgpKQorICAgIGlmIChtX2NvbnRl
eHQtPmlzMmQoKSB8fCBtX2NvbnRleHQtPmlzQml0bWFwUmVuZGVyZXIoKSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAjZW5kaWYKIApAQCAtOTU2LDEzICs5NjIsMTQgQEAgdm9pZCBIVE1MQ2FudmFz
RWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+dm0oKS5oZWFwLnJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVkKG1lbW9yeUNvc3Qo
KSk7CiAKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUo
QUNDRUxFUkFURURfMkRfQ0FOVkFTKQotICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5p
czJkKCkpCisgICAgaWYgKG1fY29udGV4dCAmJiBtX2NvbnRleHQtPmlzMmQoKSkgewogICAgICAg
ICAvLyBSZWNhbGN1bGF0ZSBjb21wb3NpdGluZyByZXF1aXJlbWVudHMgaWYgYWNjZWxlcmF0aW9u
IHN0YXRlIGNoYW5nZWQuCiAgICAgICAgIGNvbnN0X2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPih0
aGlzKS0+aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworICAgIH0KICNlbmRp
ZgogfQogCi12b2lkIEhUTUxDYW52YXNFbGVtZW50OjpzZXRJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlcikgY29uc3QKK3ZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6
OnNldEltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZmZXIpIGNv
bnN0CiB7CiAgICAgc2l6ZV90IHByZXZpb3VzTWVtb3J5Q29zdCA9IG1lbW9yeUNvc3QoKTsKICAg
ICByZW1vdmVGcm9tQWN0aXZlUGl4ZWxNZW1vcnkocHJldmlvdXNNZW1vcnlDb3N0KTsKQEAgLTk3
OSw4ICs5ODYsMTggQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6c2V0SW1hZ2VCdWZmZXIoc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIpIGNvbnMKICAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDaGFuZ2VDYW52YXNNZW1vcnkoY29uc3RfY2FzdDxIVE1MQ2Fu
dmFzRWxlbWVudCY+KCp0aGlzKSk7CiB9CiAKK3ZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnNldElt
YWdlQnVmZmVyQW5kTWFya0RpcnR5KHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4mJiBidWZm
ZXIpCit7CisgICAgbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIgPSB0cnVlOworICAgIHNldEltYWdl
QnVmZmVyKFdURk1vdmUoYnVmZmVyKSk7CisgICAgZGlkRHJhdyhGbG9hdFJlY3QoRmxvYXRQb2lu
dCgpLCBtX3NpemUpKTsKK30KKwogR3JhcGhpY3NDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6
ZHJhd2luZ0NvbnRleHQoKSBjb25zdAogeworICAgIGlmIChtX2NvbnRleHQgJiYgIW1fY29udGV4
dC0+aXMyZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIHJldHVybiBidWZmZXIo
KSA/ICZtX2ltYWdlQnVmZmVyLT5jb250ZXh0KCkgOiBudWxscHRyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggNzYxYzkzMTU4ZjA5YzhiMzg5MzdlMGY1
MmE3ZWE3NzIzYmM3NjNlMy4uYTg5NDUzMWRhMzExNjFhYTQzZTQ4YTcwM2RkODRjMTA1Y2ZhNjQ0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTUwLDYgKzE1
MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyUHJlc2VudGF0aW9uQ29weSgpOwogCiAgICAg
U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CisgICAgdm9pZCBzZXRPcmln
aW5DbGVhbigpIHsgbV9vcmlnaW5DbGVhbiA9IHRydWU7IH0KICAgICB2b2lkIHNldE9yaWdpblRh
aW50ZWQoKSB7IG1fb3JpZ2luQ2xlYW4gPSBmYWxzZTsgfQogICAgIGJvb2wgb3JpZ2luQ2xlYW4o
KSBjb25zdCB7IHJldHVybiBtX29yaWdpbkNsZWFuOyB9CiAKQEAgLTE2OCw2ICsxNjksMTAgQEAg
cHVibGljOgogICAgIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3Q7CiAgICAgc2l6ZV90IGV4dGVy
bmFsTWVtb3J5Q29zdCgpIGNvbnN0OwogCisgICAgLy8gRklYTUU6IE9ubHkgc29tZSBjYW52YXMg
cmVuZGVyaW5nIGNvbnRleHRzIG5lZWQgYW4gSW1hZ2VCdWZmZXIuCisgICAgLy8gSXQgd291bGQg
YmUgYmV0dGVyIHRvIGhhdmUgdGhlIGNvbnRleHRzIG93biB0aGUgYnVmZmVycy4KKyAgICB2b2lk
IHNldEltYWdlQnVmZmVyQW5kTWFya0RpcnR5KHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4m
Jik7CisKIHByaXZhdGU6CiAgICAgSFRNTENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKQEAgLTE4Myw3ICsxODgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
Y2xlYXJJbWFnZUJ1ZmZlcigpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRTdXJmYWNlU2l6ZShjb25z
dCBJbnRTaXplJik7Ci0gICAgdm9pZCBzZXRJbWFnZUJ1ZmZlcihzdGQ6OnVuaXF1ZV9wdHI8SW1h
Z2VCdWZmZXI+KSBjb25zdDsKKyAgICB2b2lkIHNldEltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlcj4mJikgY29uc3Q7CiAgICAgdm9pZCByZWxlYXNlSW1hZ2VCdWZmZXJBbmRD
b250ZXh0KCk7CiAKICAgICBib29sIHBhaW50c0ludG9DYW52YXNCdWZmZXIoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKaW5kZXggNGM4MDE1NjRlYzhhZjZkYzMwYjZhMGVl
ZWVhYjY0ZTQxODczNDZlZi4uNmVjNjE2ZmZlZWY0MGNhNWYzMDk3NTdlNDY3N2Q0OGQzZDk1MGFh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKQEAgLTQ4LDEzICs0OCwxMiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JN
KElPU19TSU1VTEFUT1IpCisjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkg
fHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKIHN0YXRpYyBSZW5kZXJpbmdNb2RlIGJ1
ZmZlclJlbmRlcmluZ01vZGUgPSBBY2NlbGVyYXRlZDsKICNlbHNlCiBzdGF0aWMgUmVuZGVyaW5n
TW9kZSBidWZmZXJSZW5kZXJpbmdNb2RlID0gVW5hY2NlbGVyYXRlZDsKICNlbmRpZgogCi0KIFJl
ZjxJbWFnZUJpdG1hcD4gSW1hZ2VCaXRtYXA6OmNyZWF0ZSgpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSW1hZ2VCaXRtYXApOwpAQCAtNTU5LDQgKzU1OCwxMCBAQCB2b2lkIEltYWdlQml0
bWFwOjpjbG9zZSgpCiAgICAgbV9iaXRtYXBEYXRhID0gbnVsbHB0cjsKIH0KIAorc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVyPiBJbWFnZUJpdG1hcDo6dHJhbnNmZXJPd25lcnNoaXBBbmRDbG9z
ZSgpCit7CisgICAgbV9kZXRhY2hlZCA9IHRydWU7CisgICAgcmV0dXJuIFdURk1vdmUobV9iaXRt
YXBEYXRhKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJp
dG1hcC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5oCmluZGV4IDMwOGJiZDA0
N2NjYjA1ZGU2MDlkMTk3OGQ2OGY0ZGU5MDBjMzU1Y2EuLmRkZWU5NTI2Y2ZlYWE2ZDVhN2E3MjIx
YjFmMGVlZmNiZjNhMTQ0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VC
aXRtYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmgKQEAgLTc0LDYg
Kzc0LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBvcmlnaW5DbGVhbigpIGNvbnN0IHsgcmV0dXJu
IG1fb3JpZ2luQ2xlYW47IH0KIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gdHJh
bnNmZXJPd25lcnNoaXBBbmRDbG9zZSgpOworCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQ
ZW5kaW5nSW1hZ2VCaXRtYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGE4NDY3N2UxZDE3
YzgxNmI4NjIwZWI3NzAxYjk4ZGMxYzlmNGY5MGMuLmE3NTg1MTVhNDJkNmE3NDZhYjJiMDRmNmJi
YWU3ZmRiNDIyMDgzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lt
YWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjYsMTEgKzI2LDExNSBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dC5oIgogCisjaW5jbHVkZSAiSW1hZ2VCaXRtYXAuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZl
ci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19C
QUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorc3RhdGljIFJl
bmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IEFjY2VsZXJhdGVkOworI2Vsc2UKK3N0
YXRpYyBSZW5kZXJpbmdNb2RlIGJ1ZmZlclJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkOwor
I2VuZGlmCisKIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDo6SW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMpCiAgICAgOiBDYW52YXNSZW5kZXJp
bmdDb250ZXh0KGNhbnZhcykKIHsKKyAgICBzZXRPdXRwdXRCaXRtYXAobnVsbHB0cik7Cit9CisK
K0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDo6fkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4
dCgpID0gZGVmYXVsdDsKKworYm9vbCBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ6OmlzQWNj
ZWxlcmF0ZWQoKSBjb25zdAoreworICAgIHJldHVybiBidWZmZXJSZW5kZXJpbmdNb2RlID09IEFj
Y2VsZXJhdGVkOworfQorCit2b2lkIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDo6c2V0T3V0
cHV0Qml0bWFwKFJlZlB0cjxJbWFnZUJpdG1hcD4gaW1hZ2VCaXRtYXApCit7CisgICAgLy8gMS4g
SWYgYSBiaXRtYXAgYXJndW1lbnQgd2FzIG5vdCBwcm92aWRlZCwgdGhlbjoKKworICAgIGlmICgh
aW1hZ2VCaXRtYXApIHsKKworICAgICAgICAvLyAxLjEuIFNldCBjb250ZXh0J3MgYml0bWFwIG1v
ZGUgdG8gYmxhbmsuCisKKyAgICAgICAgbV9iaXRtYXBNb2RlID0gQml0bWFwTW9kZTo6Qmxhbms7
CisKKyAgICAgICAgLy8gMS4yLiBMZXQgY2FudmFzIGJlIHRoZSBjYW52YXMgZWxlbWVudCB0byB3
aGljaCBjb250ZXh0IGlzIGJvdW5kLgorCisgICAgICAgIC8vIDEuMy4gU2V0IGNvbnRleHQncyBv
dXRwdXQgYml0bWFwIHRvIGJlIHRyYW5zcGFyZW50IGJsYWNrIHdpdGggYW4KKyAgICAgICAgLy8g
ICAgICBpbnRyaW5zaWMgd2lkdGggZXF1YWwgdG8gdGhlIG51bWVyaWMgdmFsdWUgb2YgY2FudmFz
J3Mgd2lkdGggYXR0cmlidXRlCisgICAgICAgIC8vICAgICAgYW5kIGFuIGludHJpbnNpYyBoZWln
aHQgZXF1YWwgdG8gdGhlIG51bWVyaWMgdmFsdWUgb2YgY2FudmFzJ3MgaGVpZ2h0CisgICAgICAg
IC8vICAgICAgYXR0cmlidXRlLCB0aG9zZSB2YWx1ZXMgYmVpbmcgaW50ZXJwcmV0ZWQgaW4gQ1NT
IHBpeGVscy4KKworICAgICAgICAvLyBGSVhNRTogV2hhdCBpcyB0aGUgcG9pbnQgb2YgY3JlYXRp
bmcgYSBmdWxsIHNpemUgdHJhbnNwYXJlbnQgYnVmZmVyIHRoYXQKKyAgICAgICAgLy8gY2FuIG5l
dmVyIGJlIGNoYW5nZWQ/IFdvdWxkbid0IGEgMXgxIGJ1ZmZlciBnaXZlIHRoZSBzYW1lIHJlbmRl
cmluZz8gVGhlCisgICAgICAgIC8vIG9ubHkgcmVhc29uIEkgY2FuIHRoaW5rIG9mIGlzIHRvRGF0
YVVSTCgpLCBidXQgdGhhdCBkb2Vzbid0IHNlZW0gbGlrZQorICAgICAgICAvLyBhIGdvb2QgZW5v
dWdoIGFyZ3VtZW50IHRvIHdhc3RlIG1lbW9yeS4KKworICAgICAgICBjYW52YXMoKS5zZXRJbWFn
ZUJ1ZmZlckFuZE1hcmtEaXJ0eShJbWFnZUJ1ZmZlcjo6Y3JlYXRlKEZsb2F0U2l6ZShjYW52YXMo
KS53aWR0aCgpLCBjYW52YXMoKS5oZWlnaHQoKSksIGJ1ZmZlclJlbmRlcmluZ01vZGUpKTsKKwor
ICAgICAgICAvLyAxLjQuIFNldCB0aGUgb3V0cHV0IGJpdG1hcCdzIG9yaWdpbi1jbGVhbiBmbGFn
IHRvIHRydWUuCisKKyAgICAgICAgY2FudmFzKCkuc2V0T3JpZ2luQ2xlYW4oKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIDIuIElmIGEgYml0bWFwIGFyZ3VtZW50IHdhcyBwcm92
aWRlZCwgdGhlbjoKKworICAgIC8vIDIuMS4gU2V0IGNvbnRleHQncyBiaXRtYXAgbW9kZSB0byB2
YWxpZC4KKworICAgIG1fYml0bWFwTW9kZSA9IEJpdG1hcE1vZGU6OlZhbGlkOworCisgICAgLy8g
Mi4yLiBTZXQgY29udGV4dCdzIG91dHB1dCBiaXRtYXAgdG8gcmVmZXIgdG8gdGhlIHNhbWUgdW5k
ZXJseWluZworICAgIC8vICAgICAgYml0bWFwIGRhdGEgYXMgYml0bWFwLCB3aXRob3V0IG1ha2lu
ZyBhIGNvcHkuCisgICAgLy8gICAgICBOb3RlOiB0aGUgb3JpZ2luLWNsZWFuIGZsYWcgb2YgYml0
bWFwIGlzIGluY2x1ZGVkIGluIHRoZQorICAgIC8vICAgICAgYml0bWFwIGRhdGEgdG8gYmUgcmVm
ZXJlbmNlZCBieSBjb250ZXh0J3Mgb3V0cHV0IGJpdG1hcC4KKworICAgIGlmIChpbWFnZUJpdG1h
cC0+b3JpZ2luQ2xlYW4oKSkKKyAgICAgICAgY2FudmFzKCkuc2V0T3JpZ2luQ2xlYW4oKTsKKyAg
ICBlbHNlCisgICAgICAgIGNhbnZhcygpLnNldE9yaWdpblRhaW50ZWQoKTsKKyAgICBjYW52YXMo
KS5zZXRJbWFnZUJ1ZmZlckFuZE1hcmtEaXJ0eShpbWFnZUJpdG1hcC0+dHJhbnNmZXJPd25lcnNo
aXBBbmRDbG9zZSgpKTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gSW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0Ojp0cmFuc2ZlckZyb21JbWFnZUJpdG1hcChSZWZQdHI8SW1hZ2VCaXRtYXA+IGlt
YWdlQml0bWFwKQoreworICAgIC8vIDEuIExldCBiaXRtYXBDb250ZXh0IGJlIHRoZSBJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQgb2JqZWN0IG9uIHdoaWNoCisgICAgLy8gICAgdGhlIHRyYW5z
ZmVyRnJvbUltYWdlQml0bWFwKCkgbWV0aG9kIHdhcyBjYWxsZWQuCisKKyAgICAvLyAyLiBJZiBp
bWFnZUJpdG1hcCBpcyBudWxsLCB0aGVuIHJ1biB0aGUgc3RlcHMgdG8gc2V0IGFuIEltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dCdzCisgICAgLy8gICAgb3V0cHV0IGJpdG1hcCwgd2l0aCBiaXRt
YXBDb250ZXh0IGFzIHRoZSBjb250ZXh0IGFyZ3VtZW50IGFuZCBubyBiaXRtYXAgYXJndW1lbnQs
CisgICAgLy8gICAgdGhlbiBhYm9ydCB0aGVzZSBzdGVwcy4KKworICAgIGlmICghaW1hZ2VCaXRt
YXApIHsKKyAgICAgICAgc2V0T3V0cHV0Qml0bWFwKG51bGxwdHIpOworICAgICAgICByZXR1cm4g
eyB9OworICAgIH0KKworICAgIC8vIDMuIElmIHRoZSB2YWx1ZSBvZiBpbWFnZUJpdG1hcCdzIFtb
RGV0YWNoZWRdXSBpbnRlcm5hbCBzbG90IGlzIHNldCB0byB0cnVlLAorICAgIC8vICAgIHRoZW4g
dGhyb3cgYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24gYW5kIGFib3J0IHRoZXNl
IHN0ZXBzLgorCisgICAgaWYgKGltYWdlQml0bWFwLT5pc0RldGFjaGVkKCkpCisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgLy8gNC4gUnVuIHRo
ZSBzdGVwcyB0byBzZXQgYW4gSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0J3Mgb3V0cHV0IGJp
dG1hcCwKKyAgICAvLyAgICB3aXRoIHRoZSBjb250ZXh0IGFyZ3VtZW50IGVxdWFsIHRvIGJpdG1h
cENvbnRleHQsIGFuZCB0aGUgYml0bWFwCisgICAgLy8gICAgYXJndW1lbnQgcmVmZXJyaW5nIHRv
IGltYWdlQml0bWFwJ3MgdW5kZXJseWluZyBiaXRtYXAgZGF0YS4KKworICAgIHNldE91dHB1dEJp
dG1hcChpbWFnZUJpdG1hcCk7CisKKyAgICAvLyA1LiBTZXQgdGhlIHZhbHVlIG9mIGltYWdlQml0
bWFwJ3MgW1tEZXRhY2hlZF1dIGludGVybmFsIHNsb3QgdG8gdHJ1ZS4KKyAgICAvLyA2LiBVbnNl
dCBpbWFnZUJpdG1hcCdzIGJpdG1hcCBkYXRhLgorCisgICAgLy8gTm90ZSB0aGF0IHRoZSBhbGdv
cml0aG0gaW4gdGhlIHNwZWNpZmljYXRpb24gaXMgY3VycmVudGx5IGEgYml0CisgICAgLy8gbXVk
ZHkgaGVyZS4gVGhlIHNldE91dHB1dEJpdG1hcCBzdGVwIGFib3ZlIGhhZCB0byB0cmFuc2ZlciBv
d25lcnNoaXAKKyAgICAvLyBmcm9tIHRoZSBpbWFnZUJpdG1hcCB0byB0aGlzIG9iamVjdCwgd2hp
Y2ggcmVxdWlyZXMgYSBkZXRhY2ggYW5kIHVuc2V0LAorICAgIC8vIHNvIHRoaXMgc3RlcCBpc24n
dCBuZWNlc3NhcnksIGJ1dCB3ZSdsbCBkbyBpdCBhbnl3YXkuCisKKyAgICBpbWFnZUJpdG1hcC0+
Y2xvc2UoKTsKKworICAgIHJldHVybiB7IH07CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXgg
MTQ3MDdhN2JjNDc2OWQ1NzU0NzM2YzNlYjY3MzU4NDYxZjg4MzI4MS4uMzJhNzVjMTM4NjE5NGM2
N2ZjYmE5NDJmM2ExNjhhYWFhMjU5ODc4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTI3LDE4ICsy
Nyw0MiBAQAogCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIgogCisjaW5jbHVk
ZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlckRhdGEuaCIKKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSW1hZ2VCaXRt
YXA7CitjbGFzcyBJbWFnZUJ1ZmZlcjsKKwogY2xhc3MgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250
ZXh0IGZpbmFsIDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgewogcHVibGljOgogICAg
IHN0cnVjdCBTZXR0aW5ncyB7CiAgICAgICAgIGJvb2wgYWxwaGEgPSB0cnVlOwogICAgIH07CiAK
KyAgICBlbnVtIGNsYXNzIEJpdG1hcE1vZGUgeworICAgICAgICBWYWxpZCwKKyAgICAgICAgQmxh
bmsKKyAgICB9OworCiAgICAgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50Jik7CisgICAgfkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCgpOworCisgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gdHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAoUmVmUHRyPEltYWdlQml0bWFw
Pik7CisKKyAgICBCaXRtYXBNb2RlIGJpdG1hcE1vZGUoKSB7IHJldHVybiBtX2JpdG1hcE1vZGU7
IH0KKyAgICBib29sIGhhc0FscGhhKCkgeyByZXR1cm4gbV9zZXR0aW5ncy5hbHBoYTsgfQogCiBw
cml2YXRlOgogICAgIGJvb2wgaXNCaXRtYXBSZW5kZXJlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KKyAgICBib29sIGlzQWNjZWxlcmF0ZWQoKSBjb25zdCBvdmVycmlkZTsKKworICAg
IHZvaWQgc2V0T3V0cHV0Qml0bWFwKFJlZlB0cjxJbWFnZUJpdG1hcD4pOworCisgICAgQml0bWFw
TW9kZSBtX2JpdG1hcE1vZGUgeyBCaXRtYXBNb2RlOjpCbGFuayB9OworICAgIFNldHRpbmdzIG1f
c2V0dGluZ3M7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmlkbAppbmRleCBmMTRmZWE5MDVkZmE0
Y2E2ZjNmZTc3ZDNkMzUwYzg4MjRmNWNkYWEzLi5lY2I3MWI3ZDk3ZmIwNGQ0NWY3ZDcxYWJmNzRm
NjgyYjkzZWMwZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFn
ZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5pZGwKQEAgLTI4LDggKzI4LDcgQEAKIF0g
aW50ZXJmYWNlIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCB7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEhUTUxDYW52YXNFbGVtZW50IGNhbnZhczsKIAotICAgIC8vIEZJWE1FOiBBZGQgc3Vw
cG9ydCBmb3IgdHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAgb25jZSB3ZSBoYXZlIEltYWdlQml0bWFw
IHN1cHBvcnQuCi0gICAgLy8gdm9pZCB0cmFuc2ZlckZyb21JbWFnZUJpdG1hcChJbWFnZUJpdG1h
cD8gYml0bWFwKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgdHJhbnNmZXJGcm9tSW1h
Z2VCaXRtYXAoSW1hZ2VCaXRtYXA/IGJpdG1hcCk7CiB9OwogCiBkaWN0aW9uYXJ5IEltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDczYzcwMWNmNWE3MDkyZTg1ZmU4ZjEzOTc5ODc2MGZlOThhYjMxNzQuLjFhNGE4ODZh
ZGEzNDY2OGI2MDA1ZTZhN2E1NjkzMzc0MGM3Y2YzODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTEwLTI5ICBEZWFuIEphY2tzb24gIDxkaW5v
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgImJpdG1hcHJlbmRlcmVyIiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzg5OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MTQ3MTU3PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0aGUgZXhw
ZWN0ZWQgcmVzdWx0cyBub3cgbW9yZSBvZiB0aGUgaW50ZXJmYWNlIGhhcworICAgICAgICBiZWVu
IGFkZGVkLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlYml0bWFwLXJlbmRl
cmluZ2NvbnRleHQvYml0bWFwcmVuZGVyZXItYXMtaW1hZ2Vzb3VyY2UtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZWJpdG1hcC1yZW5kZXJpbmdjb250ZXh0
L2NvbnRleHQtY3JlYXRpb24td2l0aC1hbHBoYS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2ltYWdlYml0bWFwLXJlbmRlcmluZ2NvbnRleHQvdHJhbmZlckZyb21J
bWFnZUJpdG1hcC1udWxsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvaW1hZ2ViaXRtYXAtcmVuZGVyaW5nY29udGV4dC90cmFuc2ZlckZyb21JbWFnZUJpdG1hcC1k
ZXRhY2hlZC1leHBlY3RlZC50eHQ6CisKIDIwMTctMTAtMjggIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIGNyZWF0ZUltYWdlQml0bWFwIHdpdGggSFRNTENhbnZhc0Vs
ZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaW1hZ2ViaXRtYXAtcmVuZGVyaW5nY29udGV4dC9iaXRtYXByZW5kZXJlci1hcy1pbWFn
ZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ltYWdlYml0bWFwLXJlbmRlcmluZ2NvbnRleHQvYml0bWFwcmVuZGVyZXItYXMt
aW1hZ2Vzb3VyY2UtZXhwZWN0ZWQudHh0CmluZGV4IDkyZDhkMDhmOTViMWJkYmQxODZhNDZkMzBl
ZGY1YWZlNjVhNjQxNDguLjM5ZTdjYzJhYmM5MjhjMmZiNmJhNWFkYTlhNmI0OTBjOTYzOTgyOGUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aW1hZ2ViaXRtYXAtcmVuZGVyaW5nY29udGV4dC9iaXRtYXByZW5kZXJlci1hcy1pbWFnZXNvdXJj
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9pbWFnZWJpdG1hcC1yZW5kZXJpbmdjb250ZXh0L2JpdG1hcHJlbmRlcmVyLWFzLWlt
YWdlc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBUZXN0IHRoYXQg
Y3JlYXRlSW1hZ2VCaXRtYXAgZnJvbSBhIGJpdG1hcHJlbmRlcmVyIGNhbnZhcyBwcm9kdWNlcyBj
b3JyZWN0IHJlc3VsdCBteUN0eC50cmFuc2ZlckZyb21JbWFnZUJpdG1hcCBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdteUN0eC50cmFuc2ZlckZyb21JbWFnZUJpdG1hcChpbWFnZSknLCAnbXlDdHgu
dHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAnIGlzIHVuZGVmaW5lZCkKK0ZBSUwgVGVzdCB0aGF0IGNy
ZWF0ZUltYWdlQml0bWFwIGZyb20gYSBiaXRtYXByZW5kZXJlciBjYW52YXMgcHJvZHVjZXMgY29y
cmVjdCByZXN1bHQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMTAgYnV0IGdvdCAyMAogUEFTUyBU
ZXN0IHRoYXQgY3JlYXRlSW1hZ2VCaXRtYXAgb24gYSBiaXRtYXByZW5kZXJlciBjYW52YXMgdGhh
dCBuZXZlciBjb25zdW1lcyBhbnkgc291cmNlIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IAotRkFJ
TCBUZXN0IHRoYXQgY3JlYXRlSW1hZ2VCaXRtYXAgb24gYSBiaXRtYXByZW5kZXJlciBjYW52YXMg
dGhhdCBjb25zdW1lcyBudWxsIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0IGN0eC50cmFuc2ZlckZy
b21JbWFnZUJpdG1hcCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdjdHgudHJhbnNmZXJGcm9tSW1h
Z2VCaXRtYXAobnVsbCknLCAnY3R4LnRyYW5zZmVyRnJvbUltYWdlQml0bWFwJyBpcyB1bmRlZmlu
ZWQpCitQQVNTIFRlc3QgdGhhdCBjcmVhdGVJbWFnZUJpdG1hcCBvbiBhIGJpdG1hcHJlbmRlcmVy
IGNhbnZhcyB0aGF0IGNvbnN1bWVzIG51bGwgcHJvZHVjZXMgY29ycmVjdCByZXN1bHQgCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW1h
Z2ViaXRtYXAtcmVuZGVyaW5nY29udGV4dC9jb250ZXh0LWNyZWF0aW9uLXdpdGgtYWxwaGEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9p
bWFnZWJpdG1hcC1yZW5kZXJpbmdjb250ZXh0L2NvbnRleHQtY3JlYXRpb24td2l0aC1hbHBoYS1l
eHBlY3RlZC50eHQKaW5kZXggZGU4ZGU0MGM4MDJlYzA3MjM2Nzc3OTIxYTcxMDc2YWRiNDlhNzM5
Ny4uMDk2YzllZDgzMjRiMjE5Yjk3YmE0ODMyZjc5YzFjYTM2N2YxMDQ4MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZWJpdG1hcC1y
ZW5kZXJpbmdjb250ZXh0L2NvbnRleHQtY3JlYXRpb24td2l0aC1hbHBoYS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZWJp
dG1hcC1yZW5kZXJpbmdjb250ZXh0L2NvbnRleHQtY3JlYXRpb24td2l0aC1hbHBoYS1leHBlY3Rl
ZC50eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgVGVzdCB0aGF0IGFuIEltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dCB3aXRoIGFscGhhIGRpc2FibGVkIG1ha2VzIHRoZSBjYW52YXMgb3BhcXVl
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogZHN0Q3R4LnRyYW5zZmVyRnJvbUltYWdlQml0bWFwIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ2RzdEN0eC50cmFuc2ZlckZyb21JbWFnZUJpdG1hcChpbWFnZSknLCAnZHN0Q3R4LnRy
YW5zZmVyRnJvbUltYWdlQml0bWFwJyBpcyB1bmRlZmluZWQpIgotRkFJTCBUZXN0IHRoYXQgYW4g
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IHdpdGggYWxwaGEgZW5hYmxlZCBwcmVzZXJ2ZXMg
dGhlIGFscGhhIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogZHN0Q3R4LnRyYW5zZmVyRnJvbUltYWdlQml0bWFwIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ2RzdEN0eC50cmFuc2ZlckZyb21JbWFnZUJpdG1hcChpbWFnZSknLCAn
ZHN0Q3R4LnRyYW5zZmVyRnJvbUltYWdlQml0bWFwJyBpcyB1bmRlZmluZWQpIgotRkFJTCBUZXN0
IHRoYXQgdGhlICdhbHBoYScgY29udGV4dCBjcmVhdGlvbiBhdHRyaWJ1dGUgaXMgdHJ1ZSBieSBk
ZWZhdWx0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogZHN0Q3R4LnRyYW5zZmVyRnJvbUltYWdlQml0bWFwIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ2RzdEN0eC50cmFuc2ZlckZyb21JbWFnZUJpdG1hcChpbWFnZSknLCAnZHN0
Q3R4LnRyYW5zZmVyRnJvbUltYWdlQml0bWFwJyBpcyB1bmRlZmluZWQpIgorRkFJTCBUZXN0IHRo
YXQgYW4gSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0IHdpdGggYWxwaGEgZGlzYWJsZWQgbWFr
ZXMgdGhlIGNhbnZhcyBvcGFxdWUgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgMSwgZXhw
ZWN0ZWQgMTI3IGJ1dCBnb3QgMjU1CitQQVNTIFRlc3QgdGhhdCBhbiBJbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHQgd2l0aCBhbHBoYSBlbmFibGVkIHByZXNlcnZlcyB0aGUgYWxwaGEgCitQQVNT
IFRlc3QgdGhhdCB0aGUgJ2FscGhhJyBjb250ZXh0IGNyZWF0aW9uIGF0dHJpYnV0ZSBpcyB0cnVl
IGJ5IGRlZmF1bHQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaW1hZ2ViaXRtYXAtcmVuZGVyaW5nY29udGV4dC90cmFuZmVyRnJvbUlt
YWdlQml0bWFwLW51bGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbWFnZWJpdG1hcC1yZW5kZXJpbmdjb250ZXh0L3RyYW5mZXJGcm9t
SW1hZ2VCaXRtYXAtbnVsbC1leHBlY3RlZC50eHQKaW5kZXggOWFkNWY2ZTQ1Mzc5ZWE3ZTFkYzQ1
Y2RkMjZkNWNmNGIyOTQ0MWY3YS4uYzMxNWNkZDc3M2FjZmYzY2YxOGI2ZDJlYTQxOTEwMzUyNjk3
NTYxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9pbWFnZWJpdG1hcC1yZW5kZXJpbmdjb250ZXh0L3RyYW5mZXJGcm9tSW1hZ2VCaXRtYXAt
bnVsbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9pbWFnZWJpdG1hcC1yZW5kZXJpbmdjb250ZXh0L3RyYW5mZXJGcm9tSW1hZ2VC
aXRtYXAtbnVsbC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVGVzdCB0aGF0
IHRyYW5zZmVyRnJvbUltYWdlQml0bWFwKG51bGwpIGRpc2NhcmRzIHRoZSBwcmV2aW91c2x5IHRy
YW5zZmVycmVkIGltYWdlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogYml0bWFwQ3R4LnRyYW5zZmVyRnJvbUltYWdlQml0bWFw
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2JpdG1hcEN0eC50cmFuc2ZlckZyb21JbWFnZUJpdG1h
cChncmVlbkltYWdlKScsICdiaXRtYXBDdHgudHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAnIGlzIHVu
ZGVmaW5lZCkiCitQQVNTIFRlc3QgdGhhdCB0cmFuc2ZlckZyb21JbWFnZUJpdG1hcChudWxsKSBk
aXNjYXJkcyB0aGUgcHJldmlvdXNseSB0cmFuc2ZlcnJlZCBpbWFnZSAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZWJpdG1hcC1y
ZW5kZXJpbmdjb250ZXh0L3RyYW5zZmVyRnJvbUltYWdlQml0bWFwLWRldGFjaGVkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaW1hZ2Vi
aXRtYXAtcmVuZGVyaW5nY29udGV4dC90cmFuc2ZlckZyb21JbWFnZUJpdG1hcC1kZXRhY2hlZC1l
eHBlY3RlZC50eHQKaW5kZXggM2QyMmE0ZmM4MjljMzU4N2U3NTQ5NzdjODg3YTJjNjU2NzE0Njdi
OC4uYzlkMTY2MDE1MDZjM2U1ZjFhNWIwODVjYzNiMzQxYWIyY2UwN2E3NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZWJpdG1hcC1y
ZW5kZXJpbmdjb250ZXh0L3RyYW5zZmVyRnJvbUltYWdlQml0bWFwLWRldGFjaGVkLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lt
YWdlYml0bWFwLXJlbmRlcmluZ2NvbnRleHQvdHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAtZGV0YWNo
ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFRlc3QgdHJhbnNmZXJGcm9t
SW1hZ2VCaXRtYXAoaW1hZ2UpIHdpdGggYSBkZXRhY2hlZCBpbWFnZSBzaG91bGQgdGhyb3cgSW52
YWxpZFN0YXRlRXJyb3IgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBkc3RDdHgudHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAgaXMg
bm90IGEgZnVuY3Rpb24uIChJbiAnZHN0Q3R4LnRyYW5zZmVyRnJvbUltYWdlQml0bWFwKGltYWdl
KScsICdkc3RDdHgudHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAnIGlzIHVuZGVmaW5lZCkiCitQQVNT
IFRlc3QgdHJhbnNmZXJGcm9tSW1hZ2VCaXRtYXAoaW1hZ2UpIHdpdGggYSBkZXRhY2hlZCBpbWFn
ZSBzaG91bGQgdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgCiAK
</data>
<flag name="review"
          id="344795"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>