<?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>130314</bug_id>
          
          <creation_ts>2014-03-16 14:15:58 -0700</creation_ts>
          <short_desc>Web Replay: capture and replay keyboard events</short_desc>
          <delta_ts>2014-03-24 17:53:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>129692</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>enrica</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991035</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-16 14:15:58 -0700</bug_when>
    <thetext>Split this off from 129395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993434</commentid>
    <comment_count>1</comment_count>
      <attachid>227530</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-21 20:36:48 -0700</bug_when>
    <thetext>Created attachment 227530
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993435</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 20:37:43 -0700</bug_when>
    <thetext>Attachment 227530 did not pass style-queue:


ERROR: Source/WebCore/replay/SerializationMethods.cpp:70:  _key is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993975</commentid>
    <comment_count>3</comment_count>
      <attachid>227530</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-03-24 14:50:38 -0700</bug_when>
    <thetext>Comment on attachment 227530
the patch

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

r=me

&gt; Source/WebCore/replay/SerializationMethods.cpp:148
&gt; +    decodedValue = textWasDecoded ? KeypressCommand(commandName, text) : KeypressCommand(commandName);

The origin os &quot;textWasDecoded&quot; is pretty cryptic, but I think its fine.

&gt; Source/WebCore/replay/SerializationMethods.cpp:154
&gt; +    PlatformKeyboardEventAppKit(const PlatformKeyboardEvent&amp; event, bool handledByInputMethod, Vector&lt;KeypressCommand&gt; commands)

Nit: Vector&lt;&gt;&amp; commands</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993997</commentid>
    <comment_count>4</comment_count>
      <attachid>227530</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-24 16:09:58 -0700</bug_when>
    <thetext>Comment on attachment 227530
the patch

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

&gt;&gt; Source/WebCore/replay/SerializationMethods.cpp:148
&gt;&gt; +    decodedValue = textWasDecoded ? KeypressCommand(commandName, text) : KeypressCommand(commandName);
&gt; 
&gt; The origin os &quot;textWasDecoded&quot; is pretty cryptic, but I think its fine.

Yeah.. not my favorite case. I decided to prepend the key name so that capitalization is consistent for single and multi-word keys.

&gt;&gt; Source/WebCore/replay/SerializationMethods.cpp:154
&gt;&gt; +    PlatformKeyboardEventAppKit(const PlatformKeyboardEvent&amp; event, bool handledByInputMethod, Vector&lt;KeypressCommand&gt; commands)
&gt; 
&gt; Nit: Vector&lt;&gt;&amp; commands

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994041</commentid>
    <comment_count>5</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-24 17:53:11 -0700</bug_when>
    <thetext>Committed r166212: &lt;http://trac.webkit.org/changeset/166212&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227530</attachid>
            <date>2014-03-21 20:36:48 -0700</date>
            <delta_ts>2014-03-24 16:09:58 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>bug-130314-20140321203628.patch</filename>
            <type>text/plain</type>
            <size>18482</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEwODE0NjA3MTA0YmYw
ZTU0YzE1Zjc2ZGZjMmMzNjM5ZTY3M2E5Zi4uNWVhNWEzMjY1ZDM2Y2E5MDVmOWMzM2RmZDRmMDNl
ZDMwMDA1ODljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE0LTAzLTIxICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBSZXBsYXk6IGNhcHR1cmUg
YW5kIHJlcGxheSBrZXlib2FyZCBldmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMDMxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwc3RyZWFtIHN1cHBvcnQgZm9yIGNhcHR1cmluZyBhbmQgcmVw
bGF5aW5nIG5vbi1JTUUga2V5Ym9hcmQgaW5wdXQuCisgICAgICAgIFRoaXMgd29ya3Mgc2ltaWxh
cmx5IHRvIG1vdXNlIGV2ZW50cy4gSXQgaW50cm9kdWNlcyBvcHRpb25hbCBmaWVsZHMgYW5kCisg
ICAgICAgIG1hY3JvcyB0byBlbmNvZGUvZGVjb2RlIHRoZW0uCisKKyAgICAgICAgVGVzdDogTWFu
dWFsVGVzdHMvaW5zcGVjdG9yL3JlcGxheS1rZXlib2FyZC1ldmVudHMuaHRtbAorCisgICAgICAg
ICogcmVwbGF5L1JlcGxheUlucHV0RGlzcGF0Y2hNZXRob2RzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhhbmRsZUtleVByZXNzOjpkaXNwYXRjaCk6CisgICAgICAgICogcmVwbGF5L1NlcmlhbGl6
YXRpb25NZXRob2RzLmNwcDoKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJt
aW5pc3RpY0lucHV0QmFzZT46OmVuY29kZVZhbHVlKToKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdU
cmFpdHM8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZT46OmRlY29kZVZhbHVlKTogU3dpdGNoIGV4
aXN0aW5nCisgICAgICAgIGVuY29kZS9kZWNvZGUgY2FsbHMgdG8gdXNlIHRoZSBzaG9ydGVuaW5n
IG1hY3Jvcy4KKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8S2V5cHJlc3NDb21tYW5kPjo6
ZW5jb2RlVmFsdWUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8S2V5cHJl
c3NDb21tYW5kPjo6ZGVjb2RlVmFsdWUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6UGxhdGZvcm1L
ZXlib2FyZEV2ZW50QXBwS2l0OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRBcHBLaXQpOiBTdWJjbGFz
cworICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgc28gdGhhdCB3ZSBjYW4gc2V0IEFwcEtp
dC1zcGVjaWZpYyBtZW1iZXJzIG5vdAorICAgICAgICBpbml0aWFsaXplZCB0aHJvdWdoIHRoZSBt
YWluIGNvbnN0cnVjdG9ycy4KKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1L
ZXlib2FyZEV2ZW50Pjo6ZW5jb2RlVmFsdWUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RW5jb2Rp
bmdUcmFpdHM8UGxhdGZvcm1LZXlib2FyZEV2ZW50Pjo6ZGVjb2RlVmFsdWUpOiBBZGRlZC4KKyAg
ICAgICAgKiByZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuaDoKKyAgICAgICAgKiByZXBsYXkv
VXNlcklucHV0QnJpZGdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJJbnB1dEJyaWRnZTo6
VXNlcklucHV0QnJpZGdlKTogaW5pdGlhbGl6ZSBtX3N0YXRlIGluc2lkZSBhIGd1YXJkLgorICAg
ICAgICAoV2ViQ29yZTo6VXNlcklucHV0QnJpZGdlOjpoYW5kbGVLZXlFdmVudCk6IGZpbGwgaW4g
dGhlIGltcGxlbWVudGF0aW9uLgorICAgICAgICAqIHJlcGxheS9XZWJJbnB1dHMuanNvbjoKKwor
MjAxNC0wMy0yMSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIg
UmVwbGF5OiByZXBsYXkgY29udHJvbGxlciBpcyBpbXByb3Blcmx5IHNldHRpbmcgdXNlciBpbnB1
dCBicmlkZ2Ugc3RhdGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMDYwNgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5
SW5wdXREaXNwYXRjaE1ldGhvZHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUlu
cHV0RGlzcGF0Y2hNZXRob2RzLmNwcAppbmRleCAzODU1MjI1MTlkMjFjODUwOGUwZDkxMjUwMTY3
Mzc4Y2E0Yzk0OTk5Li4xMDQ1ZTY1YmY4MDZjMmViZGI2ZjBhYzAyOTIzZmE2NjAxN2U2NzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvUmVwbGF5SW5wdXREaXNwYXRjaE1ldGhv
ZHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlJbnB1dERpc3BhdGNoTWV0
aG9kcy5jcHAKQEAgLTUzLDYgKzUzLDExIEBAIHZvaWQgSW5pdGlhbE5hdmlnYXRpb246OmRpc3Bh
dGNoKFJlcGxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIpCiAgICAgY29udHJvbGxlci5wYWdlKCku
bWFpbkZyYW1lKCkubmF2aWdhdGlvblNjaGVkdWxlcigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uo
bV9zZWN1cml0eU9yaWdpbi5nZXQoKSwgbV91cmwsIG1fcmVmZXJyZXIsIHRydWUsIHRydWUpOwog
fQogCit2b2lkIEhhbmRsZUtleVByZXNzOjpkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJiBjb250
cm9sbGVyKQoreworICAgIGNvbnRyb2xsZXIucGFnZSgpLnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRs
ZUtleUV2ZW50KHBsYXRmb3JtRXZlbnQoKSwgSW5wdXRTb3VyY2U6OlN5bnRoZXRpYyk7Cit9CisK
IC8vIFVzZXIgaW50ZXJhY3Rpb24gaW5wdXRzLgogdm9pZCBIYW5kbGVNb3VzZU1vdmU6OmRpc3Bh
dGNoKFJlcGxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcAppbmRleCBlODYwOTg0NmI3ZjJmNDNiNTRl
NDNkNzI3OGU0OTMyY2IxNTdhMWY5Li40MjkyZDFjMmFkY2M4ZGE4ZjNlZjA5Y2JkOWM0Zjg2NTgz
N2MzZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1l
dGhvZHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9k
cy5jcHAKQEAgLTMxLDE0ICszMSwxOCBAQAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQogCiAjaW5j
bHVkZSAiQWxsUmVwbGF5SW5wdXRzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVwbGF5SW5w
dXRUeXBlcy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVVJMLmgi
CisjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKK3VzaW5nIFdlYkNvcmU6OktleXByZXNz
Q29tbWFuZDsKIHVzaW5nIFdlYkNvcmU6OkludFBvaW50OwogdXNpbmcgV2ViQ29yZTo6TW91c2VC
dXR0b247CiB1c2luZyBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OwordXNpbmcgV2ViQ29yZTo6UGxh
dGZvcm1LZXlib2FyZEV2ZW50OwogdXNpbmcgV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50Owog
dXNpbmcgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW47CiB1c2luZyBXZWJDb3JlOjpVUkw7CkBAIC01
OCwxMyArNjIsMjIgQEAgV0VCX1JFUExBWV9JTlBVVF9OQU1FU19GT1JfRUFDSChJTVBPUlRfRlJP
TV9XRUJDT1JFX05BTUVTUEFDRSkKICAgICBpZiAoIV9lbmNvZGVkVmFsdWUuZ2V0PF90eXBlPihB
U0NJSUxpdGVyYWwoI19rZXkpLCBfa2V5KSkgXAogICAgICAgICByZXR1cm4gZmFsc2UKIAorI2Rl
ZmluZSBFTkNPREVfT1BUSU9OQUxfU0NBTEFSX1RZUEVfV0lUSF9LRVkoX2VuY29kZWRWYWx1ZSwg
X3R5cGUsIF9rZXksIF92YWx1ZSwgY29uZGl0aW9uKSBcCisgICAgaWYgKGNvbmRpdGlvbikgXAor
ICAgICAgICBfZW5jb2RlZFZhbHVlLnB1dDxfdHlwZT4oQVNDSUlMaXRlcmFsKCNfa2V5KSwgX3Zh
bHVlKQorCisjZGVmaW5lIERFQ09ERV9PUFRJT05BTF9TQ0FMQVJfVFlQRV9XSVRIX0tFWShfZW5j
b2RlZFZhbHVlLCBfdHlwZSwgX2tleSkgXAorICAgIF90eXBlIF9rZXk7IFwKKyAgICBib29sIF9r
ZXkgIyMgV2FzRGVjb2RlZCA9IF9lbmNvZGVkVmFsdWUuZ2V0PF90eXBlPihBU0NJSUxpdGVyYWwo
I19rZXkpLCBfa2V5KQorCiBuYW1lc3BhY2UgSlNDIHsKIAogRW5jb2RlZFZhbHVlIEVuY29kaW5n
VHJhaXRzPE5vbmRldGVybWluaXN0aWNJbnB1dEJhc2U+OjplbmNvZGVWYWx1ZShjb25zdCBOb25k
ZXRlcm1pbmlzdGljSW5wdXRCYXNlJiBpbnB1dCkKIHsKICAgICBFbmNvZGVkVmFsdWUgZW5jb2Rl
ZFZhbHVlID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUgPSBpbnB1dC50eXBlKCk7Ci0gICAgZW5jb2RlZFZhbHVlLnB1dDxTdHJpbmc+
KEFTQ0lJTGl0ZXJhbCgidHlwZSIpLCB0eXBlLnN0cmluZygpKTsKKworICAgIEVOQ09ERV9TQ0FM
QVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdHlwZSwgdHlwZS5zdHJpbmco
KSk7CiAKICNkZWZpbmUgRU5DT0RFX0lGX1RZUEVfVEFHX01BVENIRVMobmFtZSkgXAogICAgIGlm
ICh0eXBlID09IGlucHV0VHlwZXMoKS5uYW1lKSB7IFwKQEAgLTg4LDkgKzEwMSw3IEBAIEVuY29k
ZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZW5jb2Rl
VmFsdWUoY29uc3QgTm9uZGV0CiAKIGJvb2wgRW5jb2RpbmdUcmFpdHM8Tm9uZGV0ZXJtaW5pc3Rp
Y0lucHV0QmFzZT46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCBzdGQ6
OnVuaXF1ZV9wdHI8Tm9uZGV0ZXJtaW5pc3RpY0lucHV0QmFzZT4mIGlucHV0KQogewotICAgIFN0
cmluZyB0eXBlOwotICAgIGlmICghZW5jb2RlZFZhbHVlLmdldDxTdHJpbmc+KEFTQ0lJTGl0ZXJh
bCgidHlwZSIpLCB0eXBlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIERFQ09ERV9TQ0FM
QVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdHlwZSk7CiAKICNkZWZpbmUg
REVDT0RFX0lGX1RZUEVfVEFHX01BVENIRVMobmFtZSkgXAogICAgIGlmICh0eXBlID09IGlucHV0
VHlwZXMoKS5uYW1lKSB7IFwKQEAgLTExOCw2ICsxMjksODggQEAgYm9vbCBFbmNvZGluZ1RyYWl0
czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBl
bmNvZGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBVU0UoQVBQS0lUKQorRW5jb2RlZFZh
bHVlIEVuY29kaW5nVHJhaXRzPEtleXByZXNzQ29tbWFuZD46OmVuY29kZVZhbHVlKGNvbnN0IEtl
eXByZXNzQ29tbWFuZCYgY29tbWFuZCkKK3sKKyAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZFZhbHVl
ID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVPYmplY3QoKTsKKworICAgIEVOQ09ERV9TQ0FMQVJfVFlQ
RV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgY29tbWFuZE5hbWUsIGNvbW1hbmQuY29t
bWFuZE5hbWUpOworICAgIEVOQ09ERV9PUFRJT05BTF9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNv
ZGVkVmFsdWUsIFN0cmluZywgdGV4dCwgY29tbWFuZC50ZXh0LCAhY29tbWFuZC50ZXh0LmlzRW1w
dHkoKSk7CisKKyAgICByZXR1cm4gZW5jb2RlZFZhbHVlOworfQorCitib29sIEVuY29kaW5nVHJh
aXRzPEtleXByZXNzQ29tbWFuZD46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZh
bHVlLCBLZXlwcmVzc0NvbW1hbmQmIGRlY29kZWRWYWx1ZSkKK3sKKyAgICBERUNPREVfU0NBTEFS
X1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIGNvbW1hbmROYW1lKTsKKyAgICBE
RUNPREVfT1BUSU9OQUxfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcs
IHRleHQpOworCisgICAgZGVjb2RlZFZhbHVlID0gdGV4dFdhc0RlY29kZWQgPyBLZXlwcmVzc0Nv
bW1hbmQoY29tbWFuZE5hbWUsIHRleHQpIDogS2V5cHJlc3NDb21tYW5kKGNvbW1hbmROYW1lKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworY2xhc3MgUGxhdGZvcm1LZXlib2FyZEV2ZW50QXBwS2l0
IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCB7CitwdWJsaWM6CisgICAg
UGxhdGZvcm1LZXlib2FyZEV2ZW50QXBwS2l0KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYg
ZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+
IGNvbW1hbmRzKQorICAgICAgICA6IFBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCkKKyAgICB7
CisgICAgICAgIG1faGFuZGxlZEJ5SW5wdXRNZXRob2QgPSBoYW5kbGVkQnlJbnB1dE1ldGhvZDsK
KyAgICAgICAgbV9jb21tYW5kcyA9IGNvbW1hbmRzOworICAgIH0KK307CisjZW5kaWYgLy8gVVNF
KEFQUEtJVCkKKworRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPFBsYXRmb3JtS2V5Ym9hcmRF
dmVudD46OmVuY29kZVZhbHVlKGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5wdXQpCit7
CisgICAgRW5jb2RlZFZhbHVlIGVuY29kZWRWYWx1ZSA9IEVuY29kZWRWYWx1ZTo6Y3JlYXRlT2Jq
ZWN0KCk7CisKKyAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBk
b3VibGUsIHRpbWVzdGFtcCwgaW5wdXQudGltZXN0YW1wKCkpOworICAgIEVOQ09ERV9TQ0FMQVJf
VFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFBsYXRmb3JtRXZlbnQ6OlR5cGUsIHR5cGUsIGlu
cHV0LnR5cGUoKSk7CisgICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1
ZSwgUGxhdGZvcm1FdmVudDo6TW9kaWZpZXJzLCBtb2RpZmllcnMsIHN0YXRpY19jYXN0PFBsYXRm
b3JtRXZlbnQ6Ok1vZGlmaWVycz4oaW5wdXQubW9kaWZpZXJzKCkpKTsKKyAgICBFTkNPREVfU0NB
TEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIHRleHQsIGlucHV0LnRleHQo
KSk7CisgICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5n
LCB1bm1vZGlmaWVkVGV4dCwgaW5wdXQudW5tb2RpZmllZFRleHQoKSk7CisgICAgRU5DT0RFX1ND
QUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5nLCBrZXlJZGVudGlmaWVyLCBp
bnB1dC5rZXlJZGVudGlmaWVyKCkpOworICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShl
bmNvZGVkVmFsdWUsIGludCwgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnB1dC53aW5kb3dzVmly
dHVhbEtleUNvZGUoKSk7CisgICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRW
YWx1ZSwgaW50LCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW5wdXQubmF0aXZlVmlydHVhbEtleUNv
ZGUoKSk7CisgICAgRU5DT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgaW50
LCBtYWNDaGFyQ29kZSwgaW5wdXQubWFjQ2hhckNvZGUoKSk7CisgICAgRU5DT0RFX1NDQUxBUl9U
WVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgYm9vbCwgYXV0b1JlcGVhdCwgaW5wdXQuaXNBdXRv
UmVwZWF0KCkpOworICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUs
IGJvb2wsIGtleXBhZCwgaW5wdXQuaXNLZXlwYWQoKSk7CisgICAgRU5DT0RFX1NDQUxBUl9UWVBF
X1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgYm9vbCwgc3lzdGVtS2V5LCBpbnB1dC5pc1N5c3RlbUtl
eSgpKTsKKyNpZiBVU0UoQVBQS0lUKQorICAgIEVOQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShl
bmNvZGVkVmFsdWUsIGJvb2wsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBpbnB1dC5oYW5kbGVkQnlJ
bnB1dE1ldGhvZCgpKTsKKyAgICBFTkNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZh
bHVlLCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiwgY29tbWFuZHMsIGlucHV0LmNvbW1hbmRzKCkp
OworI2VuZGlmCisgICAgcmV0dXJuIGVuY29kZWRWYWx1ZTsKK30KKworYm9vbCBFbmNvZGluZ1Ry
YWl0czxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVu
Y29kZWRWYWx1ZSwgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD4mIGlucHV0
KQoreworICAgIERFQ09ERV9TQ0FMQVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGRvdWJs
ZSwgdGltZXN0YW1wKTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZh
bHVlLCBQbGF0Zm9ybUV2ZW50OjpUeXBlLCB0eXBlKTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVf
V0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcnMsIG1vZGlmaWVy
cyk7CisgICAgREVDT0RFX1NDQUxBUl9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5n
LCB0ZXh0KTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBT
dHJpbmcsIHVubW9kaWZpZWRUZXh0KTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVko
ZW5jb2RlZFZhbHVlLCBTdHJpbmcsIGtleUlkZW50aWZpZXIpOworICAgIERFQ09ERV9TQ0FMQVJf
VFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGludCwgd2luZG93c1ZpcnR1YWxLZXlDb2RlKTsK
KyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBpbnQsIG5hdGl2
ZVZpcnR1YWxLZXlDb2RlKTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2Rl
ZFZhbHVlLCBpbnQsIG1hY0NoYXJDb2RlKTsKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9L
RVkoZW5jb2RlZFZhbHVlLCBib29sLCBhdXRvUmVwZWF0KTsKKyAgICBERUNPREVfU0NBTEFSX1RZ
UEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBib29sLCBrZXlwYWQpOworICAgIERFQ09ERV9TQ0FM
QVJfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGJvb2wsIHN5c3RlbUtleSk7CisjaWYgVVNF
KEFQUEtJVCkKKyAgICBERUNPREVfU0NBTEFSX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBi
b29sLCBoYW5kbGVkQnlJbnB1dE1ldGhvZCk7CisgICAgREVDT0RFX1NDQUxBUl9UWVBFX1dJVEhf
S0VZKGVuY29kZWRWYWx1ZSwgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4sIGNvbW1hbmRzKTsKKyNl
bmRpZgorCisgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBsYXRmb3JtRXZlbnQgPSBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQodHlwZSwgdGV4dCwgdW5tb2RpZmllZFRleHQsIGtleUlkZW50aWZpZXIs
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgbmF0aXZlVmlydHVhbEtleUNvZGUsIG1hY0NoYXJDb2Rl
LCBhdXRvUmVwZWF0LCBrZXlwYWQsIHN5c3RlbUtleSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOwor
I2lmIFVTRShBUFBLSVQpCisgICAgaW5wdXQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtS2V5
Ym9hcmRFdmVudEFwcEtpdD4ocGxhdGZvcm1FdmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNv
bW1hbmRzKTsKKyNlbHNlCisgICAgaW5wdXQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtS2V5
Ym9hcmRFdmVudD4ocGxhdGZvcm1FdmVudCk7CisjZW5kaWYKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPFBsYXRmb3JtTW91c2VFdmVudD46OmVuY29k
ZVZhbHVlKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgaW5wdXQpCiB7CiAgICAgRW5jb2RlZFZh
bHVlIGVuY29kZWRWYWx1ZSA9IEVuY29kZWRWYWx1ZTo6Y3JlYXRlT2JqZWN0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5oCmluZGV4IDgzOWM0NWMwMDM1
ZmJhYzczZDc5NGUyZmNjOGU0ZDljZjI5YTQzNjguLjdhZmEyMzJiNjI2ZGEwZGE1MDQ0MTgxYWJm
NTJmOTUyN2Q5NzA1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxp
emF0aW9uTWV0aG9kcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9u
TWV0aG9kcy5oCkBAIC0zMiwxOSArMzIsMzQgQEAKIAogI2luY2x1ZGUgPHJlcGxheS9FbmNvZGVk
VmFsdWUuaD4KICNpbmNsdWRlIDxyZXBsYXkvTm9uZGV0ZXJtaW5pc3RpY0lucHV0Lmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEb2N1bWVu
dDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgUGFnZTsKK2NsYXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDsKIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xh
c3MgVVJMOworCisjaWYgVVNFKEFQUEtJVCkKK3N0cnVjdCBLZXlwcmVzc0NvbW1hbmQ7CisjZW5k
aWYKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogLy8gVGVtcGxhdGUgc3BlY2lhbGl6YXRpb25z
IG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgc2FtZSBuYW1lc3BhY2UgYXMgdGhlIHRlbXBsYXRlIGRl
Y2xhcmF0aW9uLgogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBVU0UoQVBQS0lUKQordGVtcGxhdGU8
PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiB7CisgICAg
dHlwZWRlZiBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQgRGVjb2RlZFR5cGU7CisKKyAgICBzdGF0
aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFdlYkNvcmU6OktleXByZXNzQ29tbWFu
ZCYgdmFsdWUpOworICAgIHN0YXRpYyBib29sIGRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYsIFdl
YkNvcmU6OktleXByZXNzQ29tbWFuZCYgdmFsdWUpOworfTsKKyNlbmRpZiAvLyBVU0UoQVBQS0lU
KQorCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxOb25kZXRlcm1pbmlzdGljSW5w
dXRCYXNlPiB7CiAgICAgdHlwZWRlZiBOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlIERlY29kZWRU
eXBlOwogCkBAIC01Miw2ICs2NywxMyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0
czxOb25kZXRlcm1pbmlzdGljSW5wdXRCYXNlPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFs
dWUoRW5jb2RlZFZhbHVlJiwgc3RkOjp1bmlxdWVfcHRyPE5vbmRldGVybWluaXN0aWNJbnB1dEJh
c2U+JiB2YWx1ZSk7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxXZWJD
b3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+IHsKKyAgICB0eXBlZGVmIFdlYkNvcmU6OlBsYXRm
b3JtS2V5Ym9hcmRFdmVudCBEZWNvZGVkVHlwZTsKKworICAgIHN0YXRpYyBFbmNvZGVkVmFsdWUg
ZW5jb2RlVmFsdWUoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50JiB2YWx1ZSk7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudD4mIHZhbHVlKTsKK307CisKIHRlbXBs
YXRlPD4gc3RydWN0IEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudD4g
ewogICAgIHR5cGVkZWYgV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50IERlY29kZWRUeXBlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvVXNlcklucHV0QnJpZGdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwCmluZGV4IDMwYTBlNmMz
ZDQ0MWQyM2JjNjZlZjM3MGYzNDcxYWI3NWUzMzBkYmYuLjM4M2MwOGMxY2Q2MjNkNDhhYjRlM2U2
YWUxMGJiYWIyZGVhOTM2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9Vc2Vy
SW5wdXRCcmlkZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlk
Z2UuY3BwCkBAIC01NSw2ICs1NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVXNlcklucHV0
QnJpZGdlOjpVc2VySW5wdXRCcmlkZ2UoUGFnZSYgcGFnZSkKICAgICA6IG1fcGFnZShwYWdlKQor
I2lmIEVOQUJMRShXRUJfUkVQTEFZKQorICAgICwgbV9zdGF0ZShVc2VySW5wdXRCcmlkZ2U6OlN0
YXRlOjpPcGVuKQorI2VuZGlmCiB7CiB9CiAKQEAgLTEzNiw4ICsxMzksMTkgQEAgYm9vbCBVc2Vy
SW5wdXRCcmlkZ2U6OmhhbmRsZU1vdXNlTW92ZU9uU2Nyb2xsYmFyRXZlbnQoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JgogICAgIHJldHVybiBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVy
KCkucGFzc01vdXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhtb3VzZUV2ZW50KTsKIH0KIAotYm9v
bCBVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZUtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRF
dmVudCYga2V5RXZlbnQsIElucHV0U291cmNlKQorYm9vbCBVc2VySW5wdXRCcmlkZ2U6OmhhbmRs
ZUtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5RXZlbnQsIElucHV0U291
cmNlIGlucHV0U291cmNlKQogeworI2lmIEVOQUJMRShXRUJfUkVQTEFZKQorICAgIEVBUkxZX1JF
VFVSTl9JRl9TSE9VTERfSUdOT1JFX0lOUFVUOworCisgICAgaWYgKGFjdGl2ZUN1cnNvcigpLmlz
Q2FwdHVyaW5nKCkpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtS2V5Ym9hcmRF
dmVudD4gb3duZWRFdmVudCA9IHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1LZXlib2FyZEV2ZW50
PihrZXlFdmVudCk7CisgICAgICAgIGFjdGl2ZUN1cnNvcigpLmFwcGVuZElucHV0PEhhbmRsZUtl
eVByZXNzPihzdGQ6Om1vdmUob3duZWRFdmVudCkpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKGlucHV0U291cmNlKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIG1fcGFnZS5mb2N1c0Nv
bnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5rZXlFdmVudChr
ZXlFdmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1
dHMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbgppbmRleCA2YzMy
MjgzZWZmMDdlMGIwNTk2Njk0NGNhODZmNmE4ZmNhMjZjODM4Li5lMjRmZDliYTQ4ODBjMDIzNTY5
MmU3M2E2ODU0MTlhNGM2OWM2MTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkv
V2ViSW5wdXRzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1dlYklucHV0cy5qc29u
CkBAIC01NSw2ICs1NSwxMCBAQAogICAgICAgICAgICAgICAgICJoZWFkZXIiOiAicGFnZS9QYWdl
LmgiCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1l
IjogIlBsYXRmb3JtS2V5Ym9hcmRFdmVudCIsICJtb2RlIjogIk9XTkVEIiwKKyAgICAgICAgICAg
ICAgICAiaGVhZGVyIjogInBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJQbGF0Zm9y
bU1vdXNlRXZlbnQiLCAibW9kZSI6ICJPV05FRCIsCiAgICAgICAgICAgICAgICAgImhlYWRlciI6
ICJwbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICAgICAgICAgICAgIH0sCkBAIC0xMzQs
NiArMTM4LDE0IEBACiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKKyAgICAg
ICAgICAgICJuYW1lIjogIkhhbmRsZUtleVByZXNzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJUaGUgZW1iZWRkZXIgc2lnbmFsbGVkIGEga2V5IHByZXNzIGV2ZW50LiIsCisgICAgICAg
ICAgICAicXVldWUiOiAiRVZFTlRfTE9PUCIsCisgICAgICAgICAgICAibWVtYmVycyI6IFsKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInBsYXRmb3JtRXZlbnQiLCAidHlwZSI6ICJQbGF0Zm9y
bUtleWJvYXJkRXZlbnQiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgewog
ICAgICAgICAgICAgIm5hbWUiOiAiSW5pdGlhbE5hdmlnYXRpb24iLAogICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIkluaXRpYXRlIHRoZSBpbml0aWFsIG1haW4gZnJhbWUgbmF2aWdhdGlvbi4i
LAogICAgICAgICAgICAgInF1ZXVlIjogIkVWRU5UX0xPT1AiLApkaWZmIC0tZ2l0IGEvQ2hhbmdl
TG9nIGIvQ2hhbmdlTG9nCmluZGV4IGExNzcyMmJkYjMwNzUwY2ZlOGQwN2IxMzJiOTFiMzk1NGEx
NDMyMGEuLjFkOWYzOTFlZGFiMmYxYTg4NjNkNjIwYTEzODMxMjc0NGE1MTk1ZTUgMTAwNjQ0Ci0t
LSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNC0wMy0y
MSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgUmVwbGF5OiBj
YXB0dXJlIGFuZCByZXBsYXkga2V5Ym9hcmQgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAzMTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1hbnVhbFRlc3RzL2luc3BlY3Rvci9yZXBsYXkt
a2V5Ym9hcmQtZXZlbnRzLmh0bWw6IEFkZGVkLgorCiAyMDE0LTAzLTIwICBUaGlhZ28gZGUgQmFy
cm9zIExhY2VyZGEgIDx0aGlhZ28ubGFjZXJkYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtF
RkxdW0dUS10gR2V0IENNYWtlIHRvIGZpbmQgRnJlZXR5cGUyIHByb3Blcmx5CmRpZmYgLS1naXQg
YS9NYW51YWxUZXN0cy9pbnNwZWN0b3IvcmVwbGF5LWtleWJvYXJkLWV2ZW50cy5odG1sIGIvTWFu
dWFsVGVzdHMvaW5zcGVjdG9yL3JlcGxheS1rZXlib2FyZC1ldmVudHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZGMzYzRjOGY5NDlkZTFlZjU0NjljYzAyODJhZjA1ZDNhYmExYmVkCi0tLSAvZGV2L251bGwK
KysrIGIvTWFudWFsVGVzdHMvaW5zcGVjdG9yL3JlcGxheS1rZXlib2FyZC1ldmVudHMuaHRtbApA
QCAtMCwwICsxLDEwNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M
IDQuMDEvL0VOIgorICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0
ZCI+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9j
cnlwdG8tbWQ1LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBs
YW5ndWFnZT0iamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGRvY3VtZW50Lm9ua2V5
cHJlc3MgPSBoYW5kbGVFdmVudDsKKyAgICBkb2N1bWVudC5vbmtleWRvd24gPSBoYW5kbGVFdmVu
dDsKKyAgICBkb2N1bWVudC5vbmtleXVwID0gaGFuZGxlRXZlbnQ7CisgICAgd2luZG93LmR1bXBl
ZEV2ZW50cyA9IFtdOworCisgICAgZnVuY3Rpb24gaGFuZGxlRXZlbnQoZXZlbnQpIHsKKyAgICAg
ICAgdmFyIHByb3BlcnRpZXMgPSBbInR5cGUiLCAiZXZlbnRQaGFzZSIsICJidWJibGVzIiwgImNh
bmNlbGFibGUiLCAia2V5SWRlbnRpZmllciIsICJsb2NhdGlvbiIsICJzaGlmdEtleSIsICJhbHRL
ZXkiLCAibWV0YUtleSIsICJhbHRHcmFwaEtleSIsICJrZXlDb2RlIiwgImNoYXJDb2RlIl07Cisg
ICAgICAgIG9iaiA9IHt9OworICAgICAgICBmb3IgKHZhciBrZXkgb2YgcHJvcGVydGllcykKKyAg
ICAgICAgICAgIG9ialtrZXldID0gZXZlbnRba2V5XTsKKworICAgICAgICBkdW1wZWRFdmVudHMu
cHVzaChvYmopOworCisgICAgICAgIHZhciBibG9jayA9IGNyZWF0ZUJsb2NrKGhleF9tZDUoSlNP
Ti5zdHJpbmdpZnkob2JqKSksIGV2ZW50KTsKKyAgICAgICAgdmFyIGJsb2Nrc0NvbnRhaW5lciA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibG9ja3MiKTsKKyAgICAgICAgYmxvY2tzQ29udGFp
bmVyLmFwcGVuZENoaWxkKGJsb2NrKTsKKworICAgICAgICB2YXIgaGFzaExhYmVsID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImhhc2giKTsKKyAgICAgICAgaGFzaC50ZXh0Q29udGVudCA9IGhl
eF9tZDUoSlNPTi5zdHJpbmdpZnkoZHVtcGVkRXZlbnRzKSk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gY3JlYXRlQmxvY2soaGFzaCwgZXZlbnQpIHsKKworICAgICAgICBmdW5jdGlvbiBnbHlwaEZv
clR5cGUodHlwZSkgeworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBj
YXNlICJrZXlkb3duIjogcmV0dXJuICJEIjsKKyAgICAgICAgICAgIGNhc2UgImtleXVwIjogcmV0
dXJuICJVIjsKKyAgICAgICAgICAgIGNhc2UgImtleXByZXNzIjogcmV0dXJuICJLIjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZhciBjb2xvciA9ICIjIiArIGhhc2guc3Vi
c3RyKDAsNik7CisgICAgICAgIHZhciBibG9jayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNw
YW4iKTsKKyAgICAgICAgdmFyIGV2ZW50VHlwZUxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic3BhbiIpOworICAgICAgICBldmVudFR5cGVMYWJlbC5jbGFzc05hbWUgPSAiZXZlbnQtbGFi
ZWwiOworICAgICAgICBldmVudFR5cGVMYWJlbC50ZXh0Q29udGVudCA9IGdseXBoRm9yVHlwZShl
dmVudC50eXBlKTsKKyAgICAgICAgYmxvY2suYXBwZW5kQ2hpbGQoZXZlbnRUeXBlTGFiZWwpOwor
CisgICAgICAgIHZhciBrZXlMYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
KyAgICAgICAga2V5TGFiZWwuY2xhc3NOYW1lID0gImtleS1sYWJlbCI7CisgICAgICAgIHZhciBj
b2RlcG9pbnRSZWdFeCA9IC9eVVwrXGR7NH0kLzsKKyAgICAgICAga2V5TGFiZWwudGV4dENvbnRl
bnQgPSBldmVudC5rZXlJZGVudGlmaWVyLm1hdGNoKGNvZGVwb2ludFJlZ0V4KSA/IFN0cmluZy5m
cm9tQ2hhckNvZGUoZXZlbnQua2V5Q29kZSkgOiBldmVudC5rZXlJZGVudGlmaWVyOworICAgICAg
ICBibG9jay5hcHBlbmRDaGlsZChrZXlMYWJlbCk7CisgICAgICAgIGJsb2NrLnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9IGNvbG9yOworICAgICAgICByZXR1cm4gYmxvY2s7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc3RhdGVIYXNoKCkgeworICAgICAgICByZXR1cm4gaGV4X21kNShKU09OLnN0cmlu
Z2lmeShkdW1wZWRFdmVudHMpKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KK2JvZHkgeworICAgIG1heC13aWR0aDogODAwcHg7Cit9CisjYmxvY2tzIHsKKyAg
ICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgICAgd2lkdGg6IDYwMHB4OworICAgIC13ZWJraXQt
ZmxleC1mbG93OiByb3cgd3JhcDsKK30KKworI2Jsb2NrcyA+IHNwYW4geworICAgIHBhZGRpbmc6
IDJweCAycHg7CisgICAgYm9yZGVyLXJhZGl1czogNHB4OworICAgIG1hcmdpbjogMnB4OworICAg
IGZvbnQtc2l6ZTogMTJweDsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICBmb250LWZhbWls
eTogc2Fucy1zZXJpZjsKKyAgICBjb2xvcjogI2ZmZjsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7
Cit9CisKKy5ldmVudC1sYWJlbDo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAnKCc7Cit9CisKKy5l
dmVudC1sYWJlbDo6YWZ0ZXIgeworICAgIGNvbnRlbnQ6ICcpICc7Cit9CisKKy5rZXktbGFiZWwg
eworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyBwYWdlIGlzIGEgbWFudWFs
IHRlc3QgZm9yIGNhcHR1cmUgYW5kIHJlcGxheSBvZiBrZXlib2FyZC1yZWxhdGVkIGV2ZW50cy48
L3A+Cis8cD5CZWxvdywgYSBibG9jayBpcyBjcmVhdGVkIGZvciBlYWNoIGtleWJvYXJkIGV2ZW50
LCB3aGVyZSB0aGUgY29sb3IgaXMgZGVyaXZlZCBmcm9tIGEgaGFzaCBvZiB0aGUga2V5Ym9hcmQg
ZXZlbnQuIEF0IHRoZSBib3R0b20gaXMgYSBjdW11bGF0aXZlIGhhc2ggb2YgYWxsIGtleWJvYXJk
IGV2ZW50IGRhdGEuPC9wPgorPGhyLz4KKzxwPgorVG8gdGVzdCB0aGUgcmVwbGF5IGZ1bmN0aW9u
YWxpdHksIG9wZW4gdGhlIFdlYiBJbnNwZWN0b3IsIHN0YXJ0IGNhcHR1cmluZywgYW5kIHRoZW4g
dHlwZSB0ZXh0IGludG8gdGhlIHRleHRhcmVhLiBBZnRlciBzb21lIHRpbWUsIHN0b3AgY2FwdHVy
aW5nIGFuZCB0aGVuIHJlcGxheS4gVGhlIHJlcGxheWVkIGV4ZWN1dGlvbiBzaG91bGQgcHJvZHVj
ZSB0aGUgc2FtZSBzZXF1ZW5jZSBvZiBibG9ja3MuIE1vcmUgaW1wb3J0YW50bHksIHRoZSBjdW11
bGF0aXZlIGhhc2ggdmFsdWUgc2hvdWxkIGJlIHRoZSBzYW1lIGF0IHRoZSBlbmQgb2YgY2FwdHVy
aW5nIGFuZCBhdCB0aGUgZW5kIG9mIGFueSBzdWJzZXF1ZW50IHJlcGxheXMuPC9wPgorPC9wPgor
PGhyLz4KKzxmb3JtPjx0ZXh0YXJlYSBjb2xzPSI4MCIgcm93cz0iMjAiPjwvdGV4dGFyZWE+PC9m
b3JtPgorPGRpdiBpZD0iaGFzaCI+PC9kaXY+Cis8ZGl2IGlkPSJibG9ja3MiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="251776"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>