<?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>214295</bug_id>
          
          <creation_ts>2020-07-13 23:21:25 -0700</creation_ts>
          <short_desc>[iOS] The completion handler in -handleKeyWebEvent:withCompletionHandler: is sometimes never called</short_desc>
          <delta_ts>2020-07-14 14:39:17 -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>bdakin</cc>
    
    <cc>hi</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>1671290</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-13 23:21:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/60539389&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671291</commentid>
    <comment_count>1</comment_count>
      <attachid>404213</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-13 23:36:13 -0700</bug_when>
    <thetext>Created attachment 404213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671436</commentid>
    <comment_count>2</comment_count>
      <attachid>404213</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-14 11:04:28 -0700</bug_when>
    <thetext>Comment on attachment 404213
Patch

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

r=me

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1068
&gt; +    if (!_page || !_page-&gt;hasQueuedKeyEvent())

Is it possible for `_keyWebEventHandler` to be set without `_page-&gt;hasQueuedKeyEvent()` (or vice versa)?  I feel like this should be an `ASSERT` inside the `if` below to ensure that the state is synchronized.

&gt; Tools/TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:376
&gt; +        auto keyDownEvent = adoptNS([[WebEvent alloc] initWithKeyEventType:WebEventKeyDown timeStamp:CFAbsoluteTimeGetCurrent() characters:@&quot;a&quot; charactersIgnoringModifiers:@&quot;a&quot; modifiers:0 isRepeating:NO withFlags:0 withInputManagerHint:nil keyCode:0 isTabKey:NO]);

NIT: shouldn&apos;t `keyCode` be `65`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671438</commentid>
    <comment_count>3</comment_count>
      <attachid>404213</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-14 11:07:12 -0700</bug_when>
    <thetext>Comment on attachment 404213
Patch

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

&gt; Tools/TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:389
&gt; +        auto keyUpEvent = adoptNS([[WebEvent alloc] initWithKeyEventType:WebEventKeyUp timeStamp:CFAbsoluteTimeGetCurrent() characters:@&quot;a&quot; charactersIgnoringModifiers:@&quot;a&quot; modifiers:0 isRepeating:NO withFlags:0 withInputManagerHint:nil keyCode:0 isTabKey:NO]);

Ditto (:376)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671440</commentid>
    <comment_count>4</comment_count>
      <attachid>404213</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-14 11:08:03 -0700</bug_when>
    <thetext>Comment on attachment 404213
Patch

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

&gt; Source/WebKit/ChangeLog:14
&gt; +        This can happen in several ways. For instance, if the web process is swapped or terminates in the middle of

Can you also add a test for the PSON case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671448</commentid>
    <comment_count>5</comment_count>
      <attachid>404213</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-14 11:24:23 -0700</bug_when>
    <thetext>Comment on attachment 404213
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:14
&gt;&gt; +        This can happen in several ways. For instance, if the web process is swapped or terminates in the middle of
&gt; 
&gt; Can you also add a test for the PSON case?

It was more difficult to craft a test case for this, which is why I tested using a crashed web process instead (which exercises the same codepath). I’ll try to come up with a test that involves PSON...

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1068
&gt;&gt; +    if (!_page || !_page-&gt;hasQueuedKeyEvent())
&gt; 
&gt; Is it possible for `_keyWebEventHandler` to be set without `_page-&gt;hasQueuedKeyEvent()` (or vice versa)?  I feel like this should be an `ASSERT` inside the `if` below to ensure that the state is synchronized.

I think it’s possible to have queued key events without a completion handler, in the case where the user resigns first responder (e.g. by focusing the unified field) and we bail out of the queued event handler early.

However, I think having a key event handler stashed away should always mean that we have a queued key event, so I’ll add an assertion to enforce this.

&gt;&gt; Tools/TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:376
&gt;&gt; +        auto keyDownEvent = adoptNS([[WebEvent alloc] initWithKeyEventType:WebEventKeyDown timeStamp:CFAbsoluteTimeGetCurrent() characters:@&quot;a&quot; charactersIgnoringModifiers:@&quot;a&quot; modifiers:0 isRepeating:NO withFlags:0 withInputManagerHint:nil keyCode:0 isTabKey:NO]);
&gt; 
&gt; NIT: shouldn&apos;t `keyCode` be `65`?

👍🏻

&gt;&gt; Tools/TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:389
&gt;&gt; +        auto keyUpEvent = adoptNS([[WebEvent alloc] initWithKeyEventType:WebEventKeyUp timeStamp:CFAbsoluteTimeGetCurrent() characters:@&quot;a&quot; charactersIgnoringModifiers:@&quot;a&quot; modifiers:0 isRepeating:NO withFlags:0 withInputManagerHint:nil keyCode:0 isTabKey:NO]);
&gt; 
&gt; Ditto (:376)

👍🏻

(There’s a bunch more in this file, but I’ll clean them up in a separate patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671492</commentid>
    <comment_count>6</comment_count>
      <attachid>404270</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-14 13:19:12 -0700</bug_when>
    <thetext>Created attachment 404270
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671528</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-14 14:39:16 -0700</bug_when>
    <thetext>Committed r264376: &lt;https://trac.webkit.org/changeset/264376&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404270.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404213</attachid>
            <date>2020-07-13 23:36:13 -0700</date>
            <delta_ts>2020-07-14 11:04:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214295-20200713233612.patch</filename>
            <type>text/plain</type>
            <size>9159</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUyODcyYmUzYTg3MjUzM2Qy
ZWE5YmE1Nzk0OTJiZTVhNDY5NzJkYzYuLmIzMGI2NTcxYjRiYzBlMGRjMWI0ZWI4OGQ4N2RlMTEz
YzI3ZjdhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjAtMDctMTMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gVGhlIGNvbXBs
ZXRpb24gaGFuZGxlciBpbiAtaGFuZGxlS2V5V2ViRXZlbnQ6d2l0aENvbXBsZXRpb25IYW5kbGVy
OiBpcyBzb21ldGltZXMgbmV2ZXIgY2FsbGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNTM5
Mzg5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgaXMgYSBzcGVjdWxhdGl2ZSBmaXggZm9yIDxyZGFyOi8vcHJvYmxlbS82MDUzOTM4OT4sIHdo
ZXJlaW4gaGFyZHdhcmUga2V5IGNvbW1hbmRzIHNlZW1pbmdseSBzdG9wIHdvcmtpbmcgaW4KKyAg
ICAgICAgYSB3ZWIgcGFnZSB0aGF0IGlzIChwcmVzdW1hYmx5KSBvdGhlcndpc2UgcmVzcG9uc2l2
ZS4gSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBidWcgZXhlcmNpc2VzIGEgc2NlbmFyaW8gaW4gd2hp
Y2gKKyAgICAgICAgdGhlIGNvbXBsZXRpb24gaGFuZGxlciBpbiBgLVtXS0NvbnRlbnRWaWV3IGhh
bmRsZUtleVdlYkV2ZW50OndpdGhDb21wbGV0aW9uSGFuZGxlcjpdYCBpcyBuZXZlciBpbnZva2Vk
LCB3aGljaAorICAgICAgICBzdWJzZXF1ZW50bHkgbGVhZHMgdG8gdGhlIGtleWJvYXJkIHRhc2sg
cXVldWUgYmVpbmcgYmFja2VkIHVwIHdpdGgga2V5IGV2ZW50cy4KKworICAgICAgICBUaGlzIGNh
biBoYXBwZW4gaW4gc2V2ZXJhbCB3YXlzLiBGb3IgaW5zdGFuY2UsIGlmIHRoZSB3ZWIgcHJvY2Vz
cyBpcyBzd2FwcGVkIG9yIHRlcm1pbmF0ZXMgaW4gdGhlIG1pZGRsZSBvZgorICAgICAgICBoYW5k
bGluZyBhIGtleSBldmVudCwgdGhlIGtleSBldmVudCBxdWV1ZSB3aWxsIGJlIGNsZWFyZWQsIGJ1
dCB0aGUgVUkgcHJvY2VzcyB3aWxsIHN0aWxsIHJldGFpbiB0aGUgKHVuY2FsbGVkKQorICAgICAg
ICBjb21wbGV0aW9uIGhhbmRsZXIgZm9yIHRoYXQga2V5IGV2ZW50LiBBZGRpdGlvbmFsbHksIGBX
ZWJQYWdlUHJveHk6OmhhbmRsZUtleWJvYXJkRXZlbnRgIG1heSBub3QgZXZlbiBoYXZlCisgICAg
ICAgIGF0dGVtcHRlZCB0byBwcm9wYWdhdGUgdGhlIGV2ZW50IHRvIHRoZSB3ZWIgcHJvY2Vzcywg
aW4gd2hpY2ggY2FzZSB3ZSBzaG91bGRuJ3QgYmUgc2F2aW5nIHRoZSBjb21wbGV0aW9uIGhhbmRs
ZXIKKyAgICAgICAgYW5kIHdhaXRpbmcgZm9yIGEgcmVzcG9uc2UuCisKKyAgICAgICAgVGVzdDog
S2V5Ym9hcmRJbnB1dFRlc3RzLkhhbmRsZUtleUV2ZW50c0luQ3Jhc2hlZE9yVW5pbml0aWFsaXpl
ZFdlYlByb2Nlc3MKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorCisgICAg
ICAgIE1ha2UgdGhpcyByZXR1cm4gYSBgYm9vbGAgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBrZXkg
ZXZlbnQgd2FzIHNlbnQgdG8gdGhlIHdlYiBwcm9jZXNzLiBJZiBub3QsIHRoZW4gd2UKKyAgICAg
ICAgc2hvdWxkIGltbWVkaWF0ZWx5IGludm9rZSB0aGUgY29tcGxldGlvbiBoYW5kbGVyIGluIC1o
YW5kbGVLZXlXZWJFdmVudDp3aXRoQ29tcGxldGlvbkhhbmRsZXI6IGJlbG93LCBpbnN0ZWFkIG9m
CisgICAgICAgIHN0YXNoaW5nIHRoZSBPYmplY3RpdmUtQyBibG9jayBhbmQgd2FpdGluZyBmb3Ig
YSByZXNwb25zZSBmcm9tIHRoZSB3ZWIgcHJvY2VzcyAod2hpY2ggaXMgcHJlc3VtYWJseSBub3QK
KyAgICAgICAgcnVubmluZykuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW5VcEludGVyYWN0aW9uXSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX2NhbmNlbFBlbmRpbmdLZXlFdmVudEhhbmRsZXJdKToKKworICAgICAg
ICBXaGVuIHRoZSB3ZWIgcHJvY2VzcyB0ZXJtaW5hdGVzIG9yIHN3YXBzIGluIHRoZSBtaWRkbGUg
b2YgaGFuZGxpbmcgYSBrZXkgZXZlbnQsIGdvIGFoZWFkIGFuZCBpbnZva2UgdGhlIGtleQorICAg
ICAgICBldmVudCBjb21wbGV0aW9uIGhhbmRsZXIgZWFybHkgd2l0aCB0aGUgcXVldWVkIGV2ZW50
LCBzaW5jZSB3ZSBhcmVuJ3QgZ29pbmcgdG8gcmVjZWl2ZSBhIHJlc3BvbnNlIGZyb20gdGhlIHdl
YgorICAgICAgICBwcm9jZXNzIGFueXdheXMuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBo
YW5kbGVLZXlXZWJFdmVudDp3aXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjAtMDctMTMg
IFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQ
RV0gV1RSIGFuZCBBUEktdGVzdHMgdGltaW5nIG91dCBhZnRlciByMjY0MjgzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhNzMwMWIyYTU0YzhlOGZjNGExYzMw
NjliZWQxZTE3MmYwNjQ3NjIyLi4wZjU0NDU2MGNkMDU5YTU0YmU1ZmVmNWEzNzg2MDk2MmIyNjA1
MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI3NDgs
MTAgKzI3NDgsMTAgQEAgY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgV2ViUGFnZVByb3h5
OjpmaXJzdFF1ZXVlZEtleUV2ZW50KCkgY29uc3QKICAgICByZXR1cm4gbV9rZXlFdmVudFF1ZXVl
LmZpcnN0KCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVLZXlib2FyZEV2ZW50KGNv
bnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50KQorYm9vbCBXZWJQYWdlUHJveHk6Omhh
bmRsZUtleWJvYXJkRXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB7
CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQotICAgICAgICByZXR1cm47CisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAKICAgICBMT0coS2V5SGFuZGxpbmcsICJXZWJQYWdlUHJveHk6
OmhhbmRsZUtleWJvYXJkRXZlbnQ6ICVzIiwgd2ViS2V5Ym9hcmRFdmVudFR5cGVTdHJpbmcoZXZl
bnQudHlwZSgpKSk7CiAKQEAgLTI3NjMsNiArMjc2Myw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpo
YW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50KQog
ICAgICAgICBMT0coS2V5SGFuZGxpbmcsICIgVUkgcHJvY2Vzczogc2VudCBrZXlFdmVudCBmcm9t
IGhhbmRsZUtleWJvYXJkRXZlbnQiKTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
S2V5RXZlbnQoZXZlbnQpKTsKICAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogV2ViUHJl
ZmVyZW5jZXNTdG9yZSBXZWJQYWdlUHJveHk6OnByZWZlcmVuY2VzU3RvcmUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjOWMzMGQ1MzRjYWY1ZTI1NjQx
MDE0NzFlYjAwNzQ0MDM0MTEwM2MzLi4zOGEwODVhZTNhOWEzYjhkNmM5YTQ0ZDgzODAwNGRiZTFm
NDRlZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtOTM3LDcg
KzkzNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgTmF0aXZl
V2ViV2hlZWxFdmVudCYpOwogCiAgICAgYm9vbCBpc1Byb2Nlc3NpbmdLZXlib2FyZEV2ZW50cygp
IGNvbnN0OwotICAgIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChjb25zdCBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50Jik7CisgICAgYm9vbCBoYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IE5hdGl2ZVdl
YktleWJvYXJkRXZlbnQmKTsKICNpZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCBkaXNwYXRjaFBl
bmRpbmdDaGFyRXZlbnRzKGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KaW5kZXggNTgxMjA4NjdlMDUzYzg3NzEwMDY3MGZiZDE1NTRjMjdiN2FiZmNm
ZS4uYzIzZWFlMzNhMTcyMGVkZWEyMjA3NjYzOTA1YzU3MzQ5MTVmMDZhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCkBAIC0xMDYwLDYgKzEwNjAsMTYgQEAgLSAodm9pZCljbGVhblVwSW50ZXJhY3Rpb24KIAog
ICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOwogICAgIFtzZWxmIF9oYW5k
bGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9u
c2U6OkRlbmllZEZvckdlc3R1cmVdOworICAgIFtzZWxmIF9jYW5jZWxQZW5kaW5nS2V5RXZlbnRI
YW5kbGVyXTsKK30KKworLSAodm9pZClfY2FuY2VsUGVuZGluZ0tleUV2ZW50SGFuZGxlcgorewor
ICAgIGlmICghX3BhZ2UgfHwgIV9wYWdlLT5oYXNRdWV1ZWRLZXlFdmVudCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoYXV0byBrZXlFdmVudEhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKF9r
ZXlXZWJFdmVudEhhbmRsZXIsIG5pbCkpCisgICAgICAgIGtleUV2ZW50SGFuZGxlcihfcGFnZS0+
Zmlyc3RRdWV1ZWRLZXlFdmVudCgpLm5hdGl2ZUV2ZW50KCksIE5PKTsKIH0KIAogLSAodm9pZClf
cmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwpAQCAtNTM0Myw4ICs1MzUzLDEwIEBAIC0g
KHZvaWQpaGFuZGxlS2V5V2ViRXZlbnQ6KDo6V2ViRXZlbnQgKil0aGVFdmVudCB3aXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKLSAg
ICBfa2V5V2ViRXZlbnRIYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKTsK
LSAgICBfcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYktleWJvYXJk
RXZlbnQodGhlRXZlbnQsIEhhbmRsZWRCeUlucHV0TWV0aG9kOjpObykpOworICAgIGlmIChfcGFn
ZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZlbnQodGhl
RXZlbnQsIEhhbmRsZWRCeUlucHV0TWV0aG9kOjpObykpKQorICAgICAgICBfa2V5V2ViRXZlbnRI
YW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBlbHNlCisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHRoZUV2ZW50LCBOTyk7CiB9CiAKIC0gKHZvaWQpX2RpZEhh
bmRsZUtleUV2ZW50Oig6OldlYkV2ZW50ICopZXZlbnQgZXZlbnRXYXNIYW5kbGVkOihCT09MKWV2
ZW50V2FzSGFuZGxlZApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDZmMzlmYzM1Y2VkMjZkZWJiNjYxYzU1NWMyMGE3YzU3OWZmZTA0YTIuLmZjMTBj
MjhlYmFjNTc0YTU3MTUzOTc2MjFkYTk4MDI1ZTUzYzdkZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0x
MyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9T
XSBUaGUgY29tcGxldGlvbiBoYW5kbGVyIGluIC1oYW5kbGVLZXlXZWJFdmVudDp3aXRoQ29tcGxl
dGlvbkhhbmRsZXI6IGlzIHNvbWV0aW1lcyBuZXZlciBjYWxsZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDI5NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNjA1MzkzODk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGV4ZXJjaXNlIHRoZSBjb3JuZXIgY2FzZXMgZGVz
Y3JpYmVkIGluIHRoZSBXZWJLaXQgQ2hhbmdlTG9nLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tOgorCiAyMDIwLTA3LTEzICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBTdGljayB0
byBkZWZhdWx0IEdsaWIgc291cmNlIHByaW9yaXRpZXMgaW4gSGVhZGxlc3NWaWV3QmFja2VuZCwg
V2luZG93Vmlld0JhY2tlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL0tleWJvYXJkSW5wdXRUZXN0c0lPUy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL0tleWJvYXJkSW5wdXRUZXN0c0lPUy5tbQppbmRleCBiZmYxNzIxYTBhZGZhODM1OGExZWYx
MTkyMmQxMGViMmFiNzAyNGVlLi41YzkxNjBlZDAzNGFlNzNiMWM3Mjk1MWU0MTg3NTNhOGY3MDcy
MzdkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9LZXlib2FyZElu
cHV0VGVzdHNJT1MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvS2V5Ym9h
cmRJbnB1dFRlc3RzSU9TLm1tCkBAIC0zNjgsNiArMzY4LDM2IEBAIFRFU1QoS2V5Ym9hcmRJbnB1
dFRlc3RzLCBXYWl0Rm9yS2V5RXZlbnRIYW5kbGVySW5GaXJzdFJlc3BvbmRlcikKICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVXYWl0aW5nKTsKIH0KIAorVEVTVChLZXlib2FyZElu
cHV0VGVzdHMsIEhhbmRsZUtleUV2ZW50c0luQ3Jhc2hlZE9yVW5pbml0aWFsaXplZFdlYlByb2Nl
c3MpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBhdXRvIGNv
bnRlbnRWaWV3ID0gW3dlYlZpZXcgdGV4dElucHV0Q29udGVudFZpZXddOworICAgIHsKKyAgICAg
ICAgYXV0byBrZXlEb3duRXZlbnQgPSBhZG9wdE5TKFtbV2ViRXZlbnQgYWxsb2NdIGluaXRXaXRo
S2V5RXZlbnRUeXBlOldlYkV2ZW50S2V5RG93biB0aW1lU3RhbXA6Q0ZBYnNvbHV0ZVRpbWVHZXRD
dXJyZW50KCkgY2hhcmFjdGVyczpAImEiIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpAImEi
IG1vZGlmaWVyczowIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFnczowIHdpdGhJbnB1dE1hbmFnZXJI
aW50Om5pbCBrZXlDb2RlOjAgaXNUYWJLZXk6Tk9dKTsKKyAgICAgICAgYm9vbCBkb25lV2FpdGlu
ZyA9IGZhbHNlOworICAgICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6
QCI8Ym9keT48L2JvZHk+Il07CisgICAgICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
IndoaWxlICgxKTsiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgICAgIFtjb250ZW50Vmll
dyBoYW5kbGVLZXlXZWJFdmVudDprZXlEb3duRXZlbnQuZ2V0KCkgd2l0aENvbXBsZXRpb25IYW5k
bGVyOlsmXShXZWJFdmVudCAqZXZlbnQsIEJPT0wgaGFuZGxlZCkgeworICAgICAgICAgICAgRVhQ
RUNUX1RSVUUoW2V2ZW50IGlzRXF1YWw6a2V5RG93bkV2ZW50LmdldCgpXSk7CisgICAgICAgICAg
ICBFWFBFQ1RfRkFMU0UoaGFuZGxlZCk7CisgICAgICAgICAgICBkb25lV2FpdGluZyA9IHRydWU7
CisgICAgICAgIH1dOworICAgICAgICBbd2ViVmlldyBfa2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5k
UmVzZXRTdGF0ZV07CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZVdhaXRp
bmcpOworICAgIH0KKyAgICB7CisgICAgICAgIGF1dG8ga2V5VXBFdmVudCA9IGFkb3B0TlMoW1tX
ZWJFdmVudCBhbGxvY10gaW5pdFdpdGhLZXlFdmVudFR5cGU6V2ViRXZlbnRLZXlVcCB0aW1lU3Rh
bXA6Q0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgY2hhcmFjdGVyczpAImEiIGNoYXJhY3RlcnNJ
Z25vcmluZ01vZGlmaWVyczpAImEiIG1vZGlmaWVyczowIGlzUmVwZWF0aW5nOk5PIHdpdGhGbGFn
czowIHdpdGhJbnB1dE1hbmFnZXJIaW50Om5pbCBrZXlDb2RlOjAgaXNUYWJLZXk6Tk9dKTsKKyAg
ICAgICAgYm9vbCBkb25lV2FpdGluZyA9IGZhbHNlOworICAgICAgICBbd2ViVmlldyBfY2xvc2Vd
OworICAgICAgICBbY29udGVudFZpZXcgaGFuZGxlS2V5V2ViRXZlbnQ6a2V5VXBFdmVudC5nZXQo
KSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6WyZdKFdlYkV2ZW50ICpldmVudCwgQk9PTCBoYW5kbGVk
KSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShbZXZlbnQgaXNFcXVhbDprZXlVcEV2ZW50Lmdl
dCgpXSk7CisgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoaGFuZGxlZCk7CisgICAgICAgICAgICBk
b25lV2FpdGluZyA9IHRydWU7CisgICAgICAgIH1dOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmVXYWl0aW5nKTsKKyAgICB9Cit9CisKIFRFU1QoS2V5Ym9hcmRJbnB1dFRl
c3RzLCBDYXJldFNlbGVjdGlvblJlY3RBZnRlclJlc3RvcmluZ0ZpcnN0UmVzcG9uZGVyV2l0aFJl
dGFpbkFjdGl2ZUZvY3VzZWRTdGF0ZSkKIHsKICAgICAvLyBUaGlzIGRpZmZlcmVuY2UgaW4gY2Fy
ZXQgd2lkdGggaXMgZHVlIHRvIHRoZSBmYWN0IHRoYXQgd2UgZG9uJ3Qgem9vbSBpbiB0byB0aGUg
aW5wdXQgZmllbGQgb24gaVBhZCwgYnV0IGRvIG9uIGlQaG9uZS4K
</data>
<flag name="review"
          id="419618"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404270</attachid>
            <date>2020-07-14 13:19:12 -0700</date>
            <delta_ts>2020-07-14 14:39:17 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-214295-20200714131911.patch</filename>
            <type>text/plain</type>
            <size>11702</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUyODcyYmUzYTg3MjUzM2Qy
ZWE5YmE1Nzk0OTJiZTVhNDY5NzJkYzYuLmQwZDczZTRhZjQzYmMzYTg1ZWQ1ZDQ4ZWYzMjMwMTE1
N2M4ZWRiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjAtMDctMTMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gVGhlIGNvbXBs
ZXRpb24gaGFuZGxlciBpbiAtaGFuZGxlS2V5V2ViRXZlbnQ6d2l0aENvbXBsZXRpb25IYW5kbGVy
OiBpcyBzb21ldGltZXMgbmV2ZXIgY2FsbGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyOTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNTM5
Mzg5PgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBUaGlz
IGlzIGEgc3BlY3VsYXRpdmUgZml4IGZvciA8cmRhcjovL3Byb2JsZW0vNjA1MzkzODk+LCB3aGVy
ZWluIGhhcmR3YXJlIGtleSBjb21tYW5kcyBzZWVtaW5nbHkgc3RvcCB3b3JraW5nIGluCisgICAg
ICAgIGEgd2ViIHBhZ2UgdGhhdCBpcyAocHJlc3VtYWJseSkgb3RoZXJ3aXNlIHJlc3BvbnNpdmUu
IEl0J3MgcG9zc2libGUgdGhhdCB0aGUgYnVnIGV4ZXJjaXNlcyBhIHNjZW5hcmlvIGluIHdoaWNo
CisgICAgICAgIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIgaW4gYC1bV0tDb250ZW50VmlldyBoYW5k
bGVLZXlXZWJFdmVudDp3aXRoQ29tcGxldGlvbkhhbmRsZXI6XWAgaXMgbmV2ZXIgaW52b2tlZCwg
d2hpY2gKKyAgICAgICAgc3Vic2VxdWVudGx5IGxlYWRzIHRvIHRoZSBrZXlib2FyZCB0YXNrIHF1
ZXVlIGJlaW5nIGJhY2tlZCB1cCB3aXRoIGtleSBldmVudHMuCisKKyAgICAgICAgVGhpcyBjYW4g
aGFwcGVuIGluIHNldmVyYWwgd2F5cy4gRm9yIGluc3RhbmNlLCBpZiB0aGUgd2ViIHByb2Nlc3Mg
aXMgc3dhcHBlZCBvciB0ZXJtaW5hdGVzIGluIHRoZSBtaWRkbGUgb2YKKyAgICAgICAgaGFuZGxp
bmcgYSBrZXkgZXZlbnQsIHRoZSBrZXkgZXZlbnQgcXVldWUgd2lsbCBiZSBjbGVhcmVkLCBidXQg
dGhlIFVJIHByb2Nlc3Mgd2lsbCBzdGlsbCByZXRhaW4gdGhlICh1bmNhbGxlZCkKKyAgICAgICAg
Y29tcGxldGlvbiBoYW5kbGVyIGZvciB0aGF0IGtleSBldmVudC4gQWRkaXRpb25hbGx5LCBgV2Vi
UGFnZVByb3h5OjpoYW5kbGVLZXlib2FyZEV2ZW50YCBtYXkgbm90IGV2ZW4gaGF2ZQorICAgICAg
ICBhdHRlbXB0ZWQgdG8gcHJvcGFnYXRlIHRoZSBldmVudCB0byB0aGUgd2ViIHByb2Nlc3MsIGlu
IHdoaWNoIGNhc2Ugd2Ugc2hvdWxkbid0IGJlIHNhdmluZyB0aGUgY29tcGxldGlvbiBoYW5kbGVy
CisgICAgICAgIGFuZCB3YWl0aW5nIGZvciBhIHJlc3BvbnNlLgorCisgICAgICAgIFRlc3Q6ICAg
S2V5Ym9hcmRJbnB1dFRlc3RzLkhhbmRsZUtleUV2ZW50c0luQ3Jhc2hlZE9yVW5pbml0aWFsaXpl
ZFdlYlByb2Nlc3MKKyAgICAgICAgICAgICAgICBLZXlib2FyZElucHV0VGVzdHMuSGFuZGxlS2V5
RXZlbnRzV2hpbGVTd2FwcGluZ1dlYlByb2Nlc3MKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUtleWJv
YXJkRXZlbnQpOgorCisgICAgICAgIE1ha2UgdGhpcyByZXR1cm4gYSBgYm9vbGAgaW5kaWNhdGlu
ZyB3aGV0aGVyIHRoZSBrZXkgZXZlbnQgd2FzIHNlbnQgdG8gdGhlIHdlYiBwcm9jZXNzLiBJZiBu
b3QsIHRoZW4gd2UKKyAgICAgICAgc2hvdWxkIGltbWVkaWF0ZWx5IGludm9rZSB0aGUgY29tcGxl
dGlvbiBoYW5kbGVyIGluIC1oYW5kbGVLZXlXZWJFdmVudDp3aXRoQ29tcGxldGlvbkhhbmRsZXI6
IGJlbG93LCBpbnN0ZWFkIG9mCisgICAgICAgIHN0YXNoaW5nIHRoZSBPYmplY3RpdmUtQyBibG9j
ayBhbmQgd2FpdGluZyBmb3IgYSByZXNwb25zZSBmcm9tIHRoZSB3ZWIgcHJvY2VzcyAod2hpY2gg
aXMgcHJlc3VtYWJseSBub3QKKyAgICAgICAgcnVubmluZykuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW5VcEludGVyYWN0
aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2NhbmNlbFBlbmRpbmdLZXlFdmVudEhh
bmRsZXJdKToKKworICAgICAgICBXaGVuIHRoZSB3ZWIgcHJvY2VzcyB0ZXJtaW5hdGVzIG9yIHN3
YXBzIGluIHRoZSBtaWRkbGUgb2YgaGFuZGxpbmcgYSBrZXkgZXZlbnQsIGdvIGFoZWFkIGFuZCBp
bnZva2UgdGhlIGtleQorICAgICAgICBldmVudCBjb21wbGV0aW9uIGhhbmRsZXIgZWFybHkgd2l0
aCB0aGUgcXVldWVkIGV2ZW50LCBzaW5jZSB3ZSBhcmVuJ3QgZ29pbmcgdG8gcmVjZWl2ZSBhIHJl
c3BvbnNlIGZyb20gdGhlIHdlYgorICAgICAgICBwcm9jZXNzIGFueXdheXMuCisKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBoYW5kbGVLZXlXZWJFdmVudDp3aXRoQ29tcGxldGlvbkhhbmRsZXI6
XSk6CisKIDIwMjAtMDctMTMgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdW1dQRV0gV1RSIGFuZCBBUEktdGVzdHMgdGltaW5nIG91dCBhZnRlciBy
MjY0MjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhNzMw
MWIyYTU0YzhlOGZjNGExYzMwNjliZWQxZTE3MmYwNjQ3NjIyLi4wZjU0NDU2MGNkMDU5YTU0YmU1
ZmVmNWEzNzg2MDk2MmIyNjA1MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTI3NDgsMTAgKzI3NDgsMTAgQEAgY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudCYgV2ViUGFnZVByb3h5OjpmaXJzdFF1ZXVlZEtleUV2ZW50KCkgY29uc3QKICAgICByZXR1
cm4gbV9rZXlFdmVudFF1ZXVlLmZpcnN0KCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpoYW5k
bGVLZXlib2FyZEV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50KQorYm9v
bCBXZWJQYWdlUHJveHk6OmhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBMT0coS2V5SGFuZGxp
bmcsICJXZWJQYWdlUHJveHk6OmhhbmRsZUtleWJvYXJkRXZlbnQ6ICVzIiwgd2ViS2V5Ym9hcmRF
dmVudFR5cGVTdHJpbmcoZXZlbnQudHlwZSgpKSk7CiAKQEAgLTI3NjMsNiArMjc2Myw4IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpoYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQmIGV2ZW50KQogICAgICAgICBMT0coS2V5SGFuZGxpbmcsICIgVUkgcHJvY2Vzczog
c2VudCBrZXlFdmVudCBmcm9tIGhhbmRsZUtleWJvYXJkRXZlbnQiKTsKICAgICAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6S2V5RXZlbnQoZXZlbnQpKTsKICAgICB9CisKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogV2ViUHJlZmVyZW5jZXNTdG9yZSBXZWJQYWdlUHJveHk6OnByZWZlcmVuY2Vz
U3RvcmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBj
OWMzMGQ1MzRjYWY1ZTI1NjQxMDE0NzFlYjAwNzQ0MDM0MTEwM2MzLi4zOGEwODVhZTNhOWEzYjhk
NmM5YTQ0ZDgzODAwNGRiZTFmNDRlZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtOTM3LDcgKzkzNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVdoZWVs
RXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpOwogCiAgICAgYm9vbCBpc1Byb2Nlc3Np
bmdLZXlib2FyZEV2ZW50cygpIGNvbnN0OwotICAgIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChj
b25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50Jik7CisgICAgYm9vbCBoYW5kbGVLZXlib2FyZEV2
ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmKTsKICNpZiBQTEFURk9STShXSU4pCiAg
ICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdDaGFyRXZlbnRzKGNvbnN0IE5hdGl2ZVdlYktleWJvYXJk
RXZlbnQmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNTgxMjA4NjdlMDUzYzg3NzEwMDY3
MGZiZDE1NTRjMjdiN2FiZmNmZS4uZWVhODkzNTQ3MWQ5NzI5ZmMwMDU1OThkYzgzNTg4YzYxNGZi
OGViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMDYwLDYgKzEwNjAsMjAgQEAgLSAodm9pZCljbGVh
blVwSW50ZXJhY3Rpb24KIAogICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3Nd
OwogICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOworICAgIFtzZWxmIF9jYW5j
ZWxQZW5kaW5nS2V5RXZlbnRIYW5kbGVyXTsKK30KKworLSAodm9pZClfY2FuY2VsUGVuZGluZ0tl
eUV2ZW50SGFuZGxlcgoreworICAgIGlmICghX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAg
IEFTU0VSVF9JTVBMSUVTKF9rZXlXZWJFdmVudEhhbmRsZXIsIF9wYWdlLT5oYXNRdWV1ZWRLZXlF
dmVudCgpKTsKKyAgICBpZiAoIV9wYWdlLT5oYXNRdWV1ZWRLZXlFdmVudCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoYXV0byBrZXlFdmVudEhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKF9r
ZXlXZWJFdmVudEhhbmRsZXIsIG5pbCkpCisgICAgICAgIGtleUV2ZW50SGFuZGxlcihfcGFnZS0+
Zmlyc3RRdWV1ZWRLZXlFdmVudCgpLm5hdGl2ZUV2ZW50KCksIE5PKTsKIH0KIAogLSAodm9pZClf
cmVtb3ZlRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwpAQCAtNTM0Myw4ICs1MzU3LDEwIEBAIC0g
KHZvaWQpaGFuZGxlS2V5V2ViRXZlbnQ6KDo6V2ViRXZlbnQgKil0aGVFdmVudCB3aXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKLSAg
ICBfa2V5V2ViRXZlbnRIYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKTsK
LSAgICBfcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYktleWJvYXJk
RXZlbnQodGhlRXZlbnQsIEhhbmRsZWRCeUlucHV0TWV0aG9kOjpObykpOworICAgIGlmIChfcGFn
ZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZlbnQodGhl
RXZlbnQsIEhhbmRsZWRCeUlucHV0TWV0aG9kOjpObykpKQorICAgICAgICBfa2V5V2ViRXZlbnRI
YW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBlbHNlCisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHRoZUV2ZW50LCBOTyk7CiB9CiAKIC0gKHZvaWQpX2RpZEhh
bmRsZUtleUV2ZW50Oig6OldlYkV2ZW50ICopZXZlbnQgZXZlbnRXYXNIYW5kbGVkOihCT09MKWV2
ZW50V2FzSGFuZGxlZApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDZmMzlmYzM1Y2VkMjZkZWJiNjYxYzU1NWMyMGE3YzU3OWZmZTA0YTIuLjMzODJj
YzkzMWI0MDBjNzVmMGNjM2I0MmU1OTBkMjE5NGUxY2FhODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0x
MyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9T
XSBUaGUgY29tcGxldGlvbiBoYW5kbGVyIGluIC1oYW5kbGVLZXlXZWJFdmVudDp3aXRoQ29tcGxl
dGlvbkhhbmRsZXI6IGlzIHNvbWV0aW1lcyBuZXZlciBjYWxsZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDI5NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNjA1MzkzODk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisg
ICAgICAgIEFkZCBBUEkgdGVzdHMgdG8gZXhlcmNpc2UgdGhlIGNvcm5lciBjYXNlcyBkZXNjcmli
ZWQgaW4gdGhlIFdlYktpdCBDaGFuZ2VMb2cuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9LZXlib2FyZElucHV0VGVzdHNJT1MubW06CisKIDIwMjAtMDctMTMgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFN0aWNrIHRvIGRl
ZmF1bHQgR2xpYiBzb3VyY2UgcHJpb3JpdGllcyBpbiBIZWFkbGVzc1ZpZXdCYWNrZW5kLCBXaW5k
b3dWaWV3QmFja2VuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
S2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
S2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tCmluZGV4IGJmZjE3MjFhMGFkZmE4MzU4YTFlZjExOTIy
ZDEwZWIyYWI3MDI0ZWUuLmQwMjYyNmI1MDU0NjNhM2M0MDI4YTdkN2Y0MDRkZGIwN2ZhZTcxOGEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0tleWJvYXJkSW5wdXRU
ZXN0c0lPUy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9LZXlib2FyZElu
cHV0VGVzdHNJT1MubW0KQEAgLTMwLDEwICszMCwxNCBAQAogI2ltcG9ydCAiUGxhdGZvcm1VdGls
aXRpZXMuaCIKICNpbXBvcnQgIlRlc3RDb2NvYS5oIgogI2ltcG9ydCAiVGVzdElucHV0RGVsZWdh
dGUuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRlc3RQ
cm90b2NvbC5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCAiVUlLaXRTUEku
aCIKICNpbXBvcnQgIlVzZXJJbnRlcmZhY2VTd2l6emxlci5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgogI2ltcG9y
dCA8V2ViS2l0TGVnYWN5L1dlYkV2ZW50Lmg+CiAjaW1wb3J0IDxjbWF0aD4KIApAQCAtMzY4LDYg
KzM3Miw2OSBAQCBURVNUKEtleWJvYXJkSW5wdXRUZXN0cywgV2FpdEZvcktleUV2ZW50SGFuZGxl
ckluRmlyc3RSZXNwb25kZXIpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lV2Fp
dGluZyk7CiB9CiAKK1RFU1QoS2V5Ym9hcmRJbnB1dFRlc3RzLCBIYW5kbGVLZXlFdmVudHNJbkNy
YXNoZWRPclVuaW5pdGlhbGl6ZWRXZWJQcm9jZXNzKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgMzIwLCA1MDApXSk7CisgICAgYXV0byBjb250ZW50VmlldyA9IFt3ZWJWaWV3IHRleHRJbnB1
dENvbnRlbnRWaWV3XTsKKyAgICB7CisgICAgICAgIGF1dG8ga2V5RG93bkV2ZW50ID0gYWRvcHRO
UyhbW1dlYkV2ZW50IGFsbG9jXSBpbml0V2l0aEtleUV2ZW50VHlwZTpXZWJFdmVudEtleURvd24g
dGltZVN0YW1wOkNGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpIGNoYXJhY3RlcnM6QCJhIiBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6QCJhIiBtb2RpZmllcnM6MCBpc1JlcGVhdGluZzpOTyB3
aXRoRmxhZ3M6MCB3aXRoSW5wdXRNYW5hZ2VySGludDpuaWwga2V5Q29kZTo2NSBpc1RhYktleTpO
T10pOworICAgICAgICBib29sIGRvbmVXYWl0aW5nID0gZmFsc2U7CisgICAgICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5PjwvYm9keT4iXTsKKyAgICAgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2hpbGUgKDEpOyIgY29tcGxldGlvbkhhbmRs
ZXI6bmlsXTsKKyAgICAgICAgW2NvbnRlbnRWaWV3IGhhbmRsZUtleVdlYkV2ZW50OmtleURvd25F
dmVudC5nZXQoKSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6WyZdKFdlYkV2ZW50ICpldmVudCwgQk9P
TCBoYW5kbGVkKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShbZXZlbnQgaXNFcXVhbDprZXlE
b3duRXZlbnQuZ2V0KCldKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShoYW5kbGVkKTsKKyAg
ICAgICAgICAgIGRvbmVXYWl0aW5nID0gdHJ1ZTsKKyAgICAgICAgfV07CisgICAgICAgIFt3ZWJW
aWV3IF9raWxsV2ViQ29udGVudFByb2Nlc3NBbmRSZXNldFN0YXRlXTsKKyAgICAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lV2FpdGluZyk7CisgICAgfQorICAgIHsKKyAgICAgICAg
YXV0byBrZXlVcEV2ZW50ID0gYWRvcHROUyhbW1dlYkV2ZW50IGFsbG9jXSBpbml0V2l0aEtleUV2
ZW50VHlwZTpXZWJFdmVudEtleVVwIHRpbWVTdGFtcDpDRkFic29sdXRlVGltZUdldEN1cnJlbnQo
KSBjaGFyYWN0ZXJzOkAiYSIgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOkAiYSIgbW9kaWZp
ZXJzOjAgaXNSZXBlYXRpbmc6Tk8gd2l0aEZsYWdzOjAgd2l0aElucHV0TWFuYWdlckhpbnQ6bmls
IGtleUNvZGU6NjUgaXNUYWJLZXk6Tk9dKTsKKyAgICAgICAgYm9vbCBkb25lV2FpdGluZyA9IGZh
bHNlOworICAgICAgICBbd2ViVmlldyBfY2xvc2VdOworICAgICAgICBbY29udGVudFZpZXcgaGFu
ZGxlS2V5V2ViRXZlbnQ6a2V5VXBFdmVudC5nZXQoKSB3aXRoQ29tcGxldGlvbkhhbmRsZXI6WyZd
KFdlYkV2ZW50ICpldmVudCwgQk9PTCBoYW5kbGVkKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJV
RShbZXZlbnQgaXNFcXVhbDprZXlVcEV2ZW50LmdldCgpXSk7CisgICAgICAgICAgICBFWFBFQ1Rf
RkFMU0UoaGFuZGxlZCk7CisgICAgICAgICAgICBkb25lV2FpdGluZyA9IHRydWU7CisgICAgICAg
IH1dOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVXYWl0aW5nKTsKKyAg
ICB9Cit9CisKK1RFU1QoS2V5Ym9hcmRJbnB1dFRlc3RzLCBIYW5kbGVLZXlFdmVudHNXaGlsZVN3
YXBwaW5nV2ViUHJvY2VzcykKK3sKKyAgICBbVGVzdFByb3RvY29sIHJlZ2lzdGVyV2l0aFNjaGVt
ZTpAImh0dHBzIl07CisKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbcHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldFByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbjpZRVNdOwor
ICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2lu
aXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQ
b29sLmdldCgpXTsKKworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1Rl
c3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBb
d2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsK
KyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxib2R5PndlYmtpdC5vcmc8L2JvZHk+IiBi
YXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93ZWJraXQub3JnIl1dOworICAg
IFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAg
W3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keT5hcHBsZS5jb208L2JvZHk+IiBiYXNlVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9hcHBsZS5jb20iXV07CisgICAgW25hdmln
YXRpb25EZWxlZ2F0ZSB3YWl0Rm9yRGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb25dOworCisg
ICAgYm9vbCBkb25lID0gZmFsc2U7CisgICAgYXV0byBrZXlFdmVudCA9IGFkb3B0TlMoW1tXZWJF
dmVudCBhbGxvY10gaW5pdFdpdGhLZXlFdmVudFR5cGU6V2ViRXZlbnRLZXlEb3duIHRpbWVTdGFt
cDpDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSBjaGFyYWN0ZXJzOkAiYSIgY2hhcmFjdGVyc0ln
bm9yaW5nTW9kaWZpZXJzOkAiYSIgbW9kaWZpZXJzOjAgaXNSZXBlYXRpbmc6Tk8gd2l0aEZsYWdz
OjAgd2l0aElucHV0TWFuYWdlckhpbnQ6bmlsIGtleUNvZGU6NjUgaXNUYWJLZXk6Tk9dKTsKKyAg
ICBkaXNwYXRjaF9hZnRlcihkaXNwYXRjaF90aW1lKERJU1BBVENIX1RJTUVfTk9XLCAoaW50NjRf
dCkoMC4wMSAqIE5TRUNfUEVSX1NFQykpLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBba2V5
RXZlbnQsIHdlYlZpZXcsICZkb25lXSB7CisgICAgICAgIFtbd2ViVmlldyB0ZXh0SW5wdXRDb250
ZW50Vmlld10gaGFuZGxlS2V5V2ViRXZlbnQ6a2V5RXZlbnQuZ2V0KCkgd2l0aENvbXBsZXRpb25I
YW5kbGVyOltrZXlFdmVudCwgJmRvbmVdKFdlYkV2ZW50ICpldmVudCwgQk9PTCBoYW5kbGVkKSB7
CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShbZXZlbnQgaXNFcXVhbDprZXlFdmVudC5nZXQoKV0p
OworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGhhbmRsZWQpOworICAgICAgICAgICAgZG9uZSA9
IHRydWU7CisgICAgICAgIH1dOworICAgIH0pOworCisgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3
YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKK30KKwogVEVTVChLZXlib2FyZElucHV0VGVzdHMsIENhcmV0U2VsZWN0aW9uUmVj
dEFmdGVyUmVzdG9yaW5nRmlyc3RSZXNwb25kZXJXaXRoUmV0YWluQWN0aXZlRm9jdXNlZFN0YXRl
KQogewogICAgIC8vIFRoaXMgZGlmZmVyZW5jZSBpbiBjYXJldCB3aWR0aCBpcyBkdWUgdG8gdGhl
IGZhY3QgdGhhdCB3ZSBkb24ndCB6b29tIGluIHRvIHRoZSBpbnB1dCBmaWVsZCBvbiBpUGFkLCBi
dXQgZG8gb24gaVBob25lLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>