<?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>212245</bug_id>
          
          <creation_ts>2020-05-21 18:51:20 -0700</creation_ts>
          <short_desc>DataTransfer.files contains multiple files when pasting a single image with multiple representations</short_desc>
          <delta_ts>2020-08-04 20:45:26 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>jessicap</cc>
    
    <cc>megan_gardner</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>1655187</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-21 18:51:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/60240436&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655191</commentid>
    <comment_count>1</comment_count>
      <attachid>400010</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-21 19:15:16 -0700</bug_when>
    <thetext>Created attachment 400010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655237</commentid>
    <comment_count>2</comment_count>
      <attachid>400010</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-21 21:02:43 -0700</bug_when>
    <thetext>Comment on attachment 400010
Patch

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

&gt; Tools/DumpRenderTree/mac/DumpRenderTreePasteboard.mm:246
&gt; -    _writtenPasteboardItems = adoptNS([[NSMutableArray&lt;NSPasteboardItem *&gt; alloc] initWithCapacity:objects.count]);
&gt; +    auto items = adoptNS([[NSMutableArray&lt;NSPasteboardItem *&gt; alloc] initWithCapacity:objects.count]);

It looks funny to see the type specialization there! But I guess it is fine.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:58
&gt; +    for (NSDictionary &lt;NSString *, NSData *&gt; *typesAndData in items) {

No space before the &lt; ... I /think/?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655238</commentid>
    <comment_count>3</comment_count>
      <attachid>400010</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-21 21:04:38 -0700</bug_when>
    <thetext>Comment on attachment 400010
Patch

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

&gt;&gt; Tools/DumpRenderTree/mac/DumpRenderTreePasteboard.mm:246
&gt;&gt; +    auto items = adoptNS([[NSMutableArray&lt;NSPasteboardItem *&gt; alloc] initWithCapacity:objects.count]);
&gt; 
&gt; It looks funny to see the type specialization there! But I guess it is fine.

😎

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:58
&gt;&gt; +    for (NSDictionary &lt;NSString *, NSData *&gt; *typesAndData in items) {
&gt; 
&gt; No space before the &lt; ... I /think/?

Ah, that’s right — it’s only a space before the &lt; if it’s for a @protocol, IIRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655239</commentid>
    <comment_count>4</comment_count>
      <attachid>400023</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-21 21:05:47 -0700</bug_when>
    <thetext>Created attachment 400023
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655244</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-21 21:42:52 -0700</bug_when>
    <thetext>Committed r262047: &lt;https://trac.webkit.org/changeset/262047&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400023.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677870</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-04 20:45:26 -0700</bug_when>
    <thetext>*** Bug 215145 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400010</attachid>
            <date>2020-05-21 19:15:16 -0700</date>
            <delta_ts>2020-05-21 21:02:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212245-20200521191515.patch</filename>
            <type>text/plain</type>
            <size>13470</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWUzMmI5ZjE4NGM2MTUx
NzdmM2RkYTRiODBmMDM4YzIzYmRmNjQ1ZS4uMTMzZGQ3MGMzZmU4Y2JjMmQwOTE3OWJhNDhhNjVm
OGRjOTJhZWNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA1LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERhdGFUcmFuc2Zl
ci5maWxlcyBjb250YWlucyBtdWx0aXBsZSBmaWxlcyB3aGVuIHBhc3RpbmcgYSBzaW5nbGUgaW1h
Z2Ugd2l0aCBtdWx0aXBsZSByZXByZXNlbnRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjI0NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjAyNDA0MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2hlbiBwYXN0aW5nIG9yIGRyb3BwaW5nIGEgc2luZ2xlIGltYWdlIHRoYXQgaXMgYmFja2Vk
IGJ5IG11bHRpcGxlIHJlcHJlc2VudGF0aW9ucyBpbiBOU1Bhc3RlYm9hcmQgKG9yCisgICAgICAg
IFVJUGFzdGVib2FyZCksIHdlIGN1cnJlbnRseSByZXBvcnQgbW9yZSB0aGFuIG9uZSBgRmlsZWAg
dG8gdGhlIHBhZ2UgdmlhIGBEYXRhVHJhbnNmZXIuZmlsZXNgLiBUaGlzIGlzIGJlY2F1c2UKKyAg
ICAgICAgYFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZEZpbGVSZWFkZXImKWAsIHdoaWNoIGlz
IHJlc3BvbnNpYmxlIGZvciBjb252ZXJ0aW5nIHRoZSBjb250ZW50cyBvZiB0aGUgcGFzdGVib2Fy
ZAorICAgICAgICBpbnRvIGEgbGlzdCBvZiBmaWxlcywgY3VycmVudGx5IGl0ZXJhdGVzIG92ZXIg
ZXZlcnkgcGFzdGVib2FyZCB0eXBlIGFuZCBhZGRzIGVhY2ggb2YgdGhlbSBhcyBhIGZpbGUuIFRo
aXMgaXMKKyAgICAgICAgd3Jvbmcgd2hlbiBhbiBpdGVtIGhhcyBtdWx0aXBsZSB0eXBlIHJlcHJl
c2VudGF0aW9ucy4KKworICAgICAgICBUbyBkaWZmZXJlbnRpYXRlIHRoZSBjYXNlIHdoZXJlIGEg
c2luZ2xlIGl0ZW0gaGFzIG11bHRpcGxlIHJlcHJlc2VudGF0aW9ucyBmcm9tIHRoZSBjYXNlIHdo
ZXJlIGl0IGhhcyBtdWx0aXBsZQorICAgICAgICBwYXN0ZWJvYXJkIGl0ZW1zLCB3ZSB1c2UgYGFs
bFBhc3RlYm9hcmRJdGVtSW5mbygpYCBpbnN0ZWFkIHRvIGdyYWIgYSBwZXItaXRlbSBsaXN0IG9m
IHR5cGVzIGZyb20gdGhlIHBhc3RlYm9hcmQKKyAgICAgICAgb24gQ29jb2EgcGxhdGZvcm1zLCBh
bmQgb25seSBjcmVhdGUgYXQgbW9zdCAxIGZpbGUgcGVyIGl0ZW0gdXNpbmcgdGhlIGhpZ2hlc3Qg
ZmlkZWxpdHkgdHlwZSB0aGF0IGNvbnRhaW5zIGRhdGEuCisKKyAgICAgICAgVGVzdDogUGFzdGVJ
bWFnZS5QYXN0ZUltYWdlV2l0aE11bHRpcGxlUmVwcmVzZW50YXRpb25zCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpyZWFkKToKKwogMjAyMC0wNS0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFNjcm9sbGluZyBzeW5jaHJvbml6YXRpb24g
cGFydCAyOiBIYXZlIHRoZSBzY3JvbGxpbmcgdGhyZWFkIGRldGVjdCB3aGVuIHRoZSBtYWluIHRo
cmVhZCBpcyBzbG93IHRvIHJlc3BvbmQgdG8gc3RhcnQgYSByZW5kZXJpbmcgdXBkYXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KaW5kZXgg
MGY0ZmFhZmRmOWUxNGMyOGI0ODRkZDdkODM4NTFlZDc2Y2Q4MmQxMy4uYmExYWMxY2ZlZjU5OTQ2
Yjc4Nzc5ZjRhZTQ1YjM3MjJhM2FhZTdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQpAQCAtMjI0LDI0ICsyMjQsMjcgQEAgdm9pZCBQ
YXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRGaWxlUmVhZGVyJiByZWFkZXIpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBhdXRvIGNvY29hVHlwZXMgPSByZWFkVHlwZXNXaXRoU2VjdXJp
dHlDaGVjaygpOwotICAgIEhhc2hTZXQ8Y29uc3QgY2hhcio+IGV4aXN0aW5nTUlNRXM7Ci0gICAg
Zm9yIChhdXRvJiBjb2NvYVR5cGUgOiBjb2NvYVR5cGVzKSB7Ci0gICAgICAgIGF1dG8gaW1hZ2VU
eXBlID0gY29jb2FUeXBlVG9JbWFnZVR5cGUoY29jb2FUeXBlKTsKLSAgICAgICAgY29uc3QgY2hh
ciogbWltZVR5cGUgPSBpbWFnZVR5cGVUb01JTUVUeXBlKGltYWdlVHlwZSk7Ci0gICAgICAgIGlm
ICghbWltZVR5cGUpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKGV4aXN0aW5n
TUlNRXMuY29udGFpbnMobWltZVR5cGUpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IGF1dG8gYnVmZmVyID0gcmVhZEJ1ZmZlckZvclR5cGVXaXRoU2VjdXJpdHlDaGVjayhjb2NvYVR5
cGUpOworICAgIGF1dG8gYWxsSW5mbyA9IGFsbFBhc3RlYm9hcmRJdGVtSW5mbygpOworICAgIGlm
ICghYWxsSW5mbykKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaXRlbUluZGV4
ID0gMDsgaXRlbUluZGV4IDwgYWxsSW5mby0+c2l6ZSgpOyArK2l0ZW1JbmRleCkgeworICAgICAg
ICBhdXRvJiBpbmZvID0gYWxsSW5mby0+YXQoaXRlbUluZGV4KTsKKyAgICAgICAgZm9yIChhdXRv
IGNvY29hVHlwZSA6IGluZm8ucGxhdGZvcm1UeXBlc0J5RmlkZWxpdHkpIHsKKyAgICAgICAgICAg
IGF1dG8gaW1hZ2VUeXBlID0gY29jb2FUeXBlVG9JbWFnZVR5cGUoY29jb2FUeXBlKTsKKyAgICAg
ICAgICAgIGF1dG8qIG1pbWVUeXBlID0gaW1hZ2VUeXBlVG9NSU1FVHlwZShpbWFnZVR5cGUpOwor
ICAgICAgICAgICAgaWYgKCFtaW1lVHlwZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIGF1dG8gYnVmZmVyID0gcmVhZEJ1ZmZlcihpdGVtSW5kZXgsIGNvY29hVHlwZSk7
CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICBpZiAoYnVmZmVyICYmIGltYWdlVHlwZSA9PSBJ
bWFnZVR5cGU6OlRJRkYpCi0gICAgICAgICAgICBidWZmZXIgPSBjb252ZXJ0VElGRlRvUE5HKGJ1
ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIGlmIChidWZmZXIgJiYgaW1hZ2VU
eXBlID09IEltYWdlVHlwZTo6VElGRikKKyAgICAgICAgICAgICAgICBidWZmZXIgPSBjb252ZXJ0
VElGRlRvUE5HKGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsKICNlbmRpZgotICAgICAgICBpZiAo
IWJ1ZmZlcikKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBleGlzdGluZ01JTUVzLmFk
ZChtaW1lVHlwZSk7Ci0gICAgICAgIHJlYWRlci5yZWFkQnVmZmVyKGltYWdlVHlwZVRvRmFrZUZp
bGVuYW1lKGltYWdlVHlwZSksIG1pbWVUeXBlLCBidWZmZXIucmVsZWFzZU5vbk51bGwoKSk7Cisg
ICAgICAgICAgICBpZiAoYnVmZmVyKSB7CisgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRCdWZm
ZXIoaW1hZ2VUeXBlVG9GYWtlRmlsZW5hbWUoaW1hZ2VUeXBlKSwgbWltZVR5cGUsIGJ1ZmZlci5y
ZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGRiN2E0NThjM2E5ZjMwMTI3ZmJhNDE2M2ZiYTFmZmE0OTk4MGIw
ZjUuLjAwODU5YWQ5NmU3YjFiYjdjZDAwMDI4YmJjZTgyMjgwYjdiMmMxYTggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAor
MjAyMC0wNS0yMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBEYXRhVHJhbnNmZXIuZmlsZXMgY29udGFpbnMgbXVsdGlwbGUgZmlsZXMgd2hlbiBwYXN0
aW5nIGEgc2luZ2xlIGltYWdlIHdpdGggbXVsdGlwbGUgcmVwcmVzZW50YXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIyNDUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzYwMjQwNDM2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlUGFz
dGVib2FyZC5tbToKKyAgICAgICAgKC1bTG9jYWxQYXN0ZWJvYXJkIF9jbGVhckNvbnRlbnRzV2l0
aG91dFVwZGF0aW5nQ2hhbmdlQ291bnRdKToKKyAgICAgICAgKC1bTG9jYWxQYXN0ZWJvYXJkIF9h
ZGRUeXBlc1dpdGhvdXRVcGRhdGluZ0NoYW5nZUNvdW50Om93bmVyOl0pOgorICAgICAgICAoLVtM
b2NhbFBhc3RlYm9hcmQgd3JpdGVPYmplY3RzOl0pOgorICAgICAgICAoLVtMb2NhbFBhc3RlYm9h
cmQgcGFzdGVib2FyZEl0ZW1zXSk6CisKKyAgICAgICAgQWRqdXN0IER1bXBSZW5kZXJUcmVlJ3Mg
TG9jYWxQYXN0ZWJvYXJkIHNvIHRoYXQgaXQgbGF6aWx5IHBvcHVsYXRlcyB0aGUgcGFzdGVib2Fy
ZCB3aGVuIGNvbnN0cnVjdGluZworICAgICAgICBOU1Bhc3RlYm9hcmRJdGVtcy4gVG8gZG8gdGhp
cywgd2UgbmVlZCB0byBtYWtlIGEgZmV3IGFkanVzdG1lbnRzOgorCisgICAgICAgIDEuICAgICAg
V2hlbiByZWlmeWluZyBOU1Bhc3RlYm9hcmRJdGVtcyBmcm9tIExvY2FsUGFzdGVib2FyZCwgYXNr
IHRoZSBvd25lciAoV2ViSFRNTFZpZXcpIHRvIHByb3ZpZGUgcGFzdGVib2FyZAorICAgICAgICAg
ICAgICAgIGRhdGEgZm9yIGVhY2ggcGFzdGVib2FyZCB0eXBlIHRoYXQgd2FzIHByb21pc2VkIGJ5
IFdlYktpdCwgYnV0IHdhcyBub3QgZWFnZXJseSB3cml0dGVuIHRvIHRoZSBwYXN0ZWJvYXJkLgor
CisgICAgICAgIDIuICAgICAgQ2FjaGUgcGFzdGVib2FyZCBpdGVtcyB0aGF0IHdlcmUgY3JlYXRl
ZCwgc28gdGhhdCB3ZSBkb24ndCByZXBlYXRlZGx5IGFzayBXZWJIVE1MVmlldyB0byBwcm92aWRl
CisgICAgICAgICAgICAgICAgcGFzdGVib2FyZCBkYXRhLiBXZWJIVE1MVmlldyBkb2Vzbid0IGN1
cnJlbnRseSBzdXBwb3J0IHRoaXMsIGFuZCBzdWZmZXJzIGZyb20gYSBidWcgd2hlcmUgVElGRiBk
YXRhIG1heQorICAgICAgICAgICAgICAgIG9ubHkgYmUgcHJvdmlkZWQgb25jZS4gVGhpcyB3YXMg
Zml4ZWQgZm9yIFdlYktpdDIsIGJ1dCBub3QgZm9yIFdlYktpdDEuCisKKyAgICAgICAgMy4gICAg
ICBNYWludGFpbiBhIHNlcGFyYXRlIGhhc2ggbGlzdCBvZiBvcmlnaW5hbCBwYXN0ZWJvYXJkIHR5
cGVzICh3aGljaCBtYXkgbm90IGJlIFVUSXMpIHRoYXQgd2VyZSBoYW5kZWQgdG8KKyAgICAgICAg
ICAgICAgICBMb2NhbFBhc3RlYm9hcmQgYnkgV2ViS2l0LiBXZSB1c2UgdGhlc2Ugb3JpZ2luYWwg
dHlwZXMgaW4gc3RlcCAoMSkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Bhc3RlSW1hZ2UubW06CisKKyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZl
cmlmeSB0aGF0IG9uZSBmaWxlIGlzIGV4cG9zZWQgdmlhIHRoZSBEYXRhVHJhbmZlciB3aGVuIHRo
ZSBwYXN0ZWJvYXJkIGNvbnRhaW5zIGEgc2luZ2xlCisgICAgICAgIGltYWdlIHdpdGggdHdvIGlt
YWdlIHJlcHJlc2VudGF0aW9ucywgYnV0IHR3byBmaWxlcyBhcmUgZXhwb3NlZCB3aGVuIHRoZSBw
YXN0ZWJvYXJkIGNvbnRhaW5zIHR3byBpbWFnZXMsIGVhY2gKKyAgICAgICAgd2l0aCBhIHNpbmds
ZSByZXByZXNlbnRhdGlvbi4KKworICAgICAgICAod3JpdGVJbWFnZURhdGFUb1Bhc3RlYm9hcmQp
OgorCisgICAgICAgIE92ZXJsb2FkIHRoaXMgaGVscGVyIG1ldGhvZCB3aXRoIHR3byBhZGRpdGlv
bmFsIHZhcmlhbnRzOiBvbmUgdGhhdCB0YWtlcyBhIGRpY3Rpb25hcnkgb2YgcGFzdGVib2FyZCB0
eXBlcyB0bworICAgICAgICBkYXRhLCBhbmQgYW5vdGhlciB0aGF0IHRha2VzIGFuIGFycmF5IG9m
IGRpY3Rpb25hcmllcywgZWFjaCByZXByZXNlbnRpbmcgYSBzaW5nbGUgaXRlbSdzIHR5cGVzIGFu
ZCBkYXRhLgorCiAyMDIwLTA1LTIxICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2Nhbmhh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bR1RLXVtXUEVdIEV4cG9zZSBhbmQg
aG9ub3IgdGhlIG1lZGlhIGNvbnRlbnQgdHlwZXMgcmVxdWlyaW5nIGhhcmR3YXJlIHN1cHBvcnQg
c2V0dGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlUGFzdGVib2FyZC5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZVBhc3RlYm9hcmQubW0KaW5kZXggZjkzMWM2YWY1MTM0MTQ0MjM0ZjBiNjc5ZTU0ODdiOWY4ZWYw
YzRlOS4uOTgwNzczNmYzODNkMmVlNzYwMGZiZWNjZWM3NGZlY2U0ODJlYWRkOSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlUGFzdGVib2FyZC5tbQor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLm1t
CkBAIC00NSwxMCArNDUsMTEgQEAKIEBpbnRlcmZhY2UgTG9jYWxQYXN0ZWJvYXJkIDogTlNQYXN0
ZWJvYXJkIHsKICAgICBSZXRhaW5QdHI8aWQ+IF9vd25lcjsKICAgICBSZXRhaW5QdHI8TlNTdHJp
bmc+IF9wYXN0ZWJvYXJkTmFtZTsKLSAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8TlNQYXN0
ZWJvYXJkSXRlbSAqPj4gX3dyaXR0ZW5QYXN0ZWJvYXJkSXRlbXM7CisgICAgUmV0YWluUHRyPE5T
QXJyYXk8TlNQYXN0ZWJvYXJkSXRlbSAqPj4gX2NhY2hlZFBhc3RlYm9hcmRJdGVtczsKICAgICBO
U0ludGVnZXIgX2NoYW5nZUNvdW50OwogCiAgICAgTGlzdEhhc2hTZXQ8UmV0YWluUHRyPENGU3Ry
aW5nUmVmPiwgV1RGOjpSZXRhaW5QdHJPYmplY3RIYXNoPENGU3RyaW5nUmVmPj4gX3R5cGVzOwor
ICAgIExpc3RIYXNoU2V0PFJldGFpblB0cjxDRlN0cmluZ1JlZj4sIFdURjo6UmV0YWluUHRyT2Jq
ZWN0SGFzaDxDRlN0cmluZ1JlZj4+IF9vcmlnaW5hbFR5cGVzOwogICAgIEhhc2hNYXA8UmV0YWlu
UHRyPENGU3RyaW5nUmVmPiwgUmV0YWluUHRyPENGRGF0YVJlZj4sIFdURjo6UmV0YWluUHRyT2Jq
ZWN0SGFzaDxDRlN0cmluZ1JlZj4sIFdURjo6UmV0YWluUHRyT2JqZWN0SGFzaFRyYWl0czxDRlN0
cmluZ1JlZj4+IF9kYXRhOwogfQogCkBAIC0xNDQsOCArMTQ1LDkgQEAgc3RhdGljIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gdG9VVEkoTlNTdHJpbmcgKnR5cGUpCiAKIC0gKHZvaWQpX2NsZWFyQ29u
dGVudHNXaXRob3V0VXBkYXRpbmdDaGFuZ2VDb3VudAogewotICAgIF93cml0dGVuUGFzdGVib2Fy
ZEl0ZW1zID0gbmlsOworICAgIF9jYWNoZWRQYXN0ZWJvYXJkSXRlbXMgPSBuaWw7CiAgICAgX3R5
cGVzLmNsZWFyKCk7CisgICAgX29yaWdpbmFsVHlwZXMuY2xlYXIoKTsKICAgICBfZGF0YS5jbGVh
cigpOwogfQogCkBAIC0xNjgsOCArMTcwLDEwIEBAIC0gKHZvaWQpX2FkZFR5cGVzV2l0aG91dFVw
ZGF0aW5nQ2hhbmdlQ291bnQ6KE5TQXJyYXkgKiluZXdUeXBlcyBvd25lcjooaWQpbmV3T3duCiB7
CiAgICAgX293bmVyID0gbmV3T3duZXI7CiAKLSAgICBmb3IgKE5TU3RyaW5nICp0eXBlIGluIG5l
d1R5cGVzKQorICAgIGZvciAoTlNTdHJpbmcgKnR5cGUgaW4gbmV3VHlwZXMpIHsKICAgICAgICAg
X3R5cGVzLmFkZCh0b1VUSSh0eXBlKSk7CisgICAgICAgIF9vcmlnaW5hbFR5cGVzLmFkZCgoX19i
cmlkZ2UgQ0ZTdHJpbmdSZWYpdHlwZSk7CisgICAgfQogfQogCiAtIChOU0ludGVnZXIpY2hhbmdl
Q291bnQKQEAgLTIzOSwxMCArMjQzLDEwIEBAIC0gKEJPT0wpc2V0U3RyaW5nOihOU1N0cmluZyAq
KXN0cmluZyBmb3JUeXBlOihOU1N0cmluZyAqKWRhdGFUeXBlCiAKIC0gKEJPT0wpd3JpdGVPYmpl
Y3RzOihOU0FycmF5PGlkIDxOU1Bhc3RlYm9hcmRXcml0aW5nPj4gKilvYmplY3RzCiB7Ci0gICAg
X3dyaXR0ZW5QYXN0ZWJvYXJkSXRlbXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXk8TlNQYXN0
ZWJvYXJkSXRlbSAqPiBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpvYmplY3RzLmNvdW50XSk7Cisg
ICAgYXV0byBpdGVtcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheTxOU1Bhc3RlYm9hcmRJdGVt
ICo+IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5Om9iamVjdHMuY291bnRdKTsKICAgICBmb3IgKGlk
IDxOU1Bhc3RlYm9hcmRXcml0aW5nPiBvYmplY3QgaW4gb2JqZWN0cykgewogICAgICAgICBBU1NF
UlQoW29iamVjdCBpc0tpbmRPZkNsYXNzOk5TUGFzdGVib2FyZEl0ZW0uY2xhc3NdKTsKLSAgICAg
ICAgW193cml0dGVuUGFzdGVib2FyZEl0ZW1zIGFkZE9iamVjdDooTlNQYXN0ZWJvYXJkSXRlbSAq
KW9iamVjdF07CisgICAgICAgIFtpdGVtcyBhZGRPYmplY3Q6KE5TUGFzdGVib2FyZEl0ZW0gKilv
YmplY3RdOwogICAgICAgICBmb3IgKE5TU3RyaW5nICp0eXBlIGluIFtvYmplY3Qgd3JpdGFibGVU
eXBlc0ZvclBhc3RlYm9hcmQ6c2VsZl0pIHsKICAgICAgICAgICAgIFtzZWxmIGFkZFR5cGVzOkBb
IHR5cGUgXSBvd25lcjpzZWxmXTsKIApAQCAtMjU0LDIxICsyNTgsMjkgQEAgLSAoQk9PTCl3cml0
ZU9iamVjdHM6KE5TQXJyYXk8aWQgPE5TUGFzdGVib2FyZFdyaXRpbmc+PiAqKW9iamVjdHMKICAg
ICAgICAgfQogICAgIH0KIAorICAgIF9jYWNoZWRQYXN0ZWJvYXJkSXRlbXMgPSBpdGVtcy5nZXQo
KTsKICAgICByZXR1cm4gWUVTOwogfQogCiAtIChOU0FycmF5PE5TUGFzdGVib2FyZEl0ZW0gKj4g
KilwYXN0ZWJvYXJkSXRlbXMKIHsKLSAgICBpZiAoX3dyaXR0ZW5QYXN0ZWJvYXJkSXRlbXMpCi0g
ICAgICAgIHJldHVybiBfd3JpdHRlblBhc3RlYm9hcmRJdGVtcy5nZXQoKTsKKyAgICBpZiAoX2Nh
Y2hlZFBhc3RlYm9hcmRJdGVtcykKKyAgICAgICAgcmV0dXJuIF9jYWNoZWRQYXN0ZWJvYXJkSXRl
bXMuZ2V0KCk7CiAKICAgICBhdXRvIGl0ZW0gPSBhZG9wdE5TKFtbTlNQYXN0ZWJvYXJkSXRlbSBh
bGxvY10gaW5pdF0pOworICAgIGZvciAoYXV0byYgdHlwZSA6IF9vcmlnaW5hbFR5cGVzKSB7Cisg
ICAgICAgIGlmICghX2RhdGEuY29udGFpbnModG9VVEkoKF9fYnJpZGdlIE5TU3RyaW5nICopdHlw
ZS5nZXQoKSkpKQorICAgICAgICAgICAgW19vd25lciBwYXN0ZWJvYXJkOnNlbGYgcHJvdmlkZURh
dGFGb3JUeXBlOihfX2JyaWRnZSBOU1N0cmluZyAqKXR5cGUuZ2V0KCldOworICAgIH0KKwogICAg
IGZvciAoY29uc3QgYXV0byYgdHlwZUFuZERhdGEgOiBfZGF0YSkgewogICAgICAgICBOU0RhdGEg
KmRhdGEgPSAoX19icmlkZ2UgTlNEYXRhICopdHlwZUFuZERhdGEudmFsdWUuZ2V0KCk7CiAgICAg
ICAgIE5TU3RyaW5nICp0eXBlID0gKF9fYnJpZGdlIE5TU3RyaW5nICopdHlwZUFuZERhdGEua2V5
LmdldCgpOwogICAgICAgICBbaXRlbSBzZXREYXRhOmRhdGEgZm9yVHlwZTpbTlNQYXN0ZWJvYXJk
IF9tb2Rlcm5QYXN0ZWJvYXJkVHlwZTp0eXBlXV07CiAgICAgfQotICAgIHJldHVybiBAWyBpdGVt
LmdldCgpIF07CisKKyAgICBfY2FjaGVkUGFzdGVib2FyZEl0ZW1zID0gQFsgaXRlbS5nZXQoKSBd
OworICAgIHJldHVybiBfY2FjaGVkUGFzdGVib2FyZEl0ZW1zLmdldCgpOwogfQogCiBAZW5kCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Bhc3RlSW1h
Z2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Bhc3RlSW1hZ2Uu
bW0KaW5kZXggMTUyZTFhY2JjY2Y0NWJhZTAyZjI5YjBiOGQ4ZmYxZmM3YWY1YzU2MC4uYmNhZGE1
MmViZTA3ZDhiMzhkMTYzZjAwN2I5ZjUzMDNiNDg5YmVlYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QYXN0ZUltYWdlLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGFzdGVJbWFnZS5tbQpAQCAtMzcsMTYgKzM3
LDUwIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKKwogdm9pZCB3cml0ZUltYWdlRGF0
YVRvUGFzdGVib2FyZChOU1N0cmluZyAqdHlwZSwgTlNEYXRhICpkYXRhKQogewotICAgIFtbTlNQ
YXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXSBkZWNsYXJlVHlwZXM6QFt0eXBlXSBvd25lcjpu
aWxdOwotICAgIFtbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXSBzZXREYXRhOmRhdGEg
Zm9yVHlwZTp0eXBlXTsKKyAgICBbTlNQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkIGRlY2xh
cmVUeXBlczpAW3R5cGVdIG93bmVyOm5pbF07CisgICAgW05TUGFzdGVib2FyZC5nZW5lcmFsUGFz
dGVib2FyZCBzZXREYXRhOmRhdGEgZm9yVHlwZTp0eXBlXTsKK30KKwordm9pZCB3cml0ZUltYWdl
RGF0YVRvUGFzdGVib2FyZChOU0RpY3Rpb25hcnkgPE5TU3RyaW5nICosIE5TRGF0YSAqPiAqdHlw
ZXNBbmREYXRhKQoreworICAgIFtOU1Bhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQgZGVjbGFy
ZVR5cGVzOnR5cGVzQW5kRGF0YS5hbGxLZXlzIG93bmVyOm5pbF07CisgICAgZm9yIChOU1N0cmlu
ZyAqdHlwZSBpbiB0eXBlc0FuZERhdGEpCisgICAgICAgIFtOU1Bhc3RlYm9hcmQuZ2VuZXJhbFBh
c3RlYm9hcmQgc2V0RGF0YTp0eXBlc0FuZERhdGFbdHlwZV0gZm9yVHlwZTp0eXBlXTsKK30KKwor
dm9pZCB3cml0ZUltYWdlRGF0YVRvUGFzdGVib2FyZChOU0FycmF5PE5TRGljdGlvbmFyeSA8TlNT
dHJpbmcgKiwgTlNEYXRhICo+ICo+ICppdGVtcykKK3sKKyAgICBbTlNQYXN0ZWJvYXJkLmdlbmVy
YWxQYXN0ZWJvYXJkIGNsZWFyQ29udGVudHNdOworICAgIGF1dG8gcGFzdGVib2FyZEl0ZW1zID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5Oml0ZW1zLmNv
dW50XSk7CisgICAgZm9yIChOU0RpY3Rpb25hcnkgPE5TU3RyaW5nICosIE5TRGF0YSAqPiAqdHlw
ZXNBbmREYXRhIGluIGl0ZW1zKSB7CisgICAgICAgIGF1dG8gcGFzdGVib2FyZEl0ZW0gPSBhZG9w
dE5TKFtbTlNQYXN0ZWJvYXJkSXRlbSBhbGxvY10gaW5pdF0pOworICAgICAgICBmb3IgKE5TU3Ry
aW5nICp0eXBlIGluIHR5cGVzQW5kRGF0YSkKKyAgICAgICAgICAgIFtwYXN0ZWJvYXJkSXRlbSBz
ZXREYXRhOnR5cGVzQW5kRGF0YVt0eXBlXSBmb3JUeXBlOnR5cGVdOworICAgICAgICBbcGFzdGVi
b2FyZEl0ZW1zIGFkZE9iamVjdDpwYXN0ZWJvYXJkSXRlbS5nZXQoKV07CisgICAgfQorICAgIFtO
U1Bhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQgd3JpdGVPYmplY3RzOnBhc3RlYm9hcmRJdGVt
cy5nZXQoKV07CiB9CisKICNlbHNlCisKIHZvaWQgd3JpdGVJbWFnZURhdGFUb1Bhc3RlYm9hcmQo
TlNTdHJpbmcgKnR5cGUsIE5TRGF0YSAqZGF0YSkKIHsKLSAgICBbW1VJUGFzdGVib2FyZCBnZW5l
cmFsUGFzdGVib2FyZF0gc2V0SXRlbXM6QFtAeyB0eXBlOiBkYXRhIH1dXTsKKyAgICBVSVBhc3Rl
Ym9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQuaXRlbXMgPSBAWyBAeyB0eXBlOiBkYXRhIH0gXTsKK30K
Kwordm9pZCB3cml0ZUltYWdlRGF0YVRvUGFzdGVib2FyZChOU0RpY3Rpb25hcnkgPE5TU3RyaW5n
ICosIE5TRGF0YSAqPiAqdHlwZXNBbmREYXRhKQoreworICAgIFVJUGFzdGVib2FyZC5nZW5lcmFs
UGFzdGVib2FyZC5pdGVtcyA9IEBbIHR5cGVzQW5kRGF0YSBdOworfQorCit2b2lkIHdyaXRlSW1h
Z2VEYXRhVG9QYXN0ZWJvYXJkKE5TQXJyYXk8TlNEaWN0aW9uYXJ5IDxOU1N0cmluZyAqLCBOU0Rh
dGEgKj4gKj4gKml0ZW1zKQoreworICAgIFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZC5p
dGVtcyA9IGl0ZW1zOwogfQorCiAjZW5kaWYKIAogQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IChQ
YXN0ZUltYWdlKQpAQCAtMTM3LDYgKzE3MSwzMCBAQCBURVNUKFBhc3RlSW1hZ2UsIFBhc3RlUE5H
SW1hZ2UpCiAgICAgRVhQRUNUX1dLX1NUUkVRKCIyMDAiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiaW1hZ2VFbGVtZW50LndpZHRoIl0pOwogfQogCitURVNUKFBhc3Rl
SW1hZ2UsIFBhc3RlSW1hZ2VXaXRoTXVsdGlwbGVSZXByZXNlbnRhdGlvbnMpCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA0MDAsIDQwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZFRlc3RQYWdlTmFtZWQ6QCJwYXN0ZS1pbWFnZSJdOworCisgICAgYXV0byBwbmdEYXRhID0g
W05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZGaWxlOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gcGF0
aEZvclJlc291cmNlOkAic3Vuc2V0LWluLWN1cGVydGluby0yMDBweCIgb2ZUeXBlOkAicG5nIiBp
bkRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIGF1dG8ganBlZ0Rh
dGEgPSBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBwYXRoRm9yUmVzb3VyY2U6QCJzdW5zZXQtaW4tY3VwZXJ0aW5vLTYwMHB4IiBvZlR5cGU6QCJq
cGciIGluRGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgd3JpdGVJ
bWFnZURhdGFUb1Bhc3RlYm9hcmQoQHsKKyAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa1VU
VHlwZVBORyA6IHBuZ0RhdGEsCisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVK
UEVHIDoganBlZ0RhdGEKKyAgICB9KTsKKyAgICBbd2ViVmlldyBwYXN0ZTpuaWxdOworCisgICAg
RVhQRUNUX1dLX1NUUkVRKCIxIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGgiXSk7CisKKyAgICB3cml0ZUltYWdlRGF0YVRv
UGFzdGVib2FyZChAWworICAgICAgICBAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlUE5H
IDogcG5nRGF0YSB9LAorICAgICAgICBAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlSlBF
RyA6IGpwZWdEYXRhIH0KKyAgICBdKTsKKyAgICBbd2ViVmlldyBwYXN0ZTpuaWxdOworCisgICAg
RVhQRUNUX1dLX1NUUkVRKCIyIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGgiXSk7Cit9CisKIFRFU1QoUGFzdGVJbWFnZSwg
UmV2ZWFsU2VsZWN0aW9uQWZ0ZXJQYXN0aW5nSW1hZ2UpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA0MDAsIDQwMCldKTsK
</data>
<flag name="review"
          id="415437"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400023</attachid>
            <date>2020-05-21 21:05:47 -0700</date>
            <delta_ts>2020-05-21 21:42:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212245-20200521210546.patch</filename>
            <type>text/plain</type>
            <size>13461</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWUzMmI5ZjE4NGM2MTUx
NzdmM2RkYTRiODBmMDM4YzIzYmRmNjQ1ZS4uMWM0NzhhODAxNGExM2Y3MzJjODU0MTdlN2UxN2I5
YmY1NDFhYjFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA1LTIxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERhdGFUcmFuc2Zl
ci5maWxlcyBjb250YWlucyBtdWx0aXBsZSBmaWxlcyB3aGVuIHBhc3RpbmcgYSBzaW5nbGUgaW1h
Z2Ugd2l0aCBtdWx0aXBsZSByZXByZXNlbnRhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjI0NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjAyNDA0MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBX
aGVuIHBhc3Rpbmcgb3IgZHJvcHBpbmcgYSBzaW5nbGUgaW1hZ2UgdGhhdCBpcyBiYWNrZWQgYnkg
bXVsdGlwbGUgcmVwcmVzZW50YXRpb25zIGluIE5TUGFzdGVib2FyZCAob3IKKyAgICAgICAgVUlQ
YXN0ZWJvYXJkKSwgd2UgY3VycmVudGx5IHJlcG9ydCBtb3JlIHRoYW4gb25lIGBGaWxlYCB0byB0
aGUgcGFnZSB2aWEgYERhdGFUcmFuc2Zlci5maWxlc2AuIFRoaXMgaXMgYmVjYXVzZQorICAgICAg
ICBgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkRmlsZVJlYWRlciYpYCwgd2hpY2ggaXMgcmVz
cG9uc2libGUgZm9yIGNvbnZlcnRpbmcgdGhlIGNvbnRlbnRzIG9mIHRoZSBwYXN0ZWJvYXJkCisg
ICAgICAgIGludG8gYSBsaXN0IG9mIGZpbGVzLCBjdXJyZW50bHkgaXRlcmF0ZXMgb3ZlciBldmVy
eSBwYXN0ZWJvYXJkIHR5cGUgYW5kIGFkZHMgZWFjaCBvZiB0aGVtIGFzIGEgZmlsZS4gVGhpcyBp
cworICAgICAgICB3cm9uZyB3aGVuIGFuIGl0ZW0gaGFzIG11bHRpcGxlIHR5cGUgcmVwcmVzZW50
YXRpb25zLgorCisgICAgICAgIFRvIGRpZmZlcmVudGlhdGUgdGhlIGNhc2Ugd2hlcmUgYSBzaW5n
bGUgaXRlbSBoYXMgbXVsdGlwbGUgcmVwcmVzZW50YXRpb25zIGZyb20gdGhlIGNhc2Ugd2hlcmUg
aXQgaGFzIG11bHRpcGxlCisgICAgICAgIHBhc3RlYm9hcmQgaXRlbXMsIHdlIHVzZSBgYWxsUGFz
dGVib2FyZEl0ZW1JbmZvKClgIGluc3RlYWQgdG8gZ3JhYiBhIHBlci1pdGVtIGxpc3Qgb2YgdHlw
ZXMgZnJvbSB0aGUgcGFzdGVib2FyZAorICAgICAgICBvbiBDb2NvYSBwbGF0Zm9ybXMsIGFuZCBv
bmx5IGNyZWF0ZSBhdCBtb3N0IDEgZmlsZSBwZXIgaXRlbSB1c2luZyB0aGUgaGlnaGVzdCBmaWRl
bGl0eSB0eXBlIHRoYXQgY29udGFpbnMgZGF0YS4KKworICAgICAgICBUZXN0OiBQYXN0ZUltYWdl
LlBhc3RlSW1hZ2VXaXRoTXVsdGlwbGVSZXByZXNlbnRhdGlvbnMKKworICAgICAgICAqIHBsYXRm
b3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmQ6OnJlYWQpOgorCiAyMDIwLTA1LTIxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFttYWNPU10gU2Nyb2xsaW5nIHN5bmNocm9uaXphdGlvbiBwYXJ0
IDI6IEhhdmUgdGhlIHNjcm9sbGluZyB0aHJlYWQgZGV0ZWN0IHdoZW4gdGhlIG1haW4gdGhyZWFk
IGlzIHNsb3cgdG8gcmVzcG9uZCB0byBzdGFydCBhIHJlbmRlcmluZyB1cGRhdGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQppbmRleCAwZjRm
YWFmZGY5ZTE0YzI4YjQ4NGRkN2Q4Mzg1MWVkNzZjZDgyZDEzLi5iYTFhYzFjZmVmNTk5NDZiNzg3
NzlmNGFlNDViMzcyMmEzYWFlN2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvUGFzdGVib2FyZENvY29hLm1tCkBAIC0yMjQsMjQgKzIyNCwyNyBAQCB2b2lkIFBhc3Rl
Ym9hcmQ6OnJlYWQoUGFzdGVib2FyZEZpbGVSZWFkZXImIHJlYWRlcikKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGF1dG8gY29jb2FUeXBlcyA9IHJlYWRUeXBlc1dpdGhTZWN1cml0eUNo
ZWNrKCk7Ci0gICAgSGFzaFNldDxjb25zdCBjaGFyKj4gZXhpc3RpbmdNSU1FczsKLSAgICBmb3Ig
KGF1dG8mIGNvY29hVHlwZSA6IGNvY29hVHlwZXMpIHsKLSAgICAgICAgYXV0byBpbWFnZVR5cGUg
PSBjb2NvYVR5cGVUb0ltYWdlVHlwZShjb2NvYVR5cGUpOwotICAgICAgICBjb25zdCBjaGFyKiBt
aW1lVHlwZSA9IGltYWdlVHlwZVRvTUlNRVR5cGUoaW1hZ2VUeXBlKTsKLSAgICAgICAgaWYgKCFt
aW1lVHlwZSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoZXhpc3RpbmdNSU1F
cy5jb250YWlucyhtaW1lVHlwZSkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0
byBidWZmZXIgPSByZWFkQnVmZmVyRm9yVHlwZVdpdGhTZWN1cml0eUNoZWNrKGNvY29hVHlwZSk7
CisgICAgYXV0byBhbGxJbmZvID0gYWxsUGFzdGVib2FyZEl0ZW1JbmZvKCk7CisgICAgaWYgKCFh
bGxJbmZvKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBpdGVtSW5kZXggPSAw
OyBpdGVtSW5kZXggPCBhbGxJbmZvLT5zaXplKCk7ICsraXRlbUluZGV4KSB7CisgICAgICAgIGF1
dG8mIGluZm8gPSBhbGxJbmZvLT5hdChpdGVtSW5kZXgpOworICAgICAgICBmb3IgKGF1dG8gY29j
b2FUeXBlIDogaW5mby5wbGF0Zm9ybVR5cGVzQnlGaWRlbGl0eSkgeworICAgICAgICAgICAgYXV0
byBpbWFnZVR5cGUgPSBjb2NvYVR5cGVUb0ltYWdlVHlwZShjb2NvYVR5cGUpOworICAgICAgICAg
ICAgYXV0byogbWltZVR5cGUgPSBpbWFnZVR5cGVUb01JTUVUeXBlKGltYWdlVHlwZSk7CisgICAg
ICAgICAgICBpZiAoIW1pbWVUeXBlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgYXV0byBidWZmZXIgPSByZWFkQnVmZmVyKGl0ZW1JbmRleCwgY29jb2FUeXBlKTsKICNp
ZiBQTEFURk9STShNQUMpCi0gICAgICAgIGlmIChidWZmZXIgJiYgaW1hZ2VUeXBlID09IEltYWdl
VHlwZTo6VElGRikKLSAgICAgICAgICAgIGJ1ZmZlciA9IGNvbnZlcnRUSUZGVG9QTkcoYnVmZmVy
LnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgaWYgKGJ1ZmZlciAmJiBpbWFnZVR5cGUg
PT0gSW1hZ2VUeXBlOjpUSUZGKQorICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGNvbnZlcnRUSUZG
VG9QTkcoYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkpOwogI2VuZGlmCi0gICAgICAgIGlmICghYnVm
ZmVyKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGV4aXN0aW5nTUlNRXMuYWRkKG1p
bWVUeXBlKTsKLSAgICAgICAgcmVhZGVyLnJlYWRCdWZmZXIoaW1hZ2VUeXBlVG9GYWtlRmlsZW5h
bWUoaW1hZ2VUeXBlKSwgbWltZVR5cGUsIGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAg
ICAgICAgIGlmIChidWZmZXIpIHsKKyAgICAgICAgICAgICAgICByZWFkZXIucmVhZEJ1ZmZlcihp
bWFnZVR5cGVUb0Zha2VGaWxlbmFtZShpbWFnZVR5cGUpLCBtaW1lVHlwZSwgYnVmZmVyLnJlbGVh
c2VOb25OdWxsKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICB9CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggZGI3YTQ1OGMzYTlmMzAxMjdmYmE0MTYzZmJhMWZmYTQ5OTgwYjBmNS4u
YTQ3MmFhYjYzYzA1OTJlZWFiNjJkNDZkMzkxYWU4NWI2ZjY1YmZiMSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIw
LTA1LTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IERhdGFUcmFuc2Zlci5maWxlcyBjb250YWlucyBtdWx0aXBsZSBmaWxlcyB3aGVuIHBhc3Rpbmcg
YSBzaW5nbGUgaW1hZ2Ugd2l0aCBtdWx0aXBsZSByZXByZXNlbnRhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjI0NQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjAyNDA0MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZVBhc3RlYm9hcmQu
bW06CisgICAgICAgICgtW0xvY2FsUGFzdGVib2FyZCBfY2xlYXJDb250ZW50c1dpdGhvdXRVcGRh
dGluZ0NoYW5nZUNvdW50XSk6CisgICAgICAgICgtW0xvY2FsUGFzdGVib2FyZCBfYWRkVHlwZXNX
aXRob3V0VXBkYXRpbmdDaGFuZ2VDb3VudDpvd25lcjpdKToKKyAgICAgICAgKC1bTG9jYWxQYXN0
ZWJvYXJkIHdyaXRlT2JqZWN0czpdKToKKyAgICAgICAgKC1bTG9jYWxQYXN0ZWJvYXJkIHBhc3Rl
Ym9hcmRJdGVtc10pOgorCisgICAgICAgIEFkanVzdCBEdW1wUmVuZGVyVHJlZSdzIExvY2FsUGFz
dGVib2FyZCBzbyB0aGF0IGl0IGxhemlseSBwb3B1bGF0ZXMgdGhlIHBhc3RlYm9hcmQgd2hlbiBj
b25zdHJ1Y3RpbmcKKyAgICAgICAgTlNQYXN0ZWJvYXJkSXRlbXMuIFRvIGRvIHRoaXMsIHdlIG5l
ZWQgdG8gbWFrZSBhIGZldyBhZGp1c3RtZW50czoKKworICAgICAgICAxLiAgICAgIFdoZW4gcmVp
ZnlpbmcgTlNQYXN0ZWJvYXJkSXRlbXMgZnJvbSBMb2NhbFBhc3RlYm9hcmQsIGFzayB0aGUgb3du
ZXIgKFdlYkhUTUxWaWV3KSB0byBwcm92aWRlIHBhc3RlYm9hcmQKKyAgICAgICAgICAgICAgICBk
YXRhIGZvciBlYWNoIHBhc3RlYm9hcmQgdHlwZSB0aGF0IHdhcyBwcm9taXNlZCBieSBXZWJLaXQs
IGJ1dCB3YXMgbm90IGVhZ2VybHkgd3JpdHRlbiB0byB0aGUgcGFzdGVib2FyZC4KKworICAgICAg
ICAyLiAgICAgIENhY2hlIHBhc3RlYm9hcmQgaXRlbXMgdGhhdCB3ZXJlIGNyZWF0ZWQsIHNvIHRo
YXQgd2UgZG9uJ3QgcmVwZWF0ZWRseSBhc2sgV2ViSFRNTFZpZXcgdG8gcHJvdmlkZQorICAgICAg
ICAgICAgICAgIHBhc3RlYm9hcmQgZGF0YS4gV2ViSFRNTFZpZXcgZG9lc24ndCBjdXJyZW50bHkg
c3VwcG9ydCB0aGlzLCBhbmQgc3VmZmVycyBmcm9tIGEgYnVnIHdoZXJlIFRJRkYgZGF0YSBtYXkK
KyAgICAgICAgICAgICAgICBvbmx5IGJlIHByb3ZpZGVkIG9uY2UuIFRoaXMgd2FzIGZpeGVkIGZv
ciBXZWJLaXQyLCBidXQgbm90IGZvciBXZWJLaXQxLgorCisgICAgICAgIDMuICAgICAgTWFpbnRh
aW4gYSBzZXBhcmF0ZSBoYXNoIGxpc3Qgb2Ygb3JpZ2luYWwgcGFzdGVib2FyZCB0eXBlcyAod2hp
Y2ggbWF5IG5vdCBiZSBVVElzKSB0aGF0IHdlcmUgaGFuZGVkIHRvCisgICAgICAgICAgICAgICAg
TG9jYWxQYXN0ZWJvYXJkIGJ5IFdlYktpdC4gV2UgdXNlIHRoZXNlIG9yaWdpbmFsIHR5cGVzIGlu
IHN0ZXAgKDEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
YXN0ZUltYWdlLm1tOgorCisgICAgICAgIEFkZCBhIG5ldyBBUEkgdGVzdCB0byB2ZXJpZnkgdGhh
dCBvbmUgZmlsZSBpcyBleHBvc2VkIHZpYSB0aGUgRGF0YVRyYW5mZXIgd2hlbiB0aGUgcGFzdGVi
b2FyZCBjb250YWlucyBhIHNpbmdsZQorICAgICAgICBpbWFnZSB3aXRoIHR3byBpbWFnZSByZXBy
ZXNlbnRhdGlvbnMsIGJ1dCB0d28gZmlsZXMgYXJlIGV4cG9zZWQgd2hlbiB0aGUgcGFzdGVib2Fy
ZCBjb250YWlucyB0d28gaW1hZ2VzLCBlYWNoCisgICAgICAgIHdpdGggYSBzaW5nbGUgcmVwcmVz
ZW50YXRpb24uCisKKyAgICAgICAgKHdyaXRlSW1hZ2VEYXRhVG9QYXN0ZWJvYXJkKToKKworICAg
ICAgICBPdmVybG9hZCB0aGlzIGhlbHBlciBtZXRob2Qgd2l0aCB0d28gYWRkaXRpb25hbCB2YXJp
YW50czogb25lIHRoYXQgdGFrZXMgYSBkaWN0aW9uYXJ5IG9mIHBhc3RlYm9hcmQgdHlwZXMgdG8K
KyAgICAgICAgZGF0YSwgYW5kIGFub3RoZXIgdGhhdCB0YWtlcyBhbiBhcnJheSBvZiBkaWN0aW9u
YXJpZXMsIGVhY2ggcmVwcmVzZW50aW5nIGEgc2luZ2xlIGl0ZW0ncyB0eXBlcyBhbmQgZGF0YS4K
KwogMjAyMC0wNS0yMSAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0dUS11bV1BFXSBFeHBvc2UgYW5kIGhvbm9yIHRo
ZSBtZWRpYSBjb250ZW50IHR5cGVzIHJlcXVpcmluZyBoYXJkd2FyZSBzdXBwb3J0IHNldHRpbmcK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZVBhc3Rl
Ym9hcmQubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVQYXN0ZWJv
YXJkLm1tCmluZGV4IGY5MzFjNmFmNTEzNDE0NDIzNGYwYjY3OWU1NDg3YjlmOGVmMGM0ZTkuLjk4
MDc3MzZmMzgzZDJlZTc2MDBmYmVjY2VjNzRmZWNlNDgyZWFkZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZVBhc3RlYm9hcmQubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlUGFzdGVib2FyZC5tbQpAQCAtNDUs
MTAgKzQ1LDExIEBACiBAaW50ZXJmYWNlIExvY2FsUGFzdGVib2FyZCA6IE5TUGFzdGVib2FyZCB7
CiAgICAgUmV0YWluUHRyPGlkPiBfb3duZXI7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfcGFz
dGVib2FyZE5hbWU7Ci0gICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PE5TUGFzdGVib2FyZEl0
ZW0gKj4+IF93cml0dGVuUGFzdGVib2FyZEl0ZW1zOworICAgIFJldGFpblB0cjxOU0FycmF5PE5T
UGFzdGVib2FyZEl0ZW0gKj4+IF9jYWNoZWRQYXN0ZWJvYXJkSXRlbXM7CiAgICAgTlNJbnRlZ2Vy
IF9jaGFuZ2VDb3VudDsKIAogICAgIExpc3RIYXNoU2V0PFJldGFpblB0cjxDRlN0cmluZ1JlZj4s
IFdURjo6UmV0YWluUHRyT2JqZWN0SGFzaDxDRlN0cmluZ1JlZj4+IF90eXBlczsKKyAgICBMaXN0
SGFzaFNldDxSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+LCBXVEY6OlJldGFpblB0ck9iamVjdEhhc2g8
Q0ZTdHJpbmdSZWY+PiBfb3JpZ2luYWxUeXBlczsKICAgICBIYXNoTWFwPFJldGFpblB0cjxDRlN0
cmluZ1JlZj4sIFJldGFpblB0cjxDRkRhdGFSZWY+LCBXVEY6OlJldGFpblB0ck9iamVjdEhhc2g8
Q0ZTdHJpbmdSZWY+LCBXVEY6OlJldGFpblB0ck9iamVjdEhhc2hUcmFpdHM8Q0ZTdHJpbmdSZWY+
PiBfZGF0YTsKIH0KIApAQCAtMTQ0LDggKzE0NSw5IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+IHRvVVRJKE5TU3RyaW5nICp0eXBlKQogCiAtICh2b2lkKV9jbGVhckNvbnRlbnRzV2l0
aG91dFVwZGF0aW5nQ2hhbmdlQ291bnQKIHsKLSAgICBfd3JpdHRlblBhc3RlYm9hcmRJdGVtcyA9
IG5pbDsKKyAgICBfY2FjaGVkUGFzdGVib2FyZEl0ZW1zID0gbmlsOwogICAgIF90eXBlcy5jbGVh
cigpOworICAgIF9vcmlnaW5hbFR5cGVzLmNsZWFyKCk7CiAgICAgX2RhdGEuY2xlYXIoKTsKIH0K
IApAQCAtMTY4LDggKzE3MCwxMCBAQCAtICh2b2lkKV9hZGRUeXBlc1dpdGhvdXRVcGRhdGluZ0No
YW5nZUNvdW50OihOU0FycmF5ICopbmV3VHlwZXMgb3duZXI6KGlkKW5ld093bgogewogICAgIF9v
d25lciA9IG5ld093bmVyOwogCi0gICAgZm9yIChOU1N0cmluZyAqdHlwZSBpbiBuZXdUeXBlcykK
KyAgICBmb3IgKE5TU3RyaW5nICp0eXBlIGluIG5ld1R5cGVzKSB7CiAgICAgICAgIF90eXBlcy5h
ZGQodG9VVEkodHlwZSkpOworICAgICAgICBfb3JpZ2luYWxUeXBlcy5hZGQoKF9fYnJpZGdlIENG
U3RyaW5nUmVmKXR5cGUpOworICAgIH0KIH0KIAogLSAoTlNJbnRlZ2VyKWNoYW5nZUNvdW50CkBA
IC0yMzksMTAgKzI0MywxMCBAQCAtIChCT09MKXNldFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcg
Zm9yVHlwZTooTlNTdHJpbmcgKilkYXRhVHlwZQogCiAtIChCT09MKXdyaXRlT2JqZWN0czooTlNB
cnJheTxpZCA8TlNQYXN0ZWJvYXJkV3JpdGluZz4+ICopb2JqZWN0cwogewotICAgIF93cml0dGVu
UGFzdGVib2FyZEl0ZW1zID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5PE5TUGFzdGVib2FyZEl0
ZW0gKj4gYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6b2JqZWN0cy5jb3VudF0pOworICAgIGF1dG8g
aXRlbXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXk8TlNQYXN0ZWJvYXJkSXRlbSAqPiBhbGxv
Y10gaW5pdFdpdGhDYXBhY2l0eTpvYmplY3RzLmNvdW50XSk7CiAgICAgZm9yIChpZCA8TlNQYXN0
ZWJvYXJkV3JpdGluZz4gb2JqZWN0IGluIG9iamVjdHMpIHsKICAgICAgICAgQVNTRVJUKFtvYmpl
Y3QgaXNLaW5kT2ZDbGFzczpOU1Bhc3RlYm9hcmRJdGVtLmNsYXNzXSk7Ci0gICAgICAgIFtfd3Jp
dHRlblBhc3RlYm9hcmRJdGVtcyBhZGRPYmplY3Q6KE5TUGFzdGVib2FyZEl0ZW0gKilvYmplY3Rd
OworICAgICAgICBbaXRlbXMgYWRkT2JqZWN0OihOU1Bhc3RlYm9hcmRJdGVtICopb2JqZWN0XTsK
ICAgICAgICAgZm9yIChOU1N0cmluZyAqdHlwZSBpbiBbb2JqZWN0IHdyaXRhYmxlVHlwZXNGb3JQ
YXN0ZWJvYXJkOnNlbGZdKSB7CiAgICAgICAgICAgICBbc2VsZiBhZGRUeXBlczpAWyB0eXBlIF0g
b3duZXI6c2VsZl07CiAKQEAgLTI1NCwyMSArMjU4LDI5IEBAIC0gKEJPT0wpd3JpdGVPYmplY3Rz
OihOU0FycmF5PGlkIDxOU1Bhc3RlYm9hcmRXcml0aW5nPj4gKilvYmplY3RzCiAgICAgICAgIH0K
ICAgICB9CiAKKyAgICBfY2FjaGVkUGFzdGVib2FyZEl0ZW1zID0gaXRlbXMuZ2V0KCk7CiAgICAg
cmV0dXJuIFlFUzsKIH0KIAogLSAoTlNBcnJheTxOU1Bhc3RlYm9hcmRJdGVtICo+ICopcGFzdGVi
b2FyZEl0ZW1zCiB7Ci0gICAgaWYgKF93cml0dGVuUGFzdGVib2FyZEl0ZW1zKQotICAgICAgICBy
ZXR1cm4gX3dyaXR0ZW5QYXN0ZWJvYXJkSXRlbXMuZ2V0KCk7CisgICAgaWYgKF9jYWNoZWRQYXN0
ZWJvYXJkSXRlbXMpCisgICAgICAgIHJldHVybiBfY2FjaGVkUGFzdGVib2FyZEl0ZW1zLmdldCgp
OwogCiAgICAgYXV0byBpdGVtID0gYWRvcHROUyhbW05TUGFzdGVib2FyZEl0ZW0gYWxsb2NdIGlu
aXRdKTsKKyAgICBmb3IgKGF1dG8mIHR5cGUgOiBfb3JpZ2luYWxUeXBlcykgeworICAgICAgICBp
ZiAoIV9kYXRhLmNvbnRhaW5zKHRvVVRJKChfX2JyaWRnZSBOU1N0cmluZyAqKXR5cGUuZ2V0KCkp
KSkKKyAgICAgICAgICAgIFtfb3duZXIgcGFzdGVib2FyZDpzZWxmIHByb3ZpZGVEYXRhRm9yVHlw
ZTooX19icmlkZ2UgTlNTdHJpbmcgKil0eXBlLmdldCgpXTsKKyAgICB9CisKICAgICBmb3IgKGNv
bnN0IGF1dG8mIHR5cGVBbmREYXRhIDogX2RhdGEpIHsKICAgICAgICAgTlNEYXRhICpkYXRhID0g
KF9fYnJpZGdlIE5TRGF0YSAqKXR5cGVBbmREYXRhLnZhbHVlLmdldCgpOwogICAgICAgICBOU1N0
cmluZyAqdHlwZSA9IChfX2JyaWRnZSBOU1N0cmluZyAqKXR5cGVBbmREYXRhLmtleS5nZXQoKTsK
ICAgICAgICAgW2l0ZW0gc2V0RGF0YTpkYXRhIGZvclR5cGU6W05TUGFzdGVib2FyZCBfbW9kZXJu
UGFzdGVib2FyZFR5cGU6dHlwZV1dOwogICAgIH0KLSAgICByZXR1cm4gQFsgaXRlbS5nZXQoKSBd
OworCisgICAgX2NhY2hlZFBhc3RlYm9hcmRJdGVtcyA9IEBbIGl0ZW0uZ2V0KCkgXTsKKyAgICBy
ZXR1cm4gX2NhY2hlZFBhc3RlYm9hcmRJdGVtcy5nZXQoKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QYXN0ZUltYWdlLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QYXN0ZUltYWdlLm1tCmluZGV4
IDE1MmUxYWNiY2NmNDViYWUwMmYyOWIwYjhkOGZmMWZjN2FmNWM1NjAuLmU1NDY1YzgwYjUwZjQx
Zjk3Mzk3Mjg3MmNkOWMzZTcwMzZjNjIyNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUGFzdGVJbWFnZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Bhc3RlSW1hZ2UubW0KQEAgLTM3LDE2ICszNyw1MCBAQAog
I2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCisKIHZvaWQgd3JpdGVJbWFnZURhdGFUb1Bhc3Rl
Ym9hcmQoTlNTdHJpbmcgKnR5cGUsIE5TRGF0YSAqZGF0YSkKIHsKLSAgICBbW05TUGFzdGVib2Fy
ZCBnZW5lcmFsUGFzdGVib2FyZF0gZGVjbGFyZVR5cGVzOkBbdHlwZV0gb3duZXI6bmlsXTsKLSAg
ICBbW05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF0gc2V0RGF0YTpkYXRhIGZvclR5cGU6
dHlwZV07CisgICAgW05TUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6
QFt0eXBlXSBvd25lcjpuaWxdOworICAgIFtOU1Bhc3RlYm9hcmQuZ2VuZXJhbFBhc3RlYm9hcmQg
c2V0RGF0YTpkYXRhIGZvclR5cGU6dHlwZV07Cit9CisKK3ZvaWQgd3JpdGVJbWFnZURhdGFUb1Bh
c3RlYm9hcmQoTlNEaWN0aW9uYXJ5IDxOU1N0cmluZyAqLCBOU0RhdGEgKj4gKnR5cGVzQW5kRGF0
YSkKK3sKKyAgICBbTlNQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJkIGRlY2xhcmVUeXBlczp0
eXBlc0FuZERhdGEuYWxsS2V5cyBvd25lcjpuaWxdOworICAgIGZvciAoTlNTdHJpbmcgKnR5cGUg
aW4gdHlwZXNBbmREYXRhKQorICAgICAgICBbTlNQYXN0ZWJvYXJkLmdlbmVyYWxQYXN0ZWJvYXJk
IHNldERhdGE6dHlwZXNBbmREYXRhW3R5cGVdIGZvclR5cGU6dHlwZV07Cit9CisKK3ZvaWQgd3Jp
dGVJbWFnZURhdGFUb1Bhc3RlYm9hcmQoTlNBcnJheTxOU0RpY3Rpb25hcnkgPE5TU3RyaW5nICos
IE5TRGF0YSAqPiAqPiAqaXRlbXMpCit7CisgICAgW05TUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVi
b2FyZCBjbGVhckNvbnRlbnRzXTsKKyAgICBhdXRvIHBhc3RlYm9hcmRJdGVtcyA9IGFkb3B0TlMo
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTppdGVtcy5jb3VudF0pOwor
ICAgIGZvciAoTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TRGF0YSAqPiAqdHlwZXNBbmREYXRh
IGluIGl0ZW1zKSB7CisgICAgICAgIGF1dG8gcGFzdGVib2FyZEl0ZW0gPSBhZG9wdE5TKFtbTlNQ
YXN0ZWJvYXJkSXRlbSBhbGxvY10gaW5pdF0pOworICAgICAgICBmb3IgKE5TU3RyaW5nICp0eXBl
IGluIHR5cGVzQW5kRGF0YSkKKyAgICAgICAgICAgIFtwYXN0ZWJvYXJkSXRlbSBzZXREYXRhOnR5
cGVzQW5kRGF0YVt0eXBlXSBmb3JUeXBlOnR5cGVdOworICAgICAgICBbcGFzdGVib2FyZEl0ZW1z
IGFkZE9iamVjdDpwYXN0ZWJvYXJkSXRlbS5nZXQoKV07CisgICAgfQorICAgIFtOU1Bhc3RlYm9h
cmQuZ2VuZXJhbFBhc3RlYm9hcmQgd3JpdGVPYmplY3RzOnBhc3RlYm9hcmRJdGVtcy5nZXQoKV07
CiB9CisKICNlbHNlCisKIHZvaWQgd3JpdGVJbWFnZURhdGFUb1Bhc3RlYm9hcmQoTlNTdHJpbmcg
KnR5cGUsIE5TRGF0YSAqZGF0YSkKIHsKLSAgICBbW1VJUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVi
b2FyZF0gc2V0SXRlbXM6QFtAeyB0eXBlOiBkYXRhIH1dXTsKKyAgICBVSVBhc3RlYm9hcmQuZ2Vu
ZXJhbFBhc3RlYm9hcmQuaXRlbXMgPSBAWyBAeyB0eXBlOiBkYXRhIH0gXTsKK30KKwordm9pZCB3
cml0ZUltYWdlRGF0YVRvUGFzdGVib2FyZChOU0RpY3Rpb25hcnkgPE5TU3RyaW5nICosIE5TRGF0
YSAqPiAqdHlwZXNBbmREYXRhKQoreworICAgIFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2Fy
ZC5pdGVtcyA9IEBbIHR5cGVzQW5kRGF0YSBdOworfQorCit2b2lkIHdyaXRlSW1hZ2VEYXRhVG9Q
YXN0ZWJvYXJkKE5TQXJyYXk8TlNEaWN0aW9uYXJ5IDxOU1N0cmluZyAqLCBOU0RhdGEgKj4gKj4g
Kml0ZW1zKQoreworICAgIFVJUGFzdGVib2FyZC5nZW5lcmFsUGFzdGVib2FyZC5pdGVtcyA9IGl0
ZW1zOwogfQorCiAjZW5kaWYKIAogQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IChQYXN0ZUltYWdl
KQpAQCAtMTM3LDYgKzE3MSwzMCBAQCBURVNUKFBhc3RlSW1hZ2UsIFBhc3RlUE5HSW1hZ2UpCiAg
ICAgRVhQRUNUX1dLX1NUUkVRKCIyMDAiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiaW1hZ2VFbGVtZW50LndpZHRoIl0pOwogfQogCitURVNUKFBhc3RlSW1hZ2UsIFBh
c3RlSW1hZ2VXaXRoTXVsdGlwbGVSZXByZXNlbnRhdGlvbnMpCit7CisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA0MDAsIDQwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQ
YWdlTmFtZWQ6QCJwYXN0ZS1pbWFnZSJdOworCisgICAgYXV0byBwbmdEYXRhID0gW05TRGF0YSBk
YXRhV2l0aENvbnRlbnRzT2ZGaWxlOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gcGF0aEZvclJlc291
cmNlOkAic3Vuc2V0LWluLWN1cGVydGluby0yMDBweCIgb2ZUeXBlOkAicG5nIiBpbkRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIGF1dG8ganBlZ0RhdGEgPSBbTlNE
YXRhIGRhdGFXaXRoQ29udGVudHNPZkZpbGU6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBwYXRoRm9y
UmVzb3VyY2U6QCJzdW5zZXQtaW4tY3VwZXJ0aW5vLTYwMHB4IiBvZlR5cGU6QCJqcGciIGluRGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgd3JpdGVJbWFnZURhdGFU
b1Bhc3RlYm9hcmQoQHsKKyAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVBORyA6
IHBuZ0RhdGEsCisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVKUEVHIDoganBl
Z0RhdGEKKyAgICB9KTsKKyAgICBbd2ViVmlldyBwYXN0ZTpuaWxdOworCisgICAgRVhQRUNUX1dL
X1NUUkVRKCIxIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRhdGFU
cmFuc2Zlci5maWxlcy5sZW5ndGgiXSk7CisKKyAgICB3cml0ZUltYWdlRGF0YVRvUGFzdGVib2Fy
ZChAWworICAgICAgICBAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlUE5HIDogcG5nRGF0
YSB9LAorICAgICAgICBAeyAoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlSlBFRyA6IGpwZWdE
YXRhIH0KKyAgICBdKTsKKyAgICBbd2ViVmlldyBwYXN0ZTpuaWxdOworCisgICAgRVhQRUNUX1dL
X1NUUkVRKCIyIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRhdGFU
cmFuc2Zlci5maWxlcy5sZW5ndGgiXSk7Cit9CisKIFRFU1QoUGFzdGVJbWFnZSwgUmV2ZWFsU2Vs
ZWN0aW9uQWZ0ZXJQYXN0aW5nSW1hZ2UpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0MDAs
IDQwMCldKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>