<?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>181337</bug_id>
          
          <creation_ts>2018-01-05 13:02:18 -0800</creation_ts>
          <short_desc>[Attachment Support] Support moving attachment elements in editable areas using drag and drop</short_desc>
          <delta_ts>2018-01-11 10:50:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</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>
          <dependson>181199</dependson>
          <blocked>181497</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1386222</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-05 13:02:18 -0800</bug_when>
    <thetext>Additional drag and drop support. A dragged attachment element should be moved on drop, and should definitely not lose its file/blob data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386224</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-05 13:04:23 -0800</bug_when>
    <thetext>This applies to both attachments that are displayed in-place, and as icons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386225</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-05 13:04:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/36324813&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386385</commentid>
    <comment_count>3</comment_count>
      <attachid>330612</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-05 17:10:15 -0800</bug_when>
    <thetext>Created attachment 330612
Blocked on https://bugs.webkit.org/show_bug.cgi?id=181199</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388262</commentid>
    <comment_count>4</comment_count>
      <attachid>331060</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-01-11 09:33:54 -0800</bug_when>
    <thetext>Created attachment 331060
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388297</commentid>
    <comment_count>5</comment_count>
      <attachid>331060</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-11 10:42:19 -0800</bug_when>
    <thetext>Comment on attachment 331060
Rebase on trunk

Clearing flags on attachment: 331060

Committed r226787: &lt;https://trac.webkit.org/changeset/226787&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330612</attachid>
            <date>2018-01-05 17:10:15 -0800</date>
            <delta_ts>2018-01-05 17:31:42 -0800</delta_ts>
            <desc>Blocked on https://bugs.webkit.org/show_bug.cgi?id=181199</desc>
            <filename>bug-181337-20180105171015.patch</filename>
            <type>text/plain</type>
            <size>18284</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODNkZTgwODY2MWRmYTAx
MWQyNGY1N2I5ZGI5NWI3ZTQ4M2U1ZjYyYS4uODRlNGIyNTYyOTBlN2E4MjhlOTg3OGViNzY1OWJi
ZGI1Njk0OWNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTAxLTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50
IFN1cHBvcnRdIFN1cHBvcnQgbW92aW5nIGF0dGFjaG1lbnQgZWxlbWVudHMgaW4gZWRpdGFibGUg
YXJlYXMgdXNpbmcgZHJhZyBhbmQgZHJvcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjMyNDgx
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
cyBzbGlnaHQgYWRqdXN0bWVudHMgdG8gYXR0YWNobWVudC1zcGVjaWZpYyBkcmFnIGFuZCBkcm9w
IGxvZ2ljIHRvIGVuc3VyZSB0aGF0IG1vdmluZyBhdHRhY2htZW50cyB2aWEgZHJhZworICAgICAg
ICBhbmQgZHJvcCBiZWhhdmVzIGNvcnJlY3RseS4gU2VlIHBlci1jaGFuZ2UgY29tbWVudHMgZm9y
IG1vcmUgZGV0YWlsLgorCisgICAgICAgIFRlc3RzOiAgV0tBdHRhY2htZW50VGVzdHMuRHJhZ0lu
UGxhY2VWaWRlb0F0dGFjaG1lbnRFbGVtZW50CisgICAgICAgICAgICAgICAgV0tBdHRhY2htZW50
VGVzdHMuTW92ZUF0dGFjaG1lbnRFbGVtZW50QXNJY29uQnlEcmFnZ2luZworICAgICAgICAgICAg
ICAgIFdLQXR0YWNobWVudFRlc3RzLk1vdmVJblBsYWNlQXR0YWNobWVudEVsZW1lbnRCeURyYWdn
aW5nCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpnZXRQYXN0ZWJvYXJkVHlwZXNBbmREYXRhRm9yQXR0YWNobWVudCk6
CisKKyAgICAgICAgU3RvcCB2ZW5kaW5nIHRoZSBwcml2YXRlIHdlYiBhcmNoaXZlIHBhc3RlYm9h
cmQgdHlwZSBmb3IgYXR0YWNobWVudHMsIGZvciBub3cuIFRoaXMgd29ya3MgYXJvdW5kIGlzc3Vl
cyB3aGVyZSBhbgorICAgICAgICBhdHRhY2htZW50IGVsZW1lbnQgdGhhdCBpcyBkcmFnZ2VkIGFu
ZCBkcm9wcGVkIHdpdGhpbiB0aGUgc2FtZSBwYWdlIG1heSBsb3NlIGl0cyBibG9iIGJhY2tpbmcg
ZGF0YSBpZiB3ZSB0cnkgdG8KKyAgICAgICAgcmVtb3ZlIGFuZCBpbnNlcnQgaXQgYXMgYSBmcmFn
bWVudCBmcm9tIHRoZSBhcmNoaXZlLiBQcm92aWRpbmcgYSB3ZWIgYXJjaGl2ZSB3b3VsZCBhbGxv
dyB1cyB0byBhdm9pZCBkZXN0cm95aW5nCisgICAgICAgIGFuZCByZWNyZWF0aW5nIGFuIGF0dGFj
aG1lbnQgZWxlbWVudCB3aGVuIGRyYWdnaW5nIHdpdGhpbiB0aGUgc2FtZSBwYWdlLCBidXQgdGhp
cyBpcyBhIG5pY2UtdG8taGF2ZSBvcHRpbWl6YXRpb24KKyAgICAgICAgd2UgY2FuIHJlLWVuYWJs
ZSBhZnRlciBpbnZlc3RpZ2F0aW9uIGluIGEgc3Vic2VxdWVudCBwYXRjaC4KKworICAgICAgICAq
IGh0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxB
dHRhY2htZW50RWxlbWVudDo6cG9wdWxhdGVTaGFkb3dSb290SWZOZWNlc3NhcnkpOgorCisgICAg
ICAgIEFkZCBgZHJhZ2dhYmxlPWZhbHNlYCB0byB0aGUgaW1hZ2UgZWxlbWVudCBvZiBhbiBpbi1w
bGFjZSBhdHRhY2htZW50IGVsZW1lbnQuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmVuY2xvc2luZ0F0dGFjaG1lbnRFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnZ2FibGVFbGVtZW50IGNvbnN0KToK
KworICAgICAgICBUd2VhayBzaW5nbGUtc2VsZWN0ZWQtYXR0YWNobWVudCBoYW5kbGluZyB0byBh
Y2NvdW50IGZvciBpbi1wbGFjZSBhdHRhY2htZW50cy4gU2luY2UgdGhlIGhpdC10ZXN0ZWQgbm9k
ZSBpcworICAgICAgICBpbnNpZGUgdGhlIHNoYWRvdyBzdWJ0cmVlIG9mIHRoZSBhdHRhY2htZW50
IGVsZW1lbnQsIHRoZSBjb25kaXRpb24gbmVlZHMgdG8gY2hlY2sgZm9yIHRoZSBzdGFydEVsZW1l
bnQgYXMgd2VsbAorICAgICAgICBhcyB0aGUgc3RhcnRFbGVtZW50J3Mgc2hhZG93IGhvc3QuCisK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpzdGFydERyYWcpOgorCisgICAgICAg
IE1ha2UgdHdvIHR3ZWFrcyBoZXJlLiBGaXJzdCwgZG9uJ3QgcmVxdWlyZSBhIFJlbmRlckF0dGFj
aG1lbnQgdG8gZHJhZyBhbiBhdHRhY2htZW50IGVsZW1lbnQgKHRoaXMgaXMgcmVxdWlyZWQKKyAg
ICAgICAgZm9yIGRyYWdnaW5nIGluLXBsYWNlIGF0dGFjaG1lbnRzKS4gVGhpcyB3YXMgYWRkZWQg
aW4gcjIxNzA4MyB0byBhZGRyZXNzIDxyZGFyOi8vcHJvYmxlbS8zMjI4MjgzMT4sIGJ1dCBpcyBu
bworICAgICAgICBsb25nZXIgY29ycmVjdCwgc2luY2UgYXR0YWNobWVudHMgbWF5IG5vdyBiZSBk
aXNwbGF5ZWQgaW4tcGxhY2UuCisKKyAgICAgICAgU2Vjb25kbHksIG9ubHkgcmVzdG9yZSB0aGUg
cHJldmlvdXMgc2VsZWN0aW9uIGlmIHRoZSBhdHRhY2htZW50IGlzIGluIGEgcmljaGx5IGNvbnRl
bnRlZGl0YWJsZSBhcmVhLiBUaGlzIHdhcworICAgICAgICBhZGRlZCB0byBwcmV2ZW50IHRoZSBz
ZWxlY3Rpb24gaGlnaGxpZ2h0IGZyb20gYXBwZWFyaW5nIGluIHdoZW4gZHJhZ2dpbmcgbm9uLWVk
aXRhYmxlIGF0dGFjaG1lbnQgZWxlbWVudHMgaW4gdGhlCisgICAgICAgIE1haWwgdmlld2VyLiBI
b3dldmVyLCB0byBhbGxvdyBkcmFnIG1vdmVzIHRvIG9jY3VyLCB3ZSBuZWVkIHRoZSBzZWxlY3Rp
b24gdG8gcGVyc2lzdCBhZnRlciBkcmFnIHN0YXJ0LgorCiAyMDE4LTAxLTA2ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtBdHRhY2htZW50IFN1cHBv
cnRdIFN1cHBvcnQgZHJhZ2dpbmcgYXR0YWNobWVudCBlbGVtZW50cyBvdXQgYXMgZmlsZXMgb24g
aU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQppbmRleCBm
YWZlNTg5MjI1OTRmMTlkYTVhODAwZDBkZDY1MWQzYjlkNDY0M2RmLi5kMzc4MjZiNTVmMWU3MWFl
Y2MyMzZjM2VhMmFkMDYzYjZlOTRkN2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRWRpdG9yQ29jb2EubW0KQEAgLTE1NywxMiArMTU3LDEzIEBAIFN0cmluZyBFZGl0b3I6OnNl
bGVjdGlvbkluSFRNTEZvcm1hdCgpCiAKIHZvaWQgRWRpdG9yOjpnZXRQYXN0ZWJvYXJkVHlwZXNB
bmREYXRhRm9yQXR0YWNobWVudChIVE1MQXR0YWNobWVudEVsZW1lbnQmIGF0dGFjaG1lbnQsIFZl
Y3RvcjxTdHJpbmc+JiBvdXRUeXBlcywgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYgb3V0
RGF0YSkKIHsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFkZGl0aW9uYWxseSB3cml0ZSB0aGUg
YXR0YWNobWVudCBhcyBhIHdlYiBhcmNoaXZlIGhlcmUsIHN1Y2ggdGhhdCBkcmFnIGFuZCBkcm9w
IHdpdGhpbiB0aGUKKyAgICAvLyBzYW1lIHBhZ2UgZG9lc24ndCBkZXN0cm95IGFuZCByZWNyZWF0
ZSBhdHRhY2htZW50cyB1bm5lY2Vzc2FyaWx5LiBUaGlzIGlzIGFsc28gbmVlZGVkIHRvIHByZXNl
cnZlIHRoZSBhdHRhY2htZW50CisgICAgLy8gZGlzcGxheSBtb2RlIHdoZW4gZHJhZ2dpbmcgYW5k
IGRyb3BwaW5nIG9yIGN1dHRpbmcgYW5kIHBhc3RpbmcuIEZvciB0aGUgdGltZSBiZWluZywgdGhp
cyBpcyBkaXNhYmxlZCBiZWNhdXNlCisgICAgLy8gaW5zZXJ0aW5nIGF0dGFjaG1lbnQgZWxlbWVu
dHMgZnJvbSB3ZWIgYXJjaGl2ZSBkYXRhIHNvbWV0aW1lcyBjYXVzZXMgYXR0YWNobWVudCBkYXRh
IHRvIGJlIGxvc3Q7IHRoaXMgcmVxdWlyZXMKKyAgICAvLyBmdXJ0aGVyIGludmVzdGlnYXRpb24u
CiAgICAgYXV0byBhdHRhY2htZW50UmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKGF0dGFjaG1lbnQuZG9j
dW1lbnQoKSwgeyAmYXR0YWNobWVudCwgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVBbmNob3Ig
fSwgeyAmYXR0YWNobWVudCwgUG9zaXRpb246OlBvc2l0aW9uSXNBZnRlckFuY2hvciB9KTsKICAg
ICBjbGllbnQoKS0+Z2V0Q2xpZW50UGFzdGVib2FyZERhdGFGb3JSYW5nZShhdHRhY2htZW50UmFu
Z2UucHRyKCksIG91dFR5cGVzLCBvdXREYXRhKTsKLSAgICBpZiAoYXV0byBhcmNoaXZlID0gTGVn
YWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKGF0dGFjaG1lbnRSYW5nZS5wdHIoKSkpIHsKLSAgICAgICAg
b3V0VHlwZXMuYXBwZW5kKFdlYkFyY2hpdmVQYm9hcmRUeXBlKTsKLSAgICAgICAgb3V0RGF0YS5h
cHBlbmQoU2hhcmVkQnVmZmVyOjpjcmVhdGUoYXJjaGl2ZS0+cmF3RGF0YVJlcHJlc2VudGF0aW9u
KCkuZ2V0KCkpKTsKLSAgICB9CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0YWNobWVudEVsZW1lbnQuY3BwCmluZGV4IDFmNDQ1ZTgwNjMyNzAwYzdlODk1MGU3Mzgx
MDcwOTdjNWUwMGI0MjkuLjQyZjNmNDg5YjE0ZWE5NmMzN2RkNzA0Njc5N2Q0MDUyMDgyNDZhOGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAKQEAg
LTI5Myw2ICsyOTMsNyBAQCB2b2lkIEhUTUxBdHRhY2htZW50RWxlbWVudDo6cG9wdWxhdGVTaGFk
b3dSb290SWZOZWNlc3NhcnkoKQogICAgICAgICBhdXRvIGltYWdlID0gZW5zdXJlSW5uZXJJbWFn
ZSgpOwogICAgICAgICBpZiAoaW1hZ2UtPmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
c3JjQXR0cikuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpbWFnZS0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihzcmNBdHRyLCBET01VUkw6OmNyZWF0ZU9iamVjdFVSTChkb2N1
bWVudCgpLCAqbV9maWxlKSk7CisgICAgICAgICAgICBpbWFnZS0+c2V0QXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbihkcmFnZ2FibGVBdHRyLCBBdG9taWNTdHJpbmcoImZhbHNlIikpOwog
ICAgICAgICAgICAgaW1hZ2UtPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlEaXNw
bGF5LCBDU1NWYWx1ZUlubGluZSwgdHJ1ZSk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA2NThlMDdmM2ZkODk5ODkyYTVlYmExZmVlMjY3Mzc3
NjE3NDFkOGVjLi4yNjlkNTQ5ZjU2ZmUwMWY5ZmI1YTI1ZTE4OTZjZjQ4YzczNWRhNDg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNzE5LDI0ICs3MTksMzkgQEAg
c3RhdGljIGJvb2wgaW1hZ2VFbGVtZW50SXNEcmFnZ2FibGUoY29uc3QgSFRNTEltYWdlRWxlbWVu
dCYgaW1hZ2UsIGNvbnN0IEZyYW1lJgogICAgIHJldHVybiBjYWNoZWRJbWFnZSAmJiAhY2FjaGVk
SW1hZ2UtPmVycm9yT2NjdXJyZWQoKSAmJiBjYWNoZWRJbWFnZS0+aW1hZ2VGb3JSZW5kZXJlcihy
ZW5kZXJlcik7CiB9CiAKKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQorCitzdGF0aWMg
UmVmUHRyPEhUTUxBdHRhY2htZW50RWxlbWVudD4gZW5jbG9zaW5nQXR0YWNobWVudEVsZW1lbnQo
RWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoaXM8SFRNTEF0dGFjaG1lbnRFbGVtZW50Pihl
bGVtZW50KSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxBdHRhY2htZW50RWxlbWVudD4o
JmVsZW1lbnQpOworCisgICAgaWYgKGlzPEhUTUxBdHRhY2htZW50RWxlbWVudD4oZWxlbWVudC5w
YXJlbnRPclNoYWRvd0hvc3RFbGVtZW50KCkpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRN
TEF0dGFjaG1lbnRFbGVtZW50PihlbGVtZW50LnBhcmVudE9yU2hhZG93SG9zdEVsZW1lbnQoKSk7
CisKKyAgICByZXR1cm4geyB9OworfQorCisjZW5kaWYKKwogRWxlbWVudCogRHJhZ0NvbnRyb2xs
ZXI6OmRyYWdnYWJsZUVsZW1lbnQoY29uc3QgRnJhbWUqIHNvdXJjZUZyYW1lLCBFbGVtZW50KiBz
dGFydEVsZW1lbnQsIGNvbnN0IEludFBvaW50JiBkcmFnT3JpZ2luLCBEcmFnU3RhdGUmIHN0YXRl
KSBjb25zdAogewogICAgIHN0YXRlLnR5cGUgPSAoc291cmNlRnJhbWUtPnNlbGVjdGlvbigpLmNv
bnRhaW5zKGRyYWdPcmlnaW4pKSA/IERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24gOiBEcmFnU291
cmNlQWN0aW9uTm9uZTsKICAgICBpZiAoIXN0YXJ0RWxlbWVudCkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICBpZiAoaXM8SFRNTEF0
dGFjaG1lbnRFbGVtZW50PihzdGFydEVsZW1lbnQpKSB7CisgICAgaWYgKGF1dG8gYXR0YWNobWVu
dCA9IGVuY2xvc2luZ0F0dGFjaG1lbnRFbGVtZW50KCpzdGFydEVsZW1lbnQpKSB7CiAgICAgICAg
IGF1dG8gc2VsZWN0aW9uID0gc291cmNlRnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwot
ICAgICAgICBib29sIGlzU2luZ2xlQXR0YWNobWVudFNlbGVjdGlvbiA9IHNlbGVjdGlvbi5zdGFy
dCgpID09IFBvc2l0aW9uKHN0YXJ0RWxlbWVudCwgUG9zaXRpb246OlBvc2l0aW9uSXNCZWZvcmVB
bmNob3IpICYmIHNlbGVjdGlvbi5lbmQoKSA9PSBQb3NpdGlvbihzdGFydEVsZW1lbnQsIFBvc2l0
aW9uOjpQb3NpdGlvbklzQWZ0ZXJBbmNob3IpOworICAgICAgICBib29sIGlzU2luZ2xlQXR0YWNo
bWVudFNlbGVjdGlvbiA9IHNlbGVjdGlvbi5zdGFydCgpID09IFBvc2l0aW9uKGF0dGFjaG1lbnQu
Z2V0KCksIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSAmJiBzZWxlY3Rpb24uZW5k
KCkgPT0gUG9zaXRpb24oYXR0YWNobWVudC5nZXQoKSwgUG9zaXRpb246OlBvc2l0aW9uSXNBZnRl
ckFuY2hvcik7CiAgICAgICAgIGJvb2wgaXNBdHRhY2htZW50RWxlbWVudEluQ3VycmVudFNlbGVj
dGlvbiA9IGZhbHNlOwogICAgICAgICBpZiAoYXV0byBzZWxlY3RlZFJhbmdlID0gc2VsZWN0aW9u
LnRvTm9ybWFsaXplZFJhbmdlKCkpIHsKLSAgICAgICAgICAgIGF1dG8gY29tcGFyZVJlc3VsdCA9
IHNlbGVjdGVkUmFuZ2UtPmNvbXBhcmVOb2RlKCpzdGFydEVsZW1lbnQpOworICAgICAgICAgICAg
YXV0byBjb21wYXJlUmVzdWx0ID0gc2VsZWN0ZWRSYW5nZS0+Y29tcGFyZU5vZGUoKmF0dGFjaG1l
bnQpOwogICAgICAgICAgICAgaXNBdHRhY2htZW50RWxlbWVudEluQ3VycmVudFNlbGVjdGlvbiA9
ICFjb21wYXJlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpICYmIGNvbXBhcmVSZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCkgPT0gUmFuZ2U6Ok5PREVfSU5TSURFOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKCFpc0F0dGFjaG1lbnRFbGVtZW50SW5DdXJyZW50U2VsZWN0aW9uIHx8IGlzU2luZ2xlQXR0
YWNobWVudFNlbGVjdGlvbikgewogICAgICAgICAgICAgc3RhdGUudHlwZSA9IERyYWdTb3VyY2VB
Y3Rpb25BdHRhY2htZW50OwotICAgICAgICAgICAgcmV0dXJuIHN0YXJ0RWxlbWVudDsKKyAgICAg
ICAgICAgIHJldHVybiBhdHRhY2htZW50LmdldCgpOwogICAgICAgICB9CiAgICAgfQogI2VuZGlm
CkBAIC04NTYsNiArODcxLDkgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1l
JiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAgICBib29sIGlu
Y2x1ZGVTaGFkb3dET00gPSBmYWxzZTsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgaW5jbHVkZVNo
YWRvd0RPTSA9IHN0YXRlLnNvdXJjZS0+aXNNZWRpYUVsZW1lbnQoKTsKKyNlbmRpZgorI2lmIEVO
QUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisgICAgaW5jbHVkZVNoYWRvd0RPTSA9IGluY2x1ZGVT
aGFkb3dET00gfHwgaXM8SFRNTEF0dGFjaG1lbnRFbGVtZW50PihzdGF0ZS5zb3VyY2UuZ2V0KCkp
OwogI2VuZGlmCiAgICAgYm9vbCBzb3VyY2VDb250YWluc0hpdE5vZGU7CiAgICAgaWYgKCFpbmNs
dWRlU2hhZG93RE9NKQpAQCAtMTA3MSwxNyArMTA4OSwxNSBAQCBib29sIERyYWdDb250cm9sbGVy
OjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJh
dGlvbgogICAgIGlmIChpczxIVE1MQXR0YWNobWVudEVsZW1lbnQ+KGVsZW1lbnQpICYmIG1fZHJh
Z1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25BdHRhY2htZW50KSB7CiAgICAgICAgIGF1
dG8mIGF0dGFjaG1lbnQgPSBkb3duY2FzdDxIVE1MQXR0YWNobWVudEVsZW1lbnQ+KGVsZW1lbnQp
OwogICAgICAgICBhdXRvKiBhdHRhY2htZW50UmVuZGVyZXIgPSBhdHRhY2htZW50LmF0dGFjaG1l
bnRSZW5kZXJlcigpOwotICAgICAgICBpZiAoIWF0dGFjaG1lbnRSZW5kZXJlcikKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBzcmMuZWRpdG9yKCkuc2V0SWdub3JlU2VsZWN0
aW9uQ2hhbmdlcyh0cnVlKTsKICAgICAgICAgYXV0byBwcmV2aW91c1NlbGVjdGlvbiA9IHNyYy5z
ZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKLSAgICAgICAgaWYgKGhhc0RhdGEgPT0gSGFzTm9uRGVm
YXVsdFBhc3RlYm9hcmREYXRhOjpObykgewotICAgICAgICAgICAgc2VsZWN0RWxlbWVudChlbGVt
ZW50KTsKLSAgICAgICAgICAgIGlmICghZHJhZ0F0dGFjaG1lbnRFbGVtZW50KHNyYywgYXR0YWNo
bWVudCkgJiYgc3JjLmVkaXRvcigpLmNsaWVudCgpKSB7CisgICAgICAgIHNlbGVjdEVsZW1lbnQo
ZWxlbWVudCk7CisgICAgICAgIGlmIChoYXNEYXRhID09IEhhc05vbkRlZmF1bHRQYXN0ZWJvYXJk
RGF0YTo6Tm8gJiYgIWRyYWdBdHRhY2htZW50RWxlbWVudChzcmMsIGF0dGFjaG1lbnQpKSB7Cisg
ICAgICAgICAgICBhdXRvJiBlZGl0b3IgPSBzcmMuZWRpdG9yKCk7CisgICAgICAgICAgICBpZiAo
ZWRpdG9yLmNsaWVudCgpKSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgICAgICAgICAg
Ly8gT3RoZXJ3aXNlLCBpZiBubyBmaWxlIFVSTCBpcyBzcGVjaWZpZWQsIGNhbGwgb3V0IHRvIHRo
ZSBpbmplY3RlZCBidW5kbGUgdG8gcG9wdWxhdGUgdGhlIHBhc3RlYm9hcmQgd2l0aCBkYXRhLgot
ICAgICAgICAgICAgICAgIGF1dG8mIGVkaXRvciA9IHNyYy5lZGl0b3IoKTsKICAgICAgICAgICAg
ICAgICBlZGl0b3Iud2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKHNyYy5zZWxlY3Rpb24o
KS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpKTsKICAgICAgICAgICAgICAgICBlZGl0b3Iud3Jp
dGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKSk7CiAgICAg
ICAgICAgICAgICAgZWRpdG9yLmRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7CkBAIC0x
MDkzLDE2ICsxMTA5LDE5IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYg
c3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAgICAgIAogICAg
ICAgICBpZiAoIWRyYWdJbWFnZSkgewogICAgICAgICAgICAgVGV4dEluZGljYXRvckRhdGEgdGV4
dEluZGljYXRvcjsKLSAgICAgICAgICAgIGF0dGFjaG1lbnRSZW5kZXJlci0+c2V0U2hvdWxkRHJh
d0JvcmRlcihmYWxzZSk7CisgICAgICAgICAgICBpZiAoYXR0YWNobWVudFJlbmRlcmVyKQorICAg
ICAgICAgICAgICAgIGF0dGFjaG1lbnRSZW5kZXJlci0+c2V0U2hvdWxkRHJhd0JvcmRlcihmYWxz
ZSk7CiAgICAgICAgICAgICBkcmFnSW1hZ2UgPSBEcmFnSW1hZ2UgeyBkaXNzb2x2ZURyYWdJbWFn
ZVRvRnJhY3Rpb24oY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKHNyYywgdGV4dEluZGljYXRv
ciksIERyYWdJbWFnZUFscGhhKSB9OwotICAgICAgICAgICAgYXR0YWNobWVudFJlbmRlcmVyLT5z
ZXRTaG91bGREcmF3Qm9yZGVyKHRydWUpOworICAgICAgICAgICAgaWYgKGF0dGFjaG1lbnRSZW5k
ZXJlcikKKyAgICAgICAgICAgICAgICBhdHRhY2htZW50UmVuZGVyZXItPnNldFNob3VsZERyYXdC
b3JkZXIodHJ1ZSk7CiAgICAgICAgICAgICBpZiAodGV4dEluZGljYXRvci5jb250ZW50SW1hZ2Up
CiAgICAgICAgICAgICAgICAgZHJhZ0ltYWdlLnNldEluZGljYXRvckRhdGEodGV4dEluZGljYXRv
cik7CiAgICAgICAgICAgICBkcmFnTG9jID0gZHJhZ0xvY0ZvclNlbGVjdGlvbkRyYWcoc3JjKTsK
ICAgICAgICAgICAgIG1fZHJhZ09mZnNldCA9IEludFBvaW50KGRyYWdPcmlnaW4ueCgpIC0gZHJh
Z0xvYy54KCksIGRyYWdPcmlnaW4ueSgpIC0gZHJhZ0xvYy55KCkpOwogICAgICAgICB9CiAgICAg
ICAgIGRvU3lzdGVtRHJhZyhXVEZNb3ZlKGRyYWdJbWFnZSksIGRyYWdMb2MsIGRyYWdPcmlnaW4s
IHNyYywgc3RhdGUpOwotICAgICAgICBzcmMuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHByZXZp
b3VzU2VsZWN0aW9uKTsKKyAgICAgICAgaWYgKCFlbGVtZW50LmlzQ29udGVudFJpY2hseUVkaXRh
YmxlKCkpCisgICAgICAgICAgICBzcmMuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHByZXZpb3Vz
U2VsZWN0aW9uKTsKICAgICAgICAgc3JjLmVkaXRvcigpLnNldElnbm9yZVNlbGVjdGlvbkNoYW5n
ZXMoZmFsc2UpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDQyYWIxYjdkZTI5YmZmZDMyMDUy
ZDc0Mzk5N2MwZGE5YzBmYTBiMS4uNDZjZTZmNjYxOGI0Mjk0YjU4OTVjYmJmYzBmMjA0Y2RmNjRk
Njc3MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDE4LTAxLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50IFN1cHBvcnRdIFN1cHBvcnQgbW92aW5n
IGF0dGFjaG1lbnQgZWxlbWVudHMgaW4gZWRpdGFibGUgYXJlYXMgdXNpbmcgZHJhZyBhbmQgZHJv
cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzM3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjMyNDgxMz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgMyBuZXcgQVBJIHRlc3RzIGZvciBhdHRh
Y2htZW50IGVsZW1lbnQgZHJhZ2dpbmcuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tOgorICAgICAgICAoLVtUZXN0V0tXZWJW
aWV3IGV4cGVjdEVsZW1lbnRUYWc6dG9Db21lQmVmb3JlOl0pOgorICAgICAgICAoLVtOU0l0ZW1Q
cm92aWRlciBleHBlY3RUeXBlOndpdGhEYXRhOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisKIDIwMTgtMDEtMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0gU3VwcG9ydCBkcmFnZ2luZyBhdHRh
Y2htZW50IGVsZW1lbnRzIG91dCBhcyBmaWxlcyBvbiBpT1MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCmlu
ZGV4IGUyNTBhNzIwNDU5NDUzNTAzYzU2NmJhNDdjYTVjZWY4NDg3NzIzNzIuLjhjNTRlOGU1MjE1
MDc0MWZhNTc3NmFjOTg3MDExNjlhMjVjNjkxZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQpAQCAt
MTg0LDYgKzE4NCwyMiBAQCBzdGF0aWMgX1dLQXR0YWNobWVudERpc3BsYXlPcHRpb25zICpkaXNw
bGF5T3B0aW9uc1dpdGhNb2RlKF9XS0F0dGFjaG1lbnREaXNwbGF5TQogCiBAaW1wbGVtZW50YXRp
b24gVGVzdFdLV2ViVmlldyAoQXR0YWNobWVudFRlc3RpbmcpCiAKKy0gKHZvaWQpZXhwZWN0RWxl
bWVudFRhZzooTlNTdHJpbmcgKil0YWdOYW1lIHRvQ29tZUJlZm9yZTooTlNTdHJpbmcgKilvdGhl
clRhZ05hbWUKK3sKKyAgICBOU0FycmF5ICp0YWdzSW5Cb2R5ID0gW3NlbGYgb2JqZWN0QnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAIkFycmF5LmZyb20oZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnKicpKS5tYXAoZSA9PiBlLnRhZ05hbWUpIl07CisgICAgQk9PTCBzdWNjZXNzID0g
W3RhZ3NJbkJvZHkgY29udGFpbnNPYmplY3Q6dGFnTmFtZV0gJiYgW3RhZ3NJbkJvZHkgY29udGFp
bnNPYmplY3Q6b3RoZXJUYWdOYW1lXTsKKyAgICBpZiAoc3VjY2VzcykgeworICAgICAgICBOU1VJ
bnRlZ2VyIGluZGV4ID0gW3RhZ3NJbkJvZHkgaW5kZXhPZk9iamVjdDp0YWdOYW1lXTsKKyAgICAg
ICAgTlNVSW50ZWdlciBvdGhlckluZGV4ID0gW3RhZ3NJbkJvZHkgaW5kZXhPZk9iamVjdFdpdGhP
cHRpb25zOk5TRW51bWVyYXRpb25SZXZlcnNlIHBhc3NpbmdUZXN0OlsmXSAoTlNTdHJpbmcgKnRh
ZywgTlNVSW50ZWdlciwgQk9PTCAqKSB7CisgICAgICAgICAgICByZXR1cm4gW3RhZyBpc0VxdWFs
VG9TdHJpbmc6b3RoZXJUYWdOYW1lXTsKKyAgICAgICAgfV07CisgICAgICAgIHN1Y2Nlc3MgPSBp
bmRleCA8IG90aGVySW5kZXg7CisgICAgfQorICAgIEVYUEVDVF9UUlVFKHN1Y2Nlc3MpOworICAg
IGlmICghc3VjY2VzcykKKyAgICAgICAgTlNMb2coQCJFeHBlY3RlZCAlQCB0byBjb21lIGJlZm9y
ZSAlQCBpbiB0YWdzOiAlQCIsIHRhZ05hbWUsIG90aGVyVGFnTmFtZSwgdGFnc0luQm9keSk7Cit9
CisKIC0gKEJPT0wpX3N5bmNocm9ub3VzbHlFeGVjdXRlRWRpdENvbW1hbmQ6KE5TU3RyaW5nICop
Y29tbWFuZCBhcmd1bWVudDooTlNTdHJpbmcgKilhcmd1bWVudAogewogICAgIF9fYmxvY2sgYm9v
bCBkb25lID0gZmFsc2U7CkBAIC0xMjExLDYgKzEyMjcsOTEgQEAgVEVTVChXS0F0dGFjaG1lbnRU
ZXN0c0lPUywgRHJhZ0F0dGFjaG1lbnRJbnNlcnRlZEFzRGF0YSkKICAgICBbZHJhZ2dpbmdTaW11
bGF0b3IgZW5kRGF0YVRyYW5zZmVyXTsKIH0KIAorVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywg
RHJhZ0luUGxhY2VWaWRlb0F0dGFjaG1lbnRFbGVtZW50KQoreworICAgIGF1dG8gd2ViVmlldyA9
IHdlYlZpZXdGb3JUZXN0aW5nQXR0YWNobWVudHMoKTsKKyAgICBhdXRvIGRhdGEgPSByZXRhaW5Q
dHIodGVzdFZpZGVvRGF0YSgpKTsKKyAgICBSZXRhaW5QdHI8X1dLQXR0YWNobWVudD4gYXR0YWNo
bWVudDsKKyAgICB7CisgICAgICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0ZvclNjb3BlIG9i
c2VydmVyKHdlYlZpZXcuZ2V0KCkpOworICAgICAgICBhdHRhY2htZW50ID0gW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUluc2VydEF0dGFjaG1lbnRXaXRoRmlsZW5hbWU6QCJ2aWRlby5tcDQiIGNvbnRl
bnRUeXBlOkAidmlkZW8vbXA0IiBkYXRhOmRhdGEuZ2V0KCkgb3B0aW9uczpkaXNwbGF5T3B0aW9u
c1dpdGhNb2RlKF9XS0F0dGFjaG1lbnREaXNwbGF5TW9kZUluUGxhY2UpXTsKKyAgICAgICAgb2Jz
ZXJ2ZXIuZXhwZWN0QXR0YWNobWVudFVwZGF0ZXMoQFtdLCBAW2F0dGFjaG1lbnQuZ2V0KCldKTsK
KyAgICB9CisKKyAgICBbd2ViVmlldyB3YWl0Rm9yQXR0YWNobWVudEVsZW1lbnRTaXplVG9CZWNv
bWU6Q0dTaXplTWFrZSgzMjAsIDI0MCldOworICAgIFthdHRhY2htZW50IGV4cGVjdFJlcXVlc3Rl
ZERhdGFUb0JlOmRhdGEuZ2V0KCldOworICAgIEVYUEVDVF9XS19TVFJFUSgidmlkZW8ubXA0Iiwg
W3dlYlZpZXcgdmFsdWVPZkF0dHJpYnV0ZTpAInRpdGxlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0
YWNobWVudCJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoInZpZGVvL21wNCIsIFt3ZWJWaWV3IHZh
bHVlT2ZBdHRyaWJ1dGU6QCJ0eXBlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsK
KworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnJlbW92
ZUFsbFJhbmdlcygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIGF1dG8gZHJhZ2dpbmdT
aW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFsbG9jXSBpbml0
V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAgIFtkcmFnZ2luZ1NpbXVsYXRvciBydW5G
cm9tOkNHUG9pbnRNYWtlKDI1LCAyNSkgdG86Q0dQb2ludE1ha2UoLTEwMCwgLTEwMCldOworCisg
ICAgRVhQRUNUX0VRKDFVLCBbZHJhZ2dpbmdTaW11bGF0b3Igc291cmNlSXRlbVByb3ZpZGVyc10u
Y291bnQpOworICAgIE5TSXRlbVByb3ZpZGVyICppdGVtUHJvdmlkZXIgPSBbZHJhZ2dpbmdTaW11
bGF0b3Igc291cmNlSXRlbVByb3ZpZGVyc10uZmlyc3RPYmplY3Q7CisgICAgRVhQRUNUX0VRKFVJ
UHJlZmVycmVkUHJlc2VudGF0aW9uU3R5bGVBdHRhY2htZW50LCBpdGVtUHJvdmlkZXIucHJlZmVy
cmVkUHJlc2VudGF0aW9uU3R5bGUpOworICAgIFtpdGVtUHJvdmlkZXIgZXhwZWN0VHlwZTooTlNT
dHJpbmcgKilrVVRUeXBlTVBFRzQgd2l0aERhdGE6ZGF0YS5nZXQoKV07CisgICAgRVhQRUNUX1dL
X1NUUkVRKCJ2aWRlby5tcDQiLCBbaXRlbVByb3ZpZGVyIHN1Z2dlc3RlZE5hbWVdKTsKKyAgICBb
ZHJhZ2dpbmdTaW11bGF0b3IgZW5kRGF0YVRyYW5zZmVyXTsKK30KKworVEVTVChXS0F0dGFjaG1l
bnRUZXN0c0lPUywgTW92ZUF0dGFjaG1lbnRFbGVtZW50QXNJY29uQnlEcmFnZ2luZykKK3sKKyAg
ICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yVGVzdGluZ0F0dGFjaG1lbnRzKCk7CisgICAgYXV0
byBkYXRhID0gcmV0YWluUHRyKHRlc3RQREZEYXRhKCkpOworICAgIFJldGFpblB0cjxfV0tBdHRh
Y2htZW50PiBhdHRhY2htZW50OworICAgIHsKKyAgICAgICAgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRh
dGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7CisgICAgICAgIGF0dGFjaG1lbnQg
PSBbd2ViVmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlbmFtZTpAImRv
Y3VtZW50LnBkZiIgY29udGVudFR5cGU6QCJhcHBsaWNhdGlvbi9wZGYiIGRhdGE6ZGF0YS5nZXQo
KSBvcHRpb25zOmRpc3BsYXlPcHRpb25zV2l0aE1vZGUoX1dLQXR0YWNobWVudERpc3BsYXlNb2Rl
QXNJY29uKV07CisgICAgICAgIG9ic2VydmVyLmV4cGVjdEF0dGFjaG1lbnRVcGRhdGVzKEBbXSwg
QFthdHRhY2htZW50LmdldCgpXSk7CisgICAgfQorCisgICAgW3dlYlZpZXcgX2V4ZWN1dGVFZGl0
Q29tbWFuZDpAIkluc2VydFBhcmFncmFwaCIgYXJndW1lbnQ6bmlsIGNvbXBsZXRpb246bmlsXTsK
KyAgICBbd2ViVmlldyBfZXhlY3V0ZUVkaXRDb21tYW5kOkAiSW5zZXJ0SFRNTCIgYXJndW1lbnQ6
QCI8c3Ryb25nPnRleHQ8L3N0cm9uZz4iIGNvbXBsZXRpb246bmlsXTsKKyAgICBbd2ViVmlldyBf
c3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIkluc2VydFBhcmFncmFwaCIgYXJndW1l
bnQ6bmlsXTsKKyAgICBbd2ViVmlldyBleHBlY3RFbGVtZW50VGFnOkAiQVRUQUNITUVOVCIgdG9D
b21lQmVmb3JlOkAiU1RST05HIl07CisKKyAgICBhdXRvIGRyYWdnaW5nU2ltdWxhdG9yID0gYWRv
cHROUyhbW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3Ondl
YlZpZXcuZ2V0KCldKTsKKyAgICBbZHJhZ2dpbmdTaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFr
ZSgyNSwgMjUpIHRvOkNHUG9pbnRNYWtlKDI1LCAxMjUpXTsKKworICAgIGF0dGFjaG1lbnQgPSBb
W2RyYWdnaW5nU2ltdWxhdG9yIGluc2VydGVkQXR0YWNobWVudHNdIGZpcnN0T2JqZWN0XTsKKyAg
ICBbYXR0YWNobWVudCBleHBlY3RSZXF1ZXN0ZWREYXRhVG9CZTpkYXRhLmdldCgpXTsKKyAgICBF
WFBFQ1RfV0tfU1RSRVEoImRvY3VtZW50LnBkZiIsIFt3ZWJWaWV3IHZhbHVlT2ZBdHRyaWJ1dGU6
QCJ0aXRsZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQiXSk7CisgICAgRVhQRUNUX1dL
X1NUUkVRKCJhcHBsaWNhdGlvbi9wZGYiLCBbd2ViVmlldyB2YWx1ZU9mQXR0cmlidXRlOkAidHlw
ZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQiXSk7CisKKyAgICBbd2ViVmlldyBleHBl
Y3RFbGVtZW50VGFnOkAiU1RST05HIiB0b0NvbWVCZWZvcmU6QCJBVFRBQ0hNRU5UIl07CisgICAg
W2RyYWdnaW5nU2ltdWxhdG9yIGVuZERhdGFUcmFuc2Zlcl07Cit9CisKK1RFU1QoV0tBdHRhY2ht
ZW50VGVzdHNJT1MsIE1vdmVJblBsYWNlQXR0YWNobWVudEVsZW1lbnRCeURyYWdnaW5nKQorewor
ICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdGb3JUZXN0aW5nQXR0YWNobWVudHMoKTsKKyAgICBh
dXRvIGRhdGEgPSByZXRhaW5QdHIodGVzdEltYWdlRGF0YSgpKTsKKyAgICBSZXRhaW5QdHI8X1dL
QXR0YWNobWVudD4gYXR0YWNobWVudDsKKyAgICB7CisgICAgICAgIE9ic2VydmVBdHRhY2htZW50
VXBkYXRlc0ZvclNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0KCkpOworICAgICAgICBhdHRhY2ht
ZW50ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseUluc2VydEF0dGFjaG1lbnRXaXRoRmlsZW5hbWU6
QCJpY29uLnBuZyIgY29udGVudFR5cGU6QCJpbWFnZS9wbmciIGRhdGE6ZGF0YS5nZXQoKSBvcHRp
b25zOmRpc3BsYXlPcHRpb25zV2l0aE1vZGUoX1dLQXR0YWNobWVudERpc3BsYXlNb2RlSW5QbGFj
ZSldOworICAgICAgICBvYnNlcnZlci5leHBlY3RBdHRhY2htZW50VXBkYXRlcyhAW10sIEBbYXR0
YWNobWVudC5nZXQoKV0pOworICAgIH0KKworICAgIFt3ZWJWaWV3IHdhaXRGb3JBdHRhY2htZW50
RWxlbWVudFNpemVUb0JlY29tZTpDR1NpemVNYWtlKDIxNSwgMTc0KV07CisgICAgW3dlYlZpZXcg
X2V4ZWN1dGVFZGl0Q29tbWFuZDpAIkluc2VydFBhcmFncmFwaCIgYXJndW1lbnQ6bmlsIGNvbXBs
ZXRpb246bmlsXTsKKyAgICBbd2ViVmlldyBfZXhlY3V0ZUVkaXRDb21tYW5kOkAiSW5zZXJ0SFRN
TCIgYXJndW1lbnQ6QCI8c3Ryb25nPnRleHQ8L3N0cm9uZz4iIGNvbXBsZXRpb246bmlsXTsKKyAg
ICBbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIkluc2VydFBhcmFn
cmFwaCIgYXJndW1lbnQ6bmlsXTsKKyAgICBbd2ViVmlldyBleHBlY3RFbGVtZW50VGFnOkAiQVRU
QUNITUVOVCIgdG9Db21lQmVmb3JlOkAiU1RST05HIl07CisKKyAgICBhdXRvIGRyYWdnaW5nU2lt
dWxhdG9yID0gYWRvcHROUyhbW0RhdGFJbnRlcmFjdGlvblNpbXVsYXRvciBhbGxvY10gaW5pdFdp
dGhXZWJWaWV3OndlYlZpZXcuZ2V0KCldKTsKKyAgICBbZHJhZ2dpbmdTaW11bGF0b3IgcnVuRnJv
bTpDR1BvaW50TWFrZSgyNSwgMjUpIHRvOkNHUG9pbnRNYWtlKDI1LCAxMjUpXTsKKworICAgIGF0
dGFjaG1lbnQgPSBbW2RyYWdnaW5nU2ltdWxhdG9yIGluc2VydGVkQXR0YWNobWVudHNdIGZpcnN0
T2JqZWN0XTsKKyAgICBbYXR0YWNobWVudCBleHBlY3RSZXF1ZXN0ZWREYXRhVG9CZTpkYXRhLmdl
dCgpXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoImljb24ucG5nIiwgW3dlYlZpZXcgdmFsdWVPZkF0
dHJpYnV0ZTpAInRpdGxlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsKKyAgICBF
WFBFQ1RfV0tfU1RSRVEoImltYWdlL3BuZyIsIFt3ZWJWaWV3IHZhbHVlT2ZBdHRyaWJ1dGU6QCJ0
eXBlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsKKworICAgIFt3ZWJWaWV3IGV4
cGVjdEVsZW1lbnRUYWc6QCJTVFJPTkciIHRvQ29tZUJlZm9yZTpAIkFUVEFDSE1FTlQiXTsKKyAg
ICBbZHJhZ2dpbmdTaW11bGF0b3IgZW5kRGF0YVRyYW5zZmVyXTsKK30KKwogI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>
<flag name="review"
          id="349637"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331060</attachid>
            <date>2018-01-11 09:33:54 -0800</date>
            <delta_ts>2018-01-11 10:42:19 -0800</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-181337-20180111093353.patch</filename>
            <type>text/plain</type>
            <size>18067</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZjZTkxNGMwMmY5ZjE0
N2E4YTU5NThjODFhN2JhYTEyOTU3YjAzZS4uMTZkYWJhMmZlZDljZjYzZWMxZDQ2MTYzZWJkMDg2
YmNjMmFhNjIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTAxLTExICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50
IFN1cHBvcnRdIFN1cHBvcnQgbW92aW5nIGF0dGFjaG1lbnQgZWxlbWVudHMgaW4gZWRpdGFibGUg
YXJlYXMgdXNpbmcgZHJhZyBhbmQgZHJvcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjMyNDgx
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIE1ha2VzIHNs
aWdodCBhZGp1c3RtZW50cyB0byBhdHRhY2htZW50LXNwZWNpZmljIGRyYWcgYW5kIGRyb3AgbG9n
aWMgdG8gZW5zdXJlIHRoYXQgbW92aW5nIGF0dGFjaG1lbnRzIHZpYSBkcmFnCisgICAgICAgIGFu
ZCBkcm9wIGJlaGF2ZXMgY29ycmVjdGx5LiBTZWUgcGVyLWNoYW5nZSBjb21tZW50cyBmb3IgbW9y
ZSBkZXRhaWwuCisKKyAgICAgICAgVGVzdHM6ICBXS0F0dGFjaG1lbnRUZXN0cy5EcmFnSW5QbGFj
ZVZpZGVvQXR0YWNobWVudEVsZW1lbnQKKyAgICAgICAgICAgICAgICBXS0F0dGFjaG1lbnRUZXN0
cy5Nb3ZlQXR0YWNobWVudEVsZW1lbnRBc0ljb25CeURyYWdnaW5nCisgICAgICAgICAgICAgICAg
V0tBdHRhY2htZW50VGVzdHMuTW92ZUluUGxhY2VBdHRhY2htZW50RWxlbWVudEJ5RHJhZ2dpbmcK
KworICAgICAgICAqIGVkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmdldFBhc3RlYm9hcmRUeXBlc0FuZERhdGFGb3JBdHRhY2htZW50KToKKwor
ICAgICAgICBTdG9wIHZlbmRpbmcgdGhlIHByaXZhdGUgd2ViIGFyY2hpdmUgcGFzdGVib2FyZCB0
eXBlIGZvciBhdHRhY2htZW50cywgZm9yIG5vdy4gVGhpcyB3b3JrcyBhcm91bmQgaXNzdWVzIHdo
ZXJlIGFuCisgICAgICAgIGF0dGFjaG1lbnQgZWxlbWVudCB0aGF0IGlzIGRyYWdnZWQgYW5kIGRy
b3BwZWQgd2l0aGluIHRoZSBzYW1lIHBhZ2UgbWF5IGxvc2UgaXRzIGJsb2IgYmFja2luZyBkYXRh
IGlmIHdlIHRyeSB0bworICAgICAgICByZW1vdmUgYW5kIGluc2VydCBpdCBhcyBhIGZyYWdtZW50
IGZyb20gdGhlIGFyY2hpdmUuIFByb3ZpZGluZyBhIHdlYiBhcmNoaXZlIHdvdWxkIGFsbG93IHVz
IHRvIGF2b2lkIGRlc3Ryb3lpbmcKKyAgICAgICAgYW5kIHJlY3JlYXRpbmcgYW4gYXR0YWNobWVu
dCBlbGVtZW50IHdoZW4gZHJhZ2dpbmcgd2l0aGluIHRoZSBzYW1lIHBhZ2UsIGJ1dCB0aGlzIGlz
IGEgbmljZS10by1oYXZlIG9wdGltaXphdGlvbgorICAgICAgICB3ZSBjYW4gcmUtZW5hYmxlIGFm
dGVyIGludmVzdGlnYXRpb24gaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisgICAgICAgICogaHRt
bC9IVE1MQXR0YWNobWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEF0dGFj
aG1lbnRFbGVtZW50Ojpwb3B1bGF0ZVNoYWRvd1Jvb3RJZk5lY2Vzc2FyeSk6CisKKyAgICAgICAg
QWRkIGBkcmFnZ2FibGU9ZmFsc2VgIHRvIHRoZSBpbWFnZSBlbGVtZW50IG9mIGFuIGluLXBsYWNl
IGF0dGFjaG1lbnQgZWxlbWVudC4KKworICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZW5jbG9zaW5nQXR0YWNobWVudEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRyYWdnYWJsZUVsZW1lbnQgY29uc3QpOgorCisg
ICAgICAgIFR3ZWFrIHNpbmdsZS1zZWxlY3RlZC1hdHRhY2htZW50IGhhbmRsaW5nIHRvIGFjY291
bnQgZm9yIGluLXBsYWNlIGF0dGFjaG1lbnRzLiBTaW5jZSB0aGUgaGl0LXRlc3RlZCBub2RlIGlz
CisgICAgICAgIGluc2lkZSB0aGUgc2hhZG93IHN1YnRyZWUgb2YgdGhlIGF0dGFjaG1lbnQgZWxl
bWVudCwgdGhlIGNvbmRpdGlvbiBuZWVkcyB0byBjaGVjayBmb3IgdGhlIHN0YXJ0RWxlbWVudCBh
cyB3ZWxsCisgICAgICAgIGFzIHRoZSBzdGFydEVsZW1lbnQncyBzaGFkb3cgaG9zdC4KKworICAg
ICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyk6CisKKyAgICAgICAgTWFr
ZSB0d28gdHdlYWtzIGhlcmUuIEZpcnN0LCBkb24ndCByZXF1aXJlIGEgUmVuZGVyQXR0YWNobWVu
dCB0byBkcmFnIGFuIGF0dGFjaG1lbnQgZWxlbWVudCAodGhpcyBpcyByZXF1aXJlZAorICAgICAg
ICBmb3IgZHJhZ2dpbmcgaW4tcGxhY2UgYXR0YWNobWVudHMpLiBUaGlzIHdhcyBhZGRlZCBpbiBy
MjE3MDgzIHRvIGFkZHJlc3MgPHJkYXI6Ly9wcm9ibGVtLzMyMjgyODMxPiwgYnV0IGlzIG5vCisg
ICAgICAgIGxvbmdlciBjb3JyZWN0LCBzaW5jZSBhdHRhY2htZW50cyBtYXkgbm93IGJlIGRpc3Bs
YXllZCBpbi1wbGFjZS4KKworICAgICAgICBTZWNvbmRseSwgb25seSByZXN0b3JlIHRoZSBwcmV2
aW91cyBzZWxlY3Rpb24gaWYgdGhlIGF0dGFjaG1lbnQgaXMgaW4gYSByaWNobHkgY29udGVudGVk
aXRhYmxlIGFyZWEuIFRoaXMgd2FzCisgICAgICAgIGFkZGVkIHRvIHByZXZlbnQgdGhlIHNlbGVj
dGlvbiBoaWdobGlnaHQgZnJvbSBhcHBlYXJpbmcgaW4gd2hlbiBkcmFnZ2luZyBub24tZWRpdGFi
bGUgYXR0YWNobWVudCBlbGVtZW50cyBpbiB0aGUKKyAgICAgICAgTWFpbCB2aWV3ZXIuIEhvd2V2
ZXIsIHRvIGFsbG93IGRyYWcgbW92ZXMgdG8gb2NjdXIsIHdlIG5lZWQgdGhlIHNlbGVjdGlvbiB0
byBwZXJzaXN0IGFmdGVyIGRyYWcgc3RhcnQuCisKIDIwMTgtMDEtMDQgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBDb2RlQmxvY2tzIHNob3VsZCBiZSBpbiBJc29T
dWJzcGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9y
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCmlu
ZGV4IGZhZmU1ODkyMjU5NGYxOWRhNWE4MDBkMGRkNjUxZDNiOWQ0NjQzZGYuLjZlMmEwZDY1MjU0
MjY2M2ZhN2IyZjQ0OGM5NWYzMDk2YTRjYjA0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9FZGl0b3JDb2NvYS5tbQpAQCAtMTU5LDEwICsxNTksMTEgQEAgdm9pZCBFZGl0b3I6
OmdldFBhc3RlYm9hcmRUeXBlc0FuZERhdGFGb3JBdHRhY2htZW50KEhUTUxBdHRhY2htZW50RWxl
bWVudCYgYXR0YWMKIHsKICAgICBhdXRvIGF0dGFjaG1lbnRSYW5nZSA9IFJhbmdlOjpjcmVhdGUo
YXR0YWNobWVudC5kb2N1bWVudCgpLCB7ICZhdHRhY2htZW50LCBQb3NpdGlvbjo6UG9zaXRpb25J
c0JlZm9yZUFuY2hvciB9LCB7ICZhdHRhY2htZW50LCBQb3NpdGlvbjo6UG9zaXRpb25Jc0FmdGVy
QW5jaG9yIH0pOwogICAgIGNsaWVudCgpLT5nZXRDbGllbnRQYXN0ZWJvYXJkRGF0YUZvclJhbmdl
KGF0dGFjaG1lbnRSYW5nZS5wdHIoKSwgb3V0VHlwZXMsIG91dERhdGEpOwotICAgIGlmIChhdXRv
IGFyY2hpdmUgPSBMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUoYXR0YWNobWVudFJhbmdlLnB0cigp
KSkgewotICAgICAgICBvdXRUeXBlcy5hcHBlbmQoV2ViQXJjaGl2ZVBib2FyZFR5cGUpOwotICAg
ICAgICBvdXREYXRhLmFwcGVuZChTaGFyZWRCdWZmZXI6OmNyZWF0ZShhcmNoaXZlLT5yYXdEYXRh
UmVwcmVzZW50YXRpb24oKS5nZXQoKSkpOwotICAgIH0KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGFkZGl0aW9uYWxseSB3cml0ZSB0aGUgYXR0YWNobWVudCBhcyBhIHdlYiBhcmNoaXZlIGhlcmUs
IHN1Y2ggdGhhdCBkcmFnIGFuZCBkcm9wIHdpdGhpbiB0aGUKKyAgICAvLyBzYW1lIHBhZ2UgZG9l
c24ndCBkZXN0cm95IGFuZCByZWNyZWF0ZSBhdHRhY2htZW50cyB1bm5lY2Vzc2FyaWx5LiBUaGlz
IGlzIGFsc28gbmVlZGVkIHRvIHByZXNlcnZlIHRoZSBhdHRhY2htZW50CisgICAgLy8gZGlzcGxh
eSBtb2RlIHdoZW4gZHJhZ2dpbmcgYW5kIGRyb3BwaW5nIG9yIGN1dHRpbmcgYW5kIHBhc3Rpbmcu
IEZvciB0aGUgdGltZSBiZWluZywgdGhpcyBpcyBkaXNhYmxlZCBiZWNhdXNlCisgICAgLy8gaW5z
ZXJ0aW5nIGF0dGFjaG1lbnQgZWxlbWVudHMgZnJvbSB3ZWIgYXJjaGl2ZSBkYXRhIHNvbWV0aW1l
cyBjYXVzZXMgYXR0YWNobWVudCBkYXRhIHRvIGJlIGxvc3Q7IHRoaXMgcmVxdWlyZXMKKyAgICAv
LyBmdXJ0aGVyIGludmVzdGlnYXRpb24uCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuY3BwCmluZGV4IGE1MmJkMTQxYTA2ZTZkZWQwNDQ2
YWZlZDNhY2I1NjUzZWNmYzRjZWQuLjY2MTg1Zjg5M2VhZjMwYjIzMzU0ZTVhNDIxOGEyMTgzNzAy
OWFiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5j
cHAKQEAgLTI4Myw2ICsyODMsNyBAQCB2b2lkIEhUTUxBdHRhY2htZW50RWxlbWVudDo6cG9wdWxh
dGVTaGFkb3dSb290SWZOZWNlc3NhcnkoKQogICAgICAgICBhdXRvIGltYWdlID0gZW5zdXJlSW5u
ZXJJbWFnZSgpOwogICAgICAgICBpZiAoaW1hZ2UtPmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oc3JjQXR0cikuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpbWFnZS0+c2V0QXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihzcmNBdHRyLCBET01VUkw6OmNyZWF0ZU9iamVjdFVS
TChkb2N1bWVudCgpLCAqbV9maWxlKSk7CisgICAgICAgICAgICBpbWFnZS0+c2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihkcmFnZ2FibGVBdHRyLCBBdG9taWNTdHJpbmcoImZhbHNl
IikpOwogICAgICAgICAgICAgaW1hZ2UtPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVy
dHlEaXNwbGF5LCBDU1NWYWx1ZUlubGluZSwgdHJ1ZSk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA2NThlMDdmM2ZkODk5ODkyYTVlYmExZmVl
MjY3Mzc3NjE3NDFkOGVjLi4yNjlkNTQ5ZjU2ZmUwMWY5ZmI1YTI1ZTE4OTZjZjQ4YzczNWRhNDg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNzE5LDI0ICs3MTks
MzkgQEAgc3RhdGljIGJvb2wgaW1hZ2VFbGVtZW50SXNEcmFnZ2FibGUoY29uc3QgSFRNTEltYWdl
RWxlbWVudCYgaW1hZ2UsIGNvbnN0IEZyYW1lJgogICAgIHJldHVybiBjYWNoZWRJbWFnZSAmJiAh
Y2FjaGVkSW1hZ2UtPmVycm9yT2NjdXJyZWQoKSAmJiBjYWNoZWRJbWFnZS0+aW1hZ2VGb3JSZW5k
ZXJlcihyZW5kZXJlcik7CiB9CiAKKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQorCitz
dGF0aWMgUmVmUHRyPEhUTUxBdHRhY2htZW50RWxlbWVudD4gZW5jbG9zaW5nQXR0YWNobWVudEVs
ZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoaXM8SFRNTEF0dGFjaG1lbnRFbGVt
ZW50PihlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxBdHRhY2htZW50RWxl
bWVudD4oJmVsZW1lbnQpOworCisgICAgaWYgKGlzPEhUTUxBdHRhY2htZW50RWxlbWVudD4oZWxl
bWVudC5wYXJlbnRPclNoYWRvd0hvc3RFbGVtZW50KCkpKQorICAgICAgICByZXR1cm4gZG93bmNh
c3Q8SFRNTEF0dGFjaG1lbnRFbGVtZW50PihlbGVtZW50LnBhcmVudE9yU2hhZG93SG9zdEVsZW1l
bnQoKSk7CisKKyAgICByZXR1cm4geyB9OworfQorCisjZW5kaWYKKwogRWxlbWVudCogRHJhZ0Nv
bnRyb2xsZXI6OmRyYWdnYWJsZUVsZW1lbnQoY29uc3QgRnJhbWUqIHNvdXJjZUZyYW1lLCBFbGVt
ZW50KiBzdGFydEVsZW1lbnQsIGNvbnN0IEludFBvaW50JiBkcmFnT3JpZ2luLCBEcmFnU3RhdGUm
IHN0YXRlKSBjb25zdAogewogICAgIHN0YXRlLnR5cGUgPSAoc291cmNlRnJhbWUtPnNlbGVjdGlv
bigpLmNvbnRhaW5zKGRyYWdPcmlnaW4pKSA/IERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24gOiBE
cmFnU291cmNlQWN0aW9uTm9uZTsKICAgICBpZiAoIXN0YXJ0RWxlbWVudCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICBpZiAoaXM8
SFRNTEF0dGFjaG1lbnRFbGVtZW50PihzdGFydEVsZW1lbnQpKSB7CisgICAgaWYgKGF1dG8gYXR0
YWNobWVudCA9IGVuY2xvc2luZ0F0dGFjaG1lbnRFbGVtZW50KCpzdGFydEVsZW1lbnQpKSB7CiAg
ICAgICAgIGF1dG8gc2VsZWN0aW9uID0gc291cmNlRnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlv
bigpOwotICAgICAgICBib29sIGlzU2luZ2xlQXR0YWNobWVudFNlbGVjdGlvbiA9IHNlbGVjdGlv
bi5zdGFydCgpID09IFBvc2l0aW9uKHN0YXJ0RWxlbWVudCwgUG9zaXRpb246OlBvc2l0aW9uSXNC
ZWZvcmVBbmNob3IpICYmIHNlbGVjdGlvbi5lbmQoKSA9PSBQb3NpdGlvbihzdGFydEVsZW1lbnQs
IFBvc2l0aW9uOjpQb3NpdGlvbklzQWZ0ZXJBbmNob3IpOworICAgICAgICBib29sIGlzU2luZ2xl
QXR0YWNobWVudFNlbGVjdGlvbiA9IHNlbGVjdGlvbi5zdGFydCgpID09IFBvc2l0aW9uKGF0dGFj
aG1lbnQuZ2V0KCksIFBvc2l0aW9uOjpQb3NpdGlvbklzQmVmb3JlQW5jaG9yKSAmJiBzZWxlY3Rp
b24uZW5kKCkgPT0gUG9zaXRpb24oYXR0YWNobWVudC5nZXQoKSwgUG9zaXRpb246OlBvc2l0aW9u
SXNBZnRlckFuY2hvcik7CiAgICAgICAgIGJvb2wgaXNBdHRhY2htZW50RWxlbWVudEluQ3VycmVu
dFNlbGVjdGlvbiA9IGZhbHNlOwogICAgICAgICBpZiAoYXV0byBzZWxlY3RlZFJhbmdlID0gc2Vs
ZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCkpIHsKLSAgICAgICAgICAgIGF1dG8gY29tcGFyZVJl
c3VsdCA9IHNlbGVjdGVkUmFuZ2UtPmNvbXBhcmVOb2RlKCpzdGFydEVsZW1lbnQpOworICAgICAg
ICAgICAgYXV0byBjb21wYXJlUmVzdWx0ID0gc2VsZWN0ZWRSYW5nZS0+Y29tcGFyZU5vZGUoKmF0
dGFjaG1lbnQpOwogICAgICAgICAgICAgaXNBdHRhY2htZW50RWxlbWVudEluQ3VycmVudFNlbGVj
dGlvbiA9ICFjb21wYXJlUmVzdWx0Lmhhc0V4Y2VwdGlvbigpICYmIGNvbXBhcmVSZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkgPT0gUmFuZ2U6Ok5PREVfSU5TSURFOwogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKCFpc0F0dGFjaG1lbnRFbGVtZW50SW5DdXJyZW50U2VsZWN0aW9uIHx8IGlzU2lu
Z2xlQXR0YWNobWVudFNlbGVjdGlvbikgewogICAgICAgICAgICAgc3RhdGUudHlwZSA9IERyYWdT
b3VyY2VBY3Rpb25BdHRhY2htZW50OwotICAgICAgICAgICAgcmV0dXJuIHN0YXJ0RWxlbWVudDsK
KyAgICAgICAgICAgIHJldHVybiBhdHRhY2htZW50LmdldCgpOwogICAgICAgICB9CiAgICAgfQog
I2VuZGlmCkBAIC04NTYsNiArODcxLDkgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFn
KEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAgICBi
b29sIGluY2x1ZGVTaGFkb3dET00gPSBmYWxzZTsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgaW5j
bHVkZVNoYWRvd0RPTSA9IHN0YXRlLnNvdXJjZS0+aXNNZWRpYUVsZW1lbnQoKTsKKyNlbmRpZgor
I2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCisgICAgaW5jbHVkZVNoYWRvd0RPTSA9IGlu
Y2x1ZGVTaGFkb3dET00gfHwgaXM8SFRNTEF0dGFjaG1lbnRFbGVtZW50PihzdGF0ZS5zb3VyY2Uu
Z2V0KCkpOwogI2VuZGlmCiAgICAgYm9vbCBzb3VyY2VDb250YWluc0hpdE5vZGU7CiAgICAgaWYg
KCFpbmNsdWRlU2hhZG93RE9NKQpAQCAtMTA3MSwxNyArMTA4OSwxNSBAQCBib29sIERyYWdDb250
cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJh
Z09wZXJhdGlvbgogICAgIGlmIChpczxIVE1MQXR0YWNobWVudEVsZW1lbnQ+KGVsZW1lbnQpICYm
IG1fZHJhZ1NvdXJjZUFjdGlvbiAmIERyYWdTb3VyY2VBY3Rpb25BdHRhY2htZW50KSB7CiAgICAg
ICAgIGF1dG8mIGF0dGFjaG1lbnQgPSBkb3duY2FzdDxIVE1MQXR0YWNobWVudEVsZW1lbnQ+KGVs
ZW1lbnQpOwogICAgICAgICBhdXRvKiBhdHRhY2htZW50UmVuZGVyZXIgPSBhdHRhY2htZW50LmF0
dGFjaG1lbnRSZW5kZXJlcigpOwotICAgICAgICBpZiAoIWF0dGFjaG1lbnRSZW5kZXJlcikKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBzcmMuZWRpdG9yKCkuc2V0SWdub3Jl
U2VsZWN0aW9uQ2hhbmdlcyh0cnVlKTsKICAgICAgICAgYXV0byBwcmV2aW91c1NlbGVjdGlvbiA9
IHNyYy5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKLSAgICAgICAgaWYgKGhhc0RhdGEgPT0gSGFz
Tm9uRGVmYXVsdFBhc3RlYm9hcmREYXRhOjpObykgewotICAgICAgICAgICAgc2VsZWN0RWxlbWVu
dChlbGVtZW50KTsKLSAgICAgICAgICAgIGlmICghZHJhZ0F0dGFjaG1lbnRFbGVtZW50KHNyYywg
YXR0YWNobWVudCkgJiYgc3JjLmVkaXRvcigpLmNsaWVudCgpKSB7CisgICAgICAgIHNlbGVjdEVs
ZW1lbnQoZWxlbWVudCk7CisgICAgICAgIGlmIChoYXNEYXRhID09IEhhc05vbkRlZmF1bHRQYXN0
ZWJvYXJkRGF0YTo6Tm8gJiYgIWRyYWdBdHRhY2htZW50RWxlbWVudChzcmMsIGF0dGFjaG1lbnQp
KSB7CisgICAgICAgICAgICBhdXRvJiBlZGl0b3IgPSBzcmMuZWRpdG9yKCk7CisgICAgICAgICAg
ICBpZiAoZWRpdG9yLmNsaWVudCgpKSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgICAg
ICAgICAgLy8gT3RoZXJ3aXNlLCBpZiBubyBmaWxlIFVSTCBpcyBzcGVjaWZpZWQsIGNhbGwgb3V0
IHRvIHRoZSBpbmplY3RlZCBidW5kbGUgdG8gcG9wdWxhdGUgdGhlIHBhc3RlYm9hcmQgd2l0aCBk
YXRhLgotICAgICAgICAgICAgICAgIGF1dG8mIGVkaXRvciA9IHNyYy5lZGl0b3IoKTsKICAgICAg
ICAgICAgICAgICBlZGl0b3Iud2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKHNyYy5zZWxl
Y3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpKTsKICAgICAgICAgICAgICAgICBlZGl0
b3Iud3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKSk7
CiAgICAgICAgICAgICAgICAgZWRpdG9yLmRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7
CkBAIC0xMDkzLDE2ICsxMTA5LDE5IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhG
cmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAgICAg
IAogICAgICAgICBpZiAoIWRyYWdJbWFnZSkgewogICAgICAgICAgICAgVGV4dEluZGljYXRvckRh
dGEgdGV4dEluZGljYXRvcjsKLSAgICAgICAgICAgIGF0dGFjaG1lbnRSZW5kZXJlci0+c2V0U2hv
dWxkRHJhd0JvcmRlcihmYWxzZSk7CisgICAgICAgICAgICBpZiAoYXR0YWNobWVudFJlbmRlcmVy
KQorICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRSZW5kZXJlci0+c2V0U2hvdWxkRHJhd0JvcmRl
cihmYWxzZSk7CiAgICAgICAgICAgICBkcmFnSW1hZ2UgPSBEcmFnSW1hZ2UgeyBkaXNzb2x2ZURy
YWdJbWFnZVRvRnJhY3Rpb24oY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKHNyYywgdGV4dElu
ZGljYXRvciksIERyYWdJbWFnZUFscGhhKSB9OwotICAgICAgICAgICAgYXR0YWNobWVudFJlbmRl
cmVyLT5zZXRTaG91bGREcmF3Qm9yZGVyKHRydWUpOworICAgICAgICAgICAgaWYgKGF0dGFjaG1l
bnRSZW5kZXJlcikKKyAgICAgICAgICAgICAgICBhdHRhY2htZW50UmVuZGVyZXItPnNldFNob3Vs
ZERyYXdCb3JkZXIodHJ1ZSk7CiAgICAgICAgICAgICBpZiAodGV4dEluZGljYXRvci5jb250ZW50
SW1hZ2UpCiAgICAgICAgICAgICAgICAgZHJhZ0ltYWdlLnNldEluZGljYXRvckRhdGEodGV4dElu
ZGljYXRvcik7CiAgICAgICAgICAgICBkcmFnTG9jID0gZHJhZ0xvY0ZvclNlbGVjdGlvbkRyYWco
c3JjKTsKICAgICAgICAgICAgIG1fZHJhZ09mZnNldCA9IEludFBvaW50KGRyYWdPcmlnaW4ueCgp
IC0gZHJhZ0xvYy54KCksIGRyYWdPcmlnaW4ueSgpIC0gZHJhZ0xvYy55KCkpOwogICAgICAgICB9
CiAgICAgICAgIGRvU3lzdGVtRHJhZyhXVEZNb3ZlKGRyYWdJbWFnZSksIGRyYWdMb2MsIGRyYWdP
cmlnaW4sIHNyYywgc3RhdGUpOwotICAgICAgICBzcmMuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KHByZXZpb3VzU2VsZWN0aW9uKTsKKyAgICAgICAgaWYgKCFlbGVtZW50LmlzQ29udGVudFJpY2hs
eUVkaXRhYmxlKCkpCisgICAgICAgICAgICBzcmMuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKHBy
ZXZpb3VzU2VsZWN0aW9uKTsKICAgICAgICAgc3JjLmVkaXRvcigpLnNldElnbm9yZVNlbGVjdGlv
bkNoYW5nZXMoZmFsc2UpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjdlNDYxZTNlNmFmNmNm
ZjlkNzQyYjRmN2UwNzljZDk4YzY2YWI3Zi4uOGExMGU4ZGJkNWI2MWQ0NTdlZWY2ZGQ2NGJlNTgy
YjdkMzRiNzE3NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTAxLTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtBdHRhY2htZW50IFN1cHBvcnRdIFN1cHBvcnQg
bW92aW5nIGF0dGFjaG1lbnQgZWxlbWVudHMgaW4gZWRpdGFibGUgYXJlYXMgdXNpbmcgZHJhZyBh
bmQgZHJvcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgxMzM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjMyNDgxMz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCAzIG5ldyBBUEkgdGVzdHMgZm9yIGF0
dGFjaG1lbnQgZWxlbWVudCBkcmFnZ2luZy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW06CisgICAgICAgICgtW1Rlc3RXS1dl
YlZpZXcgZXhwZWN0RWxlbWVudFRhZzp0b0NvbWVCZWZvcmU6XSk6CisgICAgICAgICgtW05TSXRl
bVByb3ZpZGVyIGV4cGVjdFR5cGU6d2l0aERhdGE6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKwogMjAxOC0wMS0xMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIENvZGVCbG9ja3Mgc2hvdWxkIGJlIGluIElzb1N1YnNwYWNlcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50
VGVzdHMubW0KaW5kZXggYzVkZWNkMmY3ZjU3ZDkyYzExZmI5YjcyNjFhODM3NzY1NzU2NmQwNy4u
YTg1ODk5MzYxZWE4ZDdmNjYxNzcwNjgxYzJiM2Q0N2UwMWE1OTQyZiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRl
c3RzLm1tCkBAIC0xODQsNiArMTg0LDIyIEBAIHN0YXRpYyBfV0tBdHRhY2htZW50RGlzcGxheU9w
dGlvbnMgKmRpc3BsYXlPcHRpb25zV2l0aE1vZGUoX1dLQXR0YWNobWVudERpc3BsYXlNCiAKIEBp
bXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJWaWV3IChBdHRhY2htZW50VGVzdGluZykKIAorLSAodm9p
ZClleHBlY3RFbGVtZW50VGFnOihOU1N0cmluZyAqKXRhZ05hbWUgdG9Db21lQmVmb3JlOihOU1N0
cmluZyAqKW90aGVyVGFnTmFtZQoreworICAgIE5TQXJyYXkgKnRhZ3NJbkJvZHkgPSBbc2VsZiBv
YmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiQXJyYXkuZnJvbShkb2N1bWVudC5ib2R5Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCcqJykpLm1hcChlID0+IGUudGFnTmFtZSkiXTsKKyAgICBCT09M
IHN1Y2Nlc3MgPSBbdGFnc0luQm9keSBjb250YWluc09iamVjdDp0YWdOYW1lXSAmJiBbdGFnc0lu
Qm9keSBjb250YWluc09iamVjdDpvdGhlclRhZ05hbWVdOworICAgIGlmIChzdWNjZXNzKSB7Cisg
ICAgICAgIE5TVUludGVnZXIgaW5kZXggPSBbdGFnc0luQm9keSBpbmRleE9mT2JqZWN0OnRhZ05h
bWVdOworICAgICAgICBOU1VJbnRlZ2VyIG90aGVySW5kZXggPSBbdGFnc0luQm9keSBpbmRleE9m
T2JqZWN0V2l0aE9wdGlvbnM6TlNFbnVtZXJhdGlvblJldmVyc2UgcGFzc2luZ1Rlc3Q6WyZdIChO
U1N0cmluZyAqdGFnLCBOU1VJbnRlZ2VyLCBCT09MICopIHsKKyAgICAgICAgICAgIHJldHVybiBb
dGFnIGlzRXF1YWxUb1N0cmluZzpvdGhlclRhZ05hbWVdOworICAgICAgICB9XTsKKyAgICAgICAg
c3VjY2VzcyA9IGluZGV4IDwgb3RoZXJJbmRleDsKKyAgICB9CisgICAgRVhQRUNUX1RSVUUoc3Vj
Y2Vzcyk7CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBOU0xvZyhAIkV4cGVjdGVkICVAIHRv
IGNvbWUgYmVmb3JlICVAIGluIHRhZ3M6ICVAIiwgdGFnTmFtZSwgb3RoZXJUYWdOYW1lLCB0YWdz
SW5Cb2R5KTsKK30KKwogLSAoQk9PTClfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDoo
TlNTdHJpbmcgKiljb21tYW5kIGFyZ3VtZW50OihOU1N0cmluZyAqKWFyZ3VtZW50CiB7CiAgICAg
X19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKQEAgLTEzMTEsNiArMTMyNyw5MSBAQCBURVNUKFdL
QXR0YWNobWVudFRlc3RzSU9TLCBEcmFnQXR0YWNobWVudEluc2VydGVkQXNEYXRhKQogICAgIFtk
cmFnZ2luZ1NpbXVsYXRvciBlbmREYXRhVHJhbnNmZXJdOwogfQogCitURVNUKFdLQXR0YWNobWVu
dFRlc3RzSU9TLCBEcmFnSW5QbGFjZVZpZGVvQXR0YWNobWVudEVsZW1lbnQpCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpOworICAgIGF1dG8gZGF0
YSA9IHJldGFpblB0cih0ZXN0VmlkZW9EYXRhKCkpOworICAgIFJldGFpblB0cjxfV0tBdHRhY2ht
ZW50PiBhdHRhY2htZW50OworICAgIHsKKyAgICAgICAgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRhdGVz
Rm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7CisgICAgICAgIGF0dGFjaG1lbnQgPSBb
d2ViVmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlbmFtZTpAInZpZGVv
Lm1wNCIgY29udGVudFR5cGU6QCJ2aWRlby9tcDQiIGRhdGE6ZGF0YS5nZXQoKSBvcHRpb25zOmRp
c3BsYXlPcHRpb25zV2l0aE1vZGUoX1dLQXR0YWNobWVudERpc3BsYXlNb2RlSW5QbGFjZSldOwor
ICAgICAgICBvYnNlcnZlci5leHBlY3RBdHRhY2htZW50VXBkYXRlcyhAW10sIEBbYXR0YWNobWVu
dC5nZXQoKV0pOworICAgIH0KKworICAgIFt3ZWJWaWV3IHdhaXRGb3JBdHRhY2htZW50RWxlbWVu
dFNpemVUb0JlY29tZTpDR1NpemVNYWtlKDMyMCwgMjQwKV07CisgICAgW2F0dGFjaG1lbnQgZXhw
ZWN0UmVxdWVzdGVkRGF0YVRvQmU6ZGF0YS5nZXQoKV07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ2
aWRlby5tcDQiLCBbd2ViVmlldyB2YWx1ZU9mQXR0cmlidXRlOkAidGl0bGUiIGZvclF1ZXJ5U2Vs
ZWN0b3I6QCJhdHRhY2htZW50Il0pOworICAgIEVYUEVDVF9XS19TVFJFUSgidmlkZW8vbXA0Iiwg
W3dlYlZpZXcgdmFsdWVPZkF0dHJpYnV0ZTpAInR5cGUiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhdHRh
Y2htZW50Il0pOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0
aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgYXV0
byBkcmFnZ2luZ1NpbXVsYXRvciA9IGFkb3B0TlMoW1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Ig
YWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7CisgICAgW2RyYWdnaW5nU2lt
dWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2UoMjUsIDI1KSB0bzpDR1BvaW50TWFrZSgtMTAwLCAt
MTAwKV07CisKKyAgICBFWFBFQ1RfRVEoMVUsIFtkcmFnZ2luZ1NpbXVsYXRvciBzb3VyY2VJdGVt
UHJvdmlkZXJzXS5jb3VudCk7CisgICAgTlNJdGVtUHJvdmlkZXIgKml0ZW1Qcm92aWRlciA9IFtk
cmFnZ2luZ1NpbXVsYXRvciBzb3VyY2VJdGVtUHJvdmlkZXJzXS5maXJzdE9iamVjdDsKKyAgICBF
WFBFQ1RfRVEoVUlQcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZUF0dGFjaG1lbnQsIGl0ZW1Qcm92
aWRlci5wcmVmZXJyZWRQcmVzZW50YXRpb25TdHlsZSk7CisgICAgW2l0ZW1Qcm92aWRlciBleHBl
Y3RUeXBlOihOU1N0cmluZyAqKWtVVFR5cGVNUEVHNCB3aXRoRGF0YTpkYXRhLmdldCgpXTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoInZpZGVvLm1wNCIsIFtpdGVtUHJvdmlkZXIgc3VnZ2VzdGVkTmFt
ZV0pOworICAgIFtkcmFnZ2luZ1NpbXVsYXRvciBlbmREYXRhVHJhbnNmZXJdOworfQorCitURVNU
KFdLQXR0YWNobWVudFRlc3RzSU9TLCBNb3ZlQXR0YWNobWVudEVsZW1lbnRBc0ljb25CeURyYWdn
aW5nKQoreworICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdGb3JUZXN0aW5nQXR0YWNobWVudHMo
KTsKKyAgICBhdXRvIGRhdGEgPSByZXRhaW5QdHIodGVzdFBERkRhdGEoKSk7CisgICAgUmV0YWlu
UHRyPF9XS0F0dGFjaG1lbnQ+IGF0dGFjaG1lbnQ7CisgICAgeworICAgICAgICBPYnNlcnZlQXR0
YWNobWVudFVwZGF0ZXNGb3JTY29wZSBvYnNlcnZlcih3ZWJWaWV3LmdldCgpKTsKKyAgICAgICAg
YXR0YWNobWVudCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRBdHRhY2htZW50V2l0aEZp
bGVuYW1lOkAiZG9jdW1lbnQucGRmIiBjb250ZW50VHlwZTpAImFwcGxpY2F0aW9uL3BkZiIgZGF0
YTpkYXRhLmdldCgpIG9wdGlvbnM6ZGlzcGxheU9wdGlvbnNXaXRoTW9kZShfV0tBdHRhY2htZW50
RGlzcGxheU1vZGVBc0ljb24pXTsKKyAgICAgICAgb2JzZXJ2ZXIuZXhwZWN0QXR0YWNobWVudFVw
ZGF0ZXMoQFtdLCBAW2F0dGFjaG1lbnQuZ2V0KCldKTsKKyAgICB9CisKKyAgICBbd2ViVmlldyBf
ZXhlY3V0ZUVkaXRDb21tYW5kOkAiSW5zZXJ0UGFyYWdyYXBoIiBhcmd1bWVudDpuaWwgY29tcGxl
dGlvbjpuaWxdOworICAgIFt3ZWJWaWV3IF9leGVjdXRlRWRpdENvbW1hbmQ6QCJJbnNlcnRIVE1M
IiBhcmd1bWVudDpAIjxzdHJvbmc+dGV4dDwvc3Ryb25nPiIgY29tcGxldGlvbjpuaWxdOworICAg
IFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiSW5zZXJ0UGFyYWdy
YXBoIiBhcmd1bWVudDpuaWxdOworICAgIFt3ZWJWaWV3IGV4cGVjdEVsZW1lbnRUYWc6QCJBVFRB
Q0hNRU5UIiB0b0NvbWVCZWZvcmU6QCJTVFJPTkciXTsKKworICAgIGF1dG8gZHJhZ2dpbmdTaW11
bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0
aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAgIFtkcmFnZ2luZ1NpbXVsYXRvciBydW5Gcm9t
OkNHUG9pbnRNYWtlKDI1LCAyNSkgdG86Q0dQb2ludE1ha2UoMjUsIDEyNSldOworCisgICAgYXR0
YWNobWVudCA9IFtbZHJhZ2dpbmdTaW11bGF0b3IgaW5zZXJ0ZWRBdHRhY2htZW50c10gZmlyc3RP
YmplY3RdOworICAgIFthdHRhY2htZW50IGV4cGVjdFJlcXVlc3RlZERhdGFUb0JlOmRhdGEuZ2V0
KCldOworICAgIEVYUEVDVF9XS19TVFJFUSgiZG9jdW1lbnQucGRmIiwgW3dlYlZpZXcgdmFsdWVP
ZkF0dHJpYnV0ZTpAInRpdGxlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoImFwcGxpY2F0aW9uL3BkZiIsIFt3ZWJWaWV3IHZhbHVlT2ZBdHRy
aWJ1dGU6QCJ0eXBlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsKKworICAgIFt3
ZWJWaWV3IGV4cGVjdEVsZW1lbnRUYWc6QCJTVFJPTkciIHRvQ29tZUJlZm9yZTpAIkFUVEFDSE1F
TlQiXTsKKyAgICBbZHJhZ2dpbmdTaW11bGF0b3IgZW5kRGF0YVRyYW5zZmVyXTsKK30KKworVEVT
VChXS0F0dGFjaG1lbnRUZXN0c0lPUywgTW92ZUluUGxhY2VBdHRhY2htZW50RWxlbWVudEJ5RHJh
Z2dpbmcpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50
cygpOworICAgIGF1dG8gZGF0YSA9IHJldGFpblB0cih0ZXN0SW1hZ2VEYXRhKCkpOworICAgIFJl
dGFpblB0cjxfV0tBdHRhY2htZW50PiBhdHRhY2htZW50OworICAgIHsKKyAgICAgICAgT2JzZXJ2
ZUF0dGFjaG1lbnRVcGRhdGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7CisgICAg
ICAgIGF0dGFjaG1lbnQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0QXR0YWNobWVudFdp
dGhGaWxlbmFtZTpAImljb24ucG5nIiBjb250ZW50VHlwZTpAImltYWdlL3BuZyIgZGF0YTpkYXRh
LmdldCgpIG9wdGlvbnM6ZGlzcGxheU9wdGlvbnNXaXRoTW9kZShfV0tBdHRhY2htZW50RGlzcGxh
eU1vZGVJblBsYWNlKV07CisgICAgICAgIG9ic2VydmVyLmV4cGVjdEF0dGFjaG1lbnRVcGRhdGVz
KEBbXSwgQFthdHRhY2htZW50LmdldCgpXSk7CisgICAgfQorCisgICAgW3dlYlZpZXcgd2FpdEZv
ckF0dGFjaG1lbnRFbGVtZW50U2l6ZVRvQmVjb21lOkNHU2l6ZU1ha2UoMjE1LCAxNzQpXTsKKyAg
ICBbd2ViVmlldyBfZXhlY3V0ZUVkaXRDb21tYW5kOkAiSW5zZXJ0UGFyYWdyYXBoIiBhcmd1bWVu
dDpuaWwgY29tcGxldGlvbjpuaWxdOworICAgIFt3ZWJWaWV3IF9leGVjdXRlRWRpdENvbW1hbmQ6
QCJJbnNlcnRIVE1MIiBhcmd1bWVudDpAIjxzdHJvbmc+dGV4dDwvc3Ryb25nPiIgY29tcGxldGlv
bjpuaWxdOworICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAi
SW5zZXJ0UGFyYWdyYXBoIiBhcmd1bWVudDpuaWxdOworICAgIFt3ZWJWaWV3IGV4cGVjdEVsZW1l
bnRUYWc6QCJBVFRBQ0hNRU5UIiB0b0NvbWVCZWZvcmU6QCJTVFJPTkciXTsKKworICAgIGF1dG8g
ZHJhZ2dpbmdTaW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFs
bG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAgIFtkcmFnZ2luZ1NpbXVs
YXRvciBydW5Gcm9tOkNHUG9pbnRNYWtlKDI1LCAyNSkgdG86Q0dQb2ludE1ha2UoMjUsIDEyNSld
OworCisgICAgYXR0YWNobWVudCA9IFtbZHJhZ2dpbmdTaW11bGF0b3IgaW5zZXJ0ZWRBdHRhY2ht
ZW50c10gZmlyc3RPYmplY3RdOworICAgIFthdHRhY2htZW50IGV4cGVjdFJlcXVlc3RlZERhdGFU
b0JlOmRhdGEuZ2V0KCldOworICAgIEVYUEVDVF9XS19TVFJFUSgiaWNvbi5wbmciLCBbd2ViVmll
dyB2YWx1ZU9mQXR0cmlidXRlOkAidGl0bGUiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhdHRhY2htZW50
Il0pOworICAgIEVYUEVDVF9XS19TVFJFUSgiaW1hZ2UvcG5nIiwgW3dlYlZpZXcgdmFsdWVPZkF0
dHJpYnV0ZTpAInR5cGUiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhdHRhY2htZW50Il0pOworCisgICAg
W3dlYlZpZXcgZXhwZWN0RWxlbWVudFRhZzpAIlNUUk9ORyIgdG9Db21lQmVmb3JlOkAiQVRUQUNI
TUVOVCJdOworICAgIFtkcmFnZ2luZ1NpbXVsYXRvciBlbmREYXRhVHJhbnNmZXJdOworfQorCiAj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>