<?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>94142</bug_id>
          
          <creation_ts>2012-08-15 13:38:29 -0700</creation_ts>
          <short_desc>Added modifiers to distinguish between left/right Shift/Ctrl/Alt</short_desc>
          <delta_ts>2012-09-06 02:48:12 -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>New Bugs</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>95958</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Raymes Khoury">raymes</reporter>
          <assigned_to name="Raymes Khoury">raymes</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>peter+ews</cc>
    
    <cc>sail</cc>
    
    <cc>tasak</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>696321</commentid>
    <comment_count>0</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-08-15 13:38:29 -0700</bug_when>
    <thetext>Added modifiers to distinguish between left/right Shift/Ctrl/Alt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696454</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-15 16:00:40 -0700</bug_when>
    <thetext>Could you please provide more details about this issue? Specifically, I&apos;m wondering if it has been already resolved in bug 86694.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697256</commentid>
    <comment_count>2</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-08-16 10:23:52 -0700</bug_when>
    <thetext>Thanks for the link (I intended on uploading a patch with this but webkit-patch upload broke in the process).

There are 2 problems with the existing behavior:
1) The Windows implementation of WebInputEventFactory never produces key events with e.g. VK_LSHIFT or VK_RSHIFT, only VK_SHIFT. 
2) The more major problem here is that after these events round-trip through WebCore and get converted back to WebKeyboardEvents, the location information is lost (see Source/WebCore/dom/KeyboardEvent.cpp:keyCode() which calls windowsVirtualKeyCode()). This means that we don&apos;t have access to the key location in plugins, for example. Furthermore, I would be concerned about converting back to the L/R versions of the keycodes because existing code relies on checking for the non-locational version of the keycode (e.g. VK_SHIFT). 

I believe that the L/R version of the keycodes should never be returned from event factories (after all they are never returned by the Windows API). We should have a separate location modifier/field in WebKeyboardEvent for specifying the location of the keypress (as in KeyboardEvent). I&apos;ll work up a patch to this effect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707791</commentid>
    <comment_count>3</comment_count>
      <attachid>161297</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-08-29 13:22:47 -0700</bug_when>
    <thetext>Created attachment 161297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707801</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 13:29:48 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707802</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 13:30:06 -0700</bug_when>
    <thetext>Attachment 161297 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Sourc...&quot; exit_code: 1
Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp:36:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 2 in 11 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>707827</commentid>
    <comment_count>6</comment_count>
      <attachid>161305</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-08-29 13:50:03 -0700</bug_when>
    <thetext>Created attachment 161305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707870</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 14:26:42 -0700</bug_when>
    <thetext>Attachment 161305 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Sourc...&quot; exit_code: 1
Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp:34:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 10 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>707965</commentid>
    <comment_count>8</comment_count>
      <attachid>161305</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-08-29 15:49:28 -0700</bug_when>
    <thetext>Comment on attachment 161305
Patch

Attachment 161305 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13687395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708228</commentid>
    <comment_count>9</comment_count>
      <attachid>161305</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 19:44:18 -0700</bug_when>
    <thetext>Comment on attachment 161305
Patch

Attachment 161305 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13687499</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708709</commentid>
    <comment_count>10</comment_count>
      <attachid>161493</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-08-30 09:31:29 -0700</bug_when>
    <thetext>Created attachment 161493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710807</commentid>
    <comment_count>11</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-09-03 21:36:04 -0700</bug_when>
    <thetext>Ping for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711546</commentid>
    <comment_count>12</comment_count>
      <attachid>161493</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-04 16:21:16 -0700</bug_when>
    <thetext>Comment on attachment 161493
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:20
&gt; +        modifiers. Since this only changes internal representation, no new
&gt; +        tests are added.

Can you add a &apos;why&apos; to the ChangeLog entry?  Saying that you need this for plugins would be sufficient.

&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:51
&gt; +    if (wparam == VK_SHIFT) {
&gt; +        if (GetKeyState(VK_LSHIFT))
&gt; +            modifier = WebInputEvent::IsLeft;
&gt; +        else if (GetKeyState(VK_RSHIFT))

Should we move all of this into the switch below?

&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:104
&gt; +    ASSERT(modifier

Is this assert correct? Can&apos;t modifier be 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712238</commentid>
    <comment_count>13</comment_count>
      <attachid>162280</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-09-05 10:42:44 -0700</bug_when>
    <thetext>Created attachment 162280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712242</commentid>
    <comment_count>14</comment_count>
      <attachid>161493</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-09-05 10:45:20 -0700</bug_when>
    <thetext>Comment on attachment 161493
Patch

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

&gt;&gt; Source/WebKit/chromium/ChangeLog:20
&gt;&gt; +        tests are added.
&gt; 
&gt; Can you add a &apos;why&apos; to the ChangeLog entry?  Saying that you need this for plugins would be sufficient.

Done.

&gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:51
&gt;&gt; +        else if (GetKeyState(VK_RSHIFT))
&gt; 
&gt; Should we move all of this into the switch below?

Done.

&gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:104
&gt;&gt; +    ASSERT(modifier
&gt; 
&gt; Is this assert correct? Can&apos;t modifier be 0?

Yes, sorry this was introduced while fixing style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712399</commentid>
    <comment_count>15</comment_count>
      <attachid>162280</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-05 12:05:50 -0700</bug_when>
    <thetext>Comment on attachment 162280
Patch

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

&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:86
&gt; +        if (GetKeyState(VK_LSHIFT) &amp; 0x8000)

Nit: I would probably make a function IsHighBitSet. It would be a little easier to read.

&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:111
&gt; +    ASSERT(modifier == 0

Nit: WebKit style is !modifier rather than comparing to 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712551</commentid>
    <comment_count>16</comment_count>
      <attachid>162340</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-09-05 14:43:56 -0700</bug_when>
    <thetext>Created attachment 162340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712554</commentid>
    <comment_count>17</comment_count>
      <attachid>162280</attachid>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-09-05 14:45:12 -0700</bug_when>
    <thetext>Comment on attachment 162280
Patch

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

&gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:86
&gt;&gt; +        if (GetKeyState(VK_LSHIFT) &amp; 0x8000)
&gt; 
&gt; Nit: I would probably make a function IsHighBitSet. It would be a little easier to read.

Changed to isKeyDown

&gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:111
&gt;&gt; +    ASSERT(modifier == 0
&gt; 
&gt; Nit: WebKit style is !modifier rather than comparing to 0.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712609</commentid>
    <comment_count>18</comment_count>
    <who name="Raymes Khoury">raymes</who>
    <bug_when>2012-09-05 15:46:09 -0700</bug_when>
    <thetext>*** Bug 93132 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713062</commentid>
    <comment_count>19</comment_count>
      <attachid>162340</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 02:18:55 -0700</bug_when>
    <thetext>Comment on attachment 162340
Patch

Clearing flags on attachment: 162340

Committed r127711: &lt;http://trac.webkit.org/changeset/127711&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713063</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 02:18:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161297</attachid>
            <date>2012-08-29 13:22:47 -0700</date>
            <delta_ts>2012-08-29 13:50:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94142-20120829132236.patch</filename>
            <type>text/plain</type>
            <size>19701</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGE1YjI2YjQ1OGYyZmJlODE2ZWRlODE3YWZmNTMwNGRjZGQyMDA3MjUuLmY0M2ZhZDBhNmE4NTUx
MmZlZWU5Yzg3OTBhY2EzMjNjM2U2NzRlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDkgQEAKKzIwMTItMDgtMjkgIFJheW1lcyBLaG91cnkgIDxyYXltZXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEFkZGVkIG1vZGlmaWVycyB0byBkaXN0aW5ndWlzaCBiZXR3ZWVu
IGxlZnQvcmlnaHQgU2hpZnQvQ3RybC9BbHQgaW4gV2ViSW5wdXRFdmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MTQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSB3ZSBkaXN0aW5n
dWlzaGVkIGJldHdlZW4gbGVmdC9yaWdodCBTaGlmdC9DdHJsL0FsdCBpbgorICAgICAgICBXZWJJ
bnB1dEV2ZW50cyBieSB1c2luZyB0aGUgbG9jYXRpb24tc3BlY2lmaWMgdmlydHVhbCBrZXljb2Rl
cyAoZS5nLgorICAgICAgICBWS19MU0hJRlQgaW5zdGVhZCBvZiBWS19TSElGVC4gSG93ZXZlciwg
dGhlIFdpbmRvd3MgQVBJIGZvciBrZXkgZXZlbnRzCisgICAgICAgIGFsd2F5cyByZXR1cm5zIHRo
ZSBub24tbG9jYXRpb25hbCB2ZXJzaW9uIChlLmcuIFZLX1NISUZUKS4KKyAgICAgICAgRnVydGhl
cm1vcmUsIEtleWJvYXJkRXZlbnQgYWxzbyByZXR1cm5zCisgICAgICAgIG5vbi1sb2NhdGlvbmFs
IGtleWNvZGVzIGFuZCBzZXBhcmF0ZXMgdGhlIGxvY2F0aW9uIGluZm9ybWF0aW9uIHdoaWNoCisg
ICAgICAgIG1hdGNoZXMgdGhlIGJlaGF2aW9yIGRlc2NyaWJlZCBpbiB0aGUgRE9NMworICAgICAg
ICBzcGVjIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWtl
eWJvYXJkZXZlbnRzLiBXZQorICAgICAgICBzaG91bGQgYmUgY29uc2lzdGVudCB3aXRoIHRoaXMg
aW4gb3VyIHJlcHJlc2VudGF0aW9uIG9mIGtleSBldmVudHMuCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2hhbmdlcyBXZWJJbnB1dEV2ZW50cyBzbyB0aGV5IGFsd2F5cyBzdG9yZSB0aGUKKyAgICAgICAg
bm9uLWxvY2F0aW9uYWwga2V5Y29kZSBhbmQgbG9jYXRpb24gaW5mb3JtYXRpb24gaXMgc3RvcmVk
IGluCisgICAgICAgIG1vZGlmaWVycy4gU2luY2UgdGhpcyBvbmx5IGNoYW5nZXMgaW50ZXJuYWwg
cmVwcmVzZW50YXRpb24sIG5vIG5ldworICAgICAgICB0ZXN0cyBhcmUgYWRkZWQuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhbHNvIGVuc3VyZXMgdGhhdCB3aGVuIEtleWJvYXJkRXZlbnRzIGFyZSBj
b252ZXJ0ZWQgYmFjayB0bworICAgICAgICBXZWJJbnB1dEV2ZW50cyBsb2NhdGlvbiBpbmZvcm1h
dGlvbiBpcyBwcmVzZXJ2ZWQgKHdoaWNoIHdhcyBub3QKKyAgICAgICAgaGFwcGVuaW5nIGJlZm9y
ZSkuIEEgdW5pdHRlc3QgaXMgYWRkZWQgZm9yIHRoaXMuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lw
aToKKyAgICAgICAgKiBwdWJsaWMvV2ViSW5wdXRFdmVudC5oOgorICAgICAgICAoV2ViS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6d2luZG93c0tleUNvZGVX
aXRob3V0TG9jYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpsb2Nh
dGlvbk1vZGlmaWVyc0Zyb21XaW5kb3dzS2V5Q29kZSk6CisgICAgICAgICogc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1LZXlib2FyZEV2
ZW50QnVpbGRlcjo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYktleWJvYXJkRXZlbnRCdWlsZGVyOjpXZWJLZXlib2FyZEV2ZW50QnVpbGRlcik6Cisg
ICAgICAgICogc3JjL2FuZHJvaWQvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgICog
c3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklu
cHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBzcmMvbWFjL1dlYklu
cHV0RXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9y
eTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9y
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldExvY2F0aW9uTW9kaWZpZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgICog
dGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcDogQWRkZWQuCisKIDIwMTItMDgt
MTMgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSByZWxlYXNlIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6bV9wbHVnaW5XaWRnZXQgcmVmcHRyIHVw
b24gUGx1Z2luIERvY3VtZW50IGRldGFjaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmlu
ZGV4IDEyYzE0OWE5OTE5NTdjNjNlMDA4MDE3NmFjZTE2YmUyYTE4MDY5ZTIuLjkyNWMxZTc2ZmMz
ZGU5OGI2MmI3M2UwNjE5NTQ3YzczNmQyZDkyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwaQpAQCAtMTU5LDYgKzE1OSw3IEBACiAgICAgICAgICAgICAndGVzdHMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViRmxvYXRB
bmltYXRpb25DdXJ2ZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJGcmFtZVRlc3Qu
Y3BwJywKKyAgICAgICAgICAgICd0ZXN0cy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvblRlc3QuY3Bw
JywKICAgICAgICAgICAgICd0ZXN0cy9XZWJMYXllclRlc3QuY3BwJywKICAgICAgICAgICAgICd0
ZXN0cy9XZWJMYXllclRyZWVWaWV3VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYkxh
eWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSW5wdXRFdmVudC5oCmluZGV4IDA5MDQ4Y2RlZDdjMTQ0Njk0NTM2NDM0Mjk2ZjdhZDY5
ZGU4ZTdiMzcuLmEyOGZlMDM3NjY0ZTAyMWQ4NTIzZjVlYTg0ZDVhMjQ3N2ZhZjk4ZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0RXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2ZW50LmgKQEAgLTE1MSw2
ICsxNTEsMTAgQEAgcHVibGljOgogICAgICAgICAvLyBldmVudCBhbmQgYmFjayB3aWxsIG5vdCBw
cmVzZXJ2ZSB0aGVzZSBmbGFncy4KICAgICAgICAgQ2Fwc0xvY2tPbiAgICAgICA9IDEgPDwgOSwK
ICAgICAgICAgTnVtTG9ja09uICAgICAgICA9IDEgPDwgMTAsCisKKyAgICAgICAgLy8gTGVmdC9y
aWdodCBtb2RpZmllcnMgZm9yIGtleWJvYXJkIGV2ZW50cy4KKyAgICAgICAgSXNMZWZ0ICAgICAg
ICAgICA9IDEgPDwgMTEsCisgICAgICAgIElzUmlnaHQgICAgICAgICAgPSAxIDw8IDEyLAogICAg
IH07CiAKICAgICBzdGF0aWMgY29uc3QgaW50IElucHV0TW9kaWZpZXJzID0gU2hpZnRLZXkgfCBD
b250cm9sS2V5IHwgQWx0S2V5IHwgTWV0YUtleTsKQEAgLTIzNyw3ICsyNDEsMTEgQEAgcHVibGlj
OgogICAgIC8vIHx3aW5kb3dzS2V5Q29kZXwgaXMgdGhlIFdpbmRvd3Mga2V5IGNvZGUgYXNzb2Np
YXRlZCB3aXRoIHRoaXMga2V5CiAgICAgLy8gZXZlbnQuICBTb21ldGltZXMgaXQncyBkaXJlY3Qg
ZnJvbSB0aGUgZXZlbnQgKGkuZS4gb24gV2luZG93cyksCiAgICAgLy8gc29tZXRpbWVzIGl0J3Mg
dmlhIGEgbWFwcGluZyBmdW5jdGlvbi4gIElmIHlvdSB3YW50IGEgbGlzdCwgc2VlCi0gICAgLy8g
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlib2FyZENvZGVzKiAuCisgICAgLy8gV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlib2FyZENvZGVzKiAuIE5vdGUgdGhhdCB0aGlzIHNob3Vs
ZAorICAgIC8vIEFMV0FZUyBzdG9yZSB0aGUgbm9uLWxvY2F0aW9uYWwgdmVyc2lvbiBvZiBhIGtl
eWNvZGUgYXMgdGhpcyBpcworICAgIC8vIHdoYXQgaXMgcmV0dXJuZWQgYnkgdGhlIFdpbmRvd3Mg
QVBJLiBGb3IgZXhhbXBsZSwgaXQgc2hvdWxkCisgICAgLy8gc3RvcmUgVktfU0hJRlQgaW5zdGVh
ZCBvZiBWS19SU0hJRlQuIFRoZSBsb2NhdGlvbiBpbmZvcm1hdGlvbgorICAgIC8vIHNob3VsZCBi
ZSBzdG9yZWQgaW4gfG1vZGlmaWVyc3wuCiAgICAgaW50IHdpbmRvd3NLZXlDb2RlOwogCiAgICAg
Ly8gVGhlIGFjdHVhbCBrZXkgY29kZSBnZW5lbmVyYXRlZCBieSB0aGUgcGxhdGZvcm0uICBUaGUg
RE9NIHNwZWMgcnVucwpAQCAtMjc5LDYgKzI4Nyw5IEBAIHB1YmxpYzoKICAgICAvLyBTZXRzIGtl
eUlkZW50aWZpZXIgYmFzZWQgb24gdGhlIHZhbHVlIG9mIHdpbmRvd3NLZXlDb2RlLiAgVGhpcyBp
cwogICAgIC8vIGhhbmR5IGZvciBnZW5lcmF0aW5nIHN5bnRoZXRpYyBrZXlib2FyZCBldmVudHMu
CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEtleUlkZW50aWZpZXJGcm9tV2luZG93c0tleUNv
ZGUoKTsKKworICAgIHN0YXRpYyBpbnQgd2luZG93c0tleUNvZGVXaXRob3V0TG9jYXRpb24oaW50
IGtleWNvZGUpOworICAgIHN0YXRpYyBpbnQgbG9jYXRpb25Nb2RpZmllcnNGcm9tV2luZG93c0tl
eUNvZGUoaW50IGtleWNvZGUpOwogfTsKIAogLy8gV2ViTW91c2VFdmVudCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50LmNwcAppbmRleCA2NmEwNDgwYjRk
NGFkYWMzMTdiYTMxMjlhN2YwMmNkM2E1ZmNiNDY4Li5iMjNjZWMxOGE2Yzk3ZTQ1YjVjMzhkYjAy
NjZhZGFiOTQwYTZlNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJbnB1dEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1
dEV2ZW50LmNwcApAQCAtMjAyLDQgKzIwMiw0MSBAQCB2b2lkIFdlYktleWJvYXJkRXZlbnQ6OnNl
dEtleUlkZW50aWZpZXJGcm9tV2luZG93c0tleUNvZGUoKQogICAgICAgICBzbnByaW50ZihrZXlJ
ZGVudGlmaWVyLCBzaXplb2Yoa2V5SWRlbnRpZmllciksICJVKyUwNFgiLCB0b3VwcGVyKHdpbmRv
d3NLZXlDb2RlKSk7CiB9CiAKKy8vIHN0YXRpYworaW50IFdlYktleWJvYXJkRXZlbnQ6OndpbmRv
d3NLZXlDb2RlV2l0aG91dExvY2F0aW9uKGludCBrZXljb2RlKQoreworICAgIHN3aXRjaCAoa2V5
Y29kZSkgeworICAgIGNhc2UgVktfTENPTlRST0w6CisgICAgY2FzZSBWS19SQ09OVFJPTDoKKyAg
ICAgICAgcmV0dXJuIFZLX0NPTlRST0w7CisgICAgY2FzZSBWS19MU0hJRlQ6CisgICAgY2FzZSBW
S19SU0hJRlQ6CisgICAgICAgIHJldHVybiBWS19TSElGVDsKKyAgICBjYXNlIFZLX0xNRU5VOgor
ICAgIGNhc2UgVktfUk1FTlU6CisgICAgICAgIHJldHVybiBWS19NRU5VOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiBrZXljb2RlOworICAgIH0KK30KKworLy8gc3RhdGljCitpbnQgV2Vi
S2V5Ym9hcmRFdmVudDo6bG9jYXRpb25Nb2RpZmllcnNGcm9tV2luZG93c0tleUNvZGUoaW50IGtl
eWNvZGUpCit7CisgICAgc3dpdGNoIChrZXljb2RlKSB7CisgICAgY2FzZSBWS19MQ09OVFJPTDoK
KyAgICBjYXNlIFZLX0xTSElGVDoKKyAgICBjYXNlIFZLX0xNRU5VOgorICAgIGNhc2UgVktfTFdJ
TjoKKyAgICAgICAgcmV0dXJuIElzTGVmdDsKKyAgICBjYXNlIFZLX1JDT05UUk9MOgorICAgIGNh
c2UgVktfUlNISUZUOgorICAgIGNhc2UgVktfUk1FTlU6CisgICAgY2FzZSBWS19SV0lOOgorICAg
ICAgICByZXR1cm4gSXNSaWdodDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKKyAg
ICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDAzOTFjMjg1
YjdmOGUzZTY2OTUxNjM5ZDM2NWY1OGJkNzNlOGE5OTIuLjQxMDAyYjllYTcwNTc1N2UyMzU4MmVi
ZmQxMjk1Mzk0YjM1NmZhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTIyMyw3ICsyMjMsNiBAQCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKGNv
bnN0IFdlYktleWJvYXJkRXZlbgogICAgIG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoZS51bm1v
ZGlmaWVkVGV4dCk7CiAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKGUua2V5SWRlbnRpZmll
cik7CiAgICAgbV9hdXRvUmVwZWF0ID0gKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNB
dXRvUmVwZWF0KTsKLSAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9IGUud2luZG93c0tleUNv
ZGU7CiAgICAgbV9uYXRpdmVWaXJ0dWFsS2V5Q29kZSA9IGUubmF0aXZlS2V5Q29kZTsKICAgICBt
X2lzS2V5cGFkID0gKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQpOwogICAg
IG1faXNTeXN0ZW1LZXkgPSBlLmlzU3lzdGVtS2V5OwpAQCAtMjM3LDYgKzIzNiwyOCBAQCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKGNv
bnN0IFdlYktleWJvYXJkRXZlbgogICAgICAgICBtX21vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50
OjpBbHRLZXk7CiAgICAgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6TWV0YUtleSkK
ICAgICAgICAgbV9tb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TWV0YUtleTsKKworICAgIC8v
IEZJWE1FOiBQbGF0Zm9ybUtleWJvYXJkRXZlbnRzIGV4cGVjdCBhIGxvY2F0aW9uYWwgdmVyc2lv
biBvZiB0aGUga2V5Y29kZSAoZS5nLiBWS19MU0hJRlQKKyAgICAvLyBpbnN0ZWFkIG9mIFZLX1NI
SUZUKS4gVGhpcyBzaG91bGQgYmUgY2hhbmdlZCBzbyB0aGUgbG9jYXRpb24va2V5Y29kZSBhcmUg
c3RvcmVkIHNlcGFyYXRlbHksCisgICAgLy8gYXMgaW4gb3RoZXIgcGxhY2VzIGluIHRoZSBjb2Rl
LgorICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gZS53aW5kb3dzS2V5Q29kZTsKKyAgICBp
ZiAoZS53aW5kb3dzS2V5Q29kZSA9PSBWS19TSElGVCkgeworICAgICAgICBpZiAoZS5tb2RpZmll
cnMgJiBXZWJJbnB1dEV2ZW50OjpJc0xlZnQpCisgICAgICAgICAgICBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZSA9IFZLX0xTSElGVDsKKyAgICAgICAgZWxzZSBpZiAoZS5tb2RpZmllcnMgJiBXZWJJ
bnB1dEV2ZW50OjpJc1JpZ2h0KQorICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUg
PSBWS19SU0hJRlQ7CisgICAgfSBlbHNlIGlmIChlLndpbmRvd3NLZXlDb2RlID09IFZLX0NPTlRS
T0wpIHsKKyAgICAgICAgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNMZWZ0KQor
ICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBWS19MQ09OVFJPTDsKKyAgICAg
ICAgZWxzZSBpZiAoZS5tb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0KQorICAgICAg
ICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBWS19SQ09OVFJPTDsKKyAgICB9IGVsc2Ug
aWYgKGUud2luZG93c0tleUNvZGUgPT0gVktfTUVOVSkgeworICAgICAgICBpZiAoZS5tb2RpZmll
cnMgJiBXZWJJbnB1dEV2ZW50OjpJc0xlZnQpCisgICAgICAgICAgICBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZSA9IFZLX0xNRU5VOworICAgICAgICBlbHNlIGlmIChlLm1vZGlmaWVycyAmIFdlYklu
cHV0RXZlbnQ6OklzUmlnaHQpCisgICAgICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9
IFZLX1JNRU5VOworICAgIH0KKwogfQogCiB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxk
ZXI6OnNldEtleVR5cGUoVHlwZSB0eXBlKQpAQCAtNDQ4LDggKzQ2OSwxMiBAQCBXZWJLZXlib2Fy
ZEV2ZW50QnVpbGRlcjo6V2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIoY29uc3QgS2V5Ym9hcmRFdmVu
dCYgZXZlbnQpCiAgICAgICAgIHJldHVybjsgLy8gU2tpcCBhbGwgb3RoZXIga2V5Ym9hcmQgZXZl
bnRzLgogCiAgICAgbW9kaWZpZXJzID0gZ2V0V2ViSW5wdXRNb2RpZmllcnMoZXZlbnQpOwotICAg
IGlmIChldmVudC5rZXlMb2NhdGlvbigpICYgS2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9MT0NBVElP
Tl9OVU1QQUQpCisgICAgaWYgKGV2ZW50LmtleUxvY2F0aW9uKCkgPT0gS2V5Ym9hcmRFdmVudDo6
RE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJJbnB1dEV2
ZW50OjpJc0tleVBhZDsKKyAgICBlbHNlIGlmIChldmVudC5rZXlMb2NhdGlvbigpID09IEtleWJv
YXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fTEVGVCkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdl
YklucHV0RXZlbnQ6OklzTGVmdDsKKyAgICBlbHNlIGlmIChldmVudC5rZXlMb2NhdGlvbigpID09
IEtleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fUklHSFQpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0OwogCiAgICAgdGltZVN0YW1wU2Vjb25kcyA9IGV2
ZW50LnRpbWVTdGFtcCgpIC8gbWlsbGlzUGVyU2Vjb25kOwogICAgIHdpbmRvd3NLZXlDb2RlID0g
ZXZlbnQua2V5Q29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
YW5kcm9pZC9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9hbmRyb2lkL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAppbmRleCBmYjcyMzIyM2I3NDBi
YTBjYjA1ZmI2ODVkNDU5YzgwMGNmNWJkZTFkLi5lY2VlNzdhYjJlZTI5YTY5MWIxMzkxYzE5MTM2
YjZjMjRjMDQ5NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9hbmRy
b2lkL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9hbmRyb2lkL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcApAQCAtNTAsNyArNTAsOSBAQCBX
ZWJLZXlib2FyZEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KFdlYklu
cHV0RXZlbnQ6OlR5cGUgdHlwZSwKICAgICByZXN1bHQudHlwZSA9IHR5cGU7CiAgICAgcmVzdWx0
Lm1vZGlmaWVycyA9IG1vZGlmaWVyczsKICAgICByZXN1bHQudGltZVN0YW1wU2Vjb25kcyA9IHRp
bWVTdGFtcFNlY29uZHM7Ci0gICAgcmVzdWx0LndpbmRvd3NLZXlDb2RlID0gV2ViQ29yZTo6d2lu
ZG93c0tleUNvZGVGb3JLZXlFdmVudChrZXljb2RlKTsKKyAgICBpbnQgd2luZG93c0tleUNvZGUg
PSBXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGtleWNvZGUpOworICAgIHJlc3Vs
dC53aW5kb3dzS2V5Q29kZSA9IFdlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NLZXlDb2RlV2l0aG91
dExvY2F0aW9uKHdpbmRvd3NLZXlDb2RlKTsKKyAgICByZXN1bHQubW9kaWZpZXJzIHw9IFdlYktl
eWJvYXJkRXZlbnQ6OmxvY2F0aW9uTW9kaWZpZXJzRnJvbUtleUNvZGUod2luZG93c0tleUNvZGUp
OwogICAgIHJlc3VsdC5uYXRpdmVLZXlDb2RlID0ga2V5Y29kZTsKICAgICByZXN1bHQudW5tb2Rp
ZmllZFRleHRbMF0gPSB1bmljb2RlQ2hhcmFjdGVyOwogICAgIGlmIChyZXN1bHQud2luZG93c0tl
eUNvZGUgPT0gV2ViQ29yZTo6VktFWV9SRVRVUk4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCmluZGV4IDQzYzIz
OGE2OWRlZWQyNTk0NzZlZjQzNjk2M2ZhYzcyNzRmMDkwNzcuLjdhMTU0ODhhMGYzYjc1NGQ2MTU5
Yzg3MzUyN2QxZmM5YWEwMTM2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvZ3RrL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcApAQCAtMzgzLDcgKzM4Myw5IEBA
IFdlYktleWJvYXJkRXZlbnQgV2ViSW5wdXRFdmVudEZhY3Rvcnk6OmtleWJvYXJkRXZlbnQoY29u
c3QgR2RrRXZlbnRLZXkqIGV2ZW50KQogICAgIC8vIFRoZSBrZXkgY29kZSB0ZWxscyB1cyB3aGlj
aCBwaHlzaWNhbCBrZXkgd2FzIHByZXNzZWQgKGZvciBleGFtcGxlLCB0aGUKICAgICAvLyBBIGtl
eSB3ZW50IGRvd24gb3IgdXApLiAgSXQgZG9lcyBub3QgZGV0ZXJtaW5lIHdoZXRoZXIgQSBzaG91
bGQgYmUgbG93ZXIKICAgICAvLyBvciB1cHBlciBjYXNlLiAgVGhpcyBpcyB3aGF0IHRleHQgZG9l
cywgd2hpY2ggc2hvdWxkIGJlIHRoZSBrZXl2YWwuCi0gICAgcmVzdWx0LndpbmRvd3NLZXlDb2Rl
ID0gZ2RrRXZlbnRUb1dpbmRvd3NLZXlDb2RlKGV2ZW50KTsKKyAgICBpbnQgd2luZG93c0tleUNv
ZGUgPSBnZGtFdmVudFRvV2luZG93c0tleUNvZGUoZXZlbnQpOworICAgIHJlc3VsdC53aW5kb3dz
S2V5Q29kZSA9IFdlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NLZXlDb2RlV2l0aG91dExvY2F0aW9u
KHdpbmRvd3NLZXlDb2RlKTsKKyAgICByZXN1bHQubW9kaWZpZXJzIHw9IFdlYktleWJvYXJkRXZl
bnQ6OmxvY2F0aW9uTW9kaWZpZXJzRnJvbUtleUNvZGUod2luZG93c0tleUNvZGUpOwogICAgIHJl
c3VsdC5uYXRpdmVLZXlDb2RlID0gZXZlbnQtPmhhcmR3YXJlX2tleWNvZGU7CiAKICAgICBpZiAo
cmVzdWx0LndpbmRvd3NLZXlDb2RlID09IFdlYkNvcmU6OlZLRVlfUkVUVVJOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1t
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1t
CmluZGV4IGJhYmIxZjZjY2U3OWY0OTc4OGQ3ZmJkZTI1NTMwNjI3ZjEzNDg4YTguLmRiY2Q5OTM4
MThlNjAwNTNkOWQ1OWIzYzU5NTYwZTc5MmZiNWY2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0KQEAgLTYwNiw3
ICs2MDYsOSBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXlib2Fy
ZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogICAgIGlmICgoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3ND
aGFuZ2VkKSAmJiBbZXZlbnQgaXNBUmVwZWF0XSkKICAgICAgICAgcmVzdWx0Lm1vZGlmaWVycyB8
PSBXZWJJbnB1dEV2ZW50OjpJc0F1dG9SZXBlYXQ7CiAKLSAgICByZXN1bHQud2luZG93c0tleUNv
ZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKKyAgICBpbnQgd2luZG93c0tl
eUNvZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKKyAgICByZXN1bHQud2lu
ZG93c0tleUNvZGUgPSBXZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29kZVdpdGhvdXRMb2Nh
dGlvbih3aW5kb3dzS2V5Q29kZSk7CisgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBXZWJLZXlib2Fy
ZEV2ZW50Ojpsb2NhdGlvbk1vZGlmaWVyc0Zyb21LZXlDb2RlKHdpbmRvd3NLZXlDb2RlKTsKICAg
ICByZXN1bHQubmF0aXZlS2V5Q29kZSA9IFtldmVudCBrZXlDb2RlXTsKIAogICAgIE5TU3RyaW5n
KiB0ZXh0U3RyID0gdGV4dEZyb21FdmVudChldmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAppbmRleCA5ZGE0
YjRhMjc5OGFhYmNkNWZiODcyYTY1ZDU2ZGY1NWMyMDE2MDA5Li42ZWQ2OWQyNjNhOWNjNWE2NzYy
ZTQ4ZjE5NTFmNzY4ZjVhZTkzZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKQEAgLTQyLDEyICs0MiwzMCBA
QCBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBkZWZhdWx0U2Nyb2xsQ2hhcnNQZXJXaGVlbERl
bHRhID0gMTsKIAogLy8gV2ViS2V5Ym9hcmRFdmVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1zdGF0aWMgYm9vbCBpc0tleVBh
ZChXUEFSQU0gd3BhcmFtLCBMUEFSQU0gbHBhcmFtKQorc3RhdGljIGludCBnZXRMb2NhdGlvbk1v
ZGlmaWVyKFdQQVJBTSB3cGFyYW0sIExQQVJBTSBscGFyYW0pCiB7Ci0gICAgYm9vbCBrZXlwYWQg
PSBmYWxzZTsKKyAgICBpbnQgbW9kaWZpZXIgPSAwOworICAgIGlmICh3cGFyYW0gPT0gVktfU0hJ
RlQpIHsKKyAgICAgICAgaWYgKEdldEtleVN0YXRlKFZLX0xTSElGVCkpCisgICAgICAgICAgICBt
b2RpZmllciA9IFdlYklucHV0RXZlbnQ6OklzTGVmdDsKKyAgICAgICAgZWxzZSBpZiAoR2V0S2V5
U3RhdGUoVktfUlNISUZUKSkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6
SXNSaWdodDsKKyAgICB9IGVsc2UgaWYgKHdwYXJhbSA9PSBWS19DT05UUk9MKSB7CisgICAgICAg
IGlmIChHZXRLZXlTdGF0ZShWS19MQ09OVFJPTCkpCisgICAgICAgICAgICBtb2RpZmllciA9IFdl
YklucHV0RXZlbnQ6OklzTGVmdDsKKyAgICAgICAgZWxzZSBpZiAoR2V0S2V5U3RhdGUoVktfUkNP
TlRST0wpKQorICAgICAgICAgICAgbW9kaWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0Owor
ICAgIH0gZWxzZSBpZiAod3BhcmFtID09IFZLX01FTlUpIHsKKyAgICAgICAgaWYgKEdldEtleVN0
YXRlKFZLX0xNRU5VKSkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6SXNM
ZWZ0OworICAgICAgICBlbHNlIGlmIChHZXRLZXlTdGF0ZShWS19STUVOVSkpCisgICAgICAgICAg
ICBtb2RpZmllciA9IFdlYklucHV0RXZlbnQ6OklzUmlnaHQ7CisgICAgfQorCiAgICAgc3dpdGNo
ICh3cGFyYW0pIHsKICAgICBjYXNlIFZLX1JFVFVSTjoKLSAgICAgICAga2V5cGFkID0gKGxwYXJh
bSA+PiAxNikgJiBLRl9FWFRFTkRFRDsKKyAgICAgICAgaWYgKChscGFyYW0gPj4gMTYpICYgS0Zf
RVhURU5ERUQpCisgICAgICAgICAgICBtb2RpZmllciA9IFdlYklucHV0RXZlbnQ6OklzS2V5UGFk
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZLX0lOU0VSVDoKICAgICBjYXNlIFZLX0RFTEVU
RToKQEAgLTU5LDcgKzc3LDggQEAgc3RhdGljIGJvb2wgaXNLZXlQYWQoV1BBUkFNIHdwYXJhbSwg
TFBBUkFNIGxwYXJhbSkKICAgICBjYXNlIFZLX0RPV046CiAgICAgY2FzZSBWS19MRUZUOgogICAg
IGNhc2UgVktfUklHSFQ6Ci0gICAgICAgIGtleXBhZCA9ICEoKGxwYXJhbSA+PiAxNikgJiBLRl9F
WFRFTkRFRCk7CisgICAgICAgIGlmICghKChscGFyYW0gPj4gMTYpICYgS0ZfRVhURU5ERUQpKQor
ICAgICAgICAgICAgbW9kaWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpJc0tleVBhZDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBWS19OVU1MT0NLOgogICAgIGNhc2UgVktfTlVNUEFEMDoKQEAgLTc4
LDEyICs5NywxNSBAQCBzdGF0aWMgYm9vbCBpc0tleVBhZChXUEFSQU0gd3BhcmFtLCBMUEFSQU0g
bHBhcmFtKQogICAgIGNhc2UgVktfQUREOgogICAgIGNhc2UgVktfREVDSU1BTDoKICAgICBjYXNl
IFZLX0NMRUFSOgotICAgICAgICBrZXlwYWQgPSB0cnVlOworICAgICAgICBtb2RpZmllciA9IFdl
YklucHV0RXZlbnQ6OklzS2V5UGFkOwogICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBrZXlwYWQgPSBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGtleXBhZDsKKworICAgIEFT
U0VSVChtb2RpZmllcgorICAgICAgICAgICB8fCBtb2RpZmllciA9PSBXZWJJbnB1dEV2ZW50OjpJ
c0tleVBhZAorICAgICAgICAgICB8fCBtb2RpZmllciA9PSBXZWJJbnB1dEV2ZW50OjpJc0xlZnQK
KyAgICAgICAgICAgfHwgbW9kaWZpZXIgPT0gV2ViSW5wdXRFdmVudDo6SXNSaWdodCk7CisgICAg
cmV0dXJuIG1vZGlmaWVyOwogfQogCiAvLyBMb2FkcyB0aGUgc3RhdGUgZm9yIHRvZ2dsZSBrZXlz
IGludG8gdGhlIGV2ZW50LgpAQCAtMTUzLDggKzE3NSw4IEBAIFdlYktleWJvYXJkRXZlbnQgV2Vi
SW5wdXRFdmVudEZhY3Rvcnk6OmtleWJvYXJkRXZlbnQoSFdORCBod25kLCBVSU5UIG1lc3NhZ2Us
CiAKICAgICBpZiAoTE9XT1JEKGxwYXJhbSkgPiAxKQogICAgICAgICByZXN1bHQubW9kaWZpZXJz
IHw9IFdlYklucHV0RXZlbnQ6OklzQXV0b1JlcGVhdDsKLSAgICBpZiAoaXNLZXlQYWQod3BhcmFt
LCBscGFyYW0pKQotICAgICAgICByZXN1bHQubW9kaWZpZXJzIHw9IFdlYklucHV0RXZlbnQ6Oklz
S2V5UGFkOworCisgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBnZXRMb2NhdGlvbk1vZGlmaWVyKHdw
YXJhbSwgbHBhcmFtKTsKIAogICAgIFNldFRvZ2dsZUtleVN0YXRlKCZyZXN1bHQpOwogICAgIHJl
dHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dl
YklucHV0RXZlbnRDb252ZXJzaW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1dlYklucHV0RXZlbnRDb252ZXJzaW9uVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY3YjMyYmZm
NTMwNGFjODljMWFjMjc1YjBlZTk4NzA0ZTQ5NWRjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcApA
QCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rl
c3QuaD4KKworI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5oIgorCit1c2luZyBXZWJLaXQ6OldlYklucHV0RXZlbnQ7Cit1c2luZyBX
ZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ7Cit1c2luZyBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnRC
dWlsZGVyOworCituYW1lc3BhY2UgeworCitQYXNzUmVmUHRyPFdlYkNvcmU6OktleWJvYXJkRXZl
bnQ+IGNyZWF0ZUtleWJvYXJkRXZlbnRXaXRoTG9jYXRpb24oV2ViQ29yZTo6S2V5Ym9hcmRFdmVu
dDo6S2V5TG9jYXRpb25Db2RlIGxvY2F0aW9uKQoreworICAgIHJldHVybiBXZWJDb3JlOjpLZXli
b2FyZEV2ZW50OjpjcmVhdGUoImtleWRvd24iLCB0cnVlLCB0cnVlLCAwLCAiIiwgbG9jYXRpb24s
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Cit9CisKK2ludCBnZXRNb2RpZmll
cnNGb3JLZXlMb2NhdGlvbkNvZGUoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6S2V5TG9jYXRpb25D
b2RlIGxvY2F0aW9uKQoreworICAgIFJlZlB0cjxXZWJDb3JlOjpLZXlib2FyZEV2ZW50PiBldmVu
dCA9IGNyZWF0ZUtleWJvYXJkRXZlbnRXaXRoTG9jYXRpb24obG9jYXRpb24pOworICAgIFdlYktp
dDo6V2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIgY29udmVydGVkRXZlbnQoKmV2ZW50KTsKKyAgICBy
ZXR1cm4gY29udmVydGVkRXZlbnQubW9kaWZpZXJzOworfQorCitURVNUKFdlYklucHV0RXZlbnRD
b252ZXJzaW9uVGVzdCwgV2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIpCit7CisgICAgLy8gVGVzdCBr
ZXkgbG9jYXRpb24gY29udmVyc2lvbi4KKyAgICBpbnQgbW9kaWZpZXJzID0gZ2V0TW9kaWZpZXJz
Rm9yS2V5TG9jYXRpb25Db2RlKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJ
T05fU1RBTkRBUkQpOworICAgIEVYUEVDVF9GQUxTRShtb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50
OjpJc0tleVBhZCB8fCBtb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJc0xlZnQgfHwgbW9kaWZp
ZXJzICYgV2ViSW5wdXRFdmVudDo6SXNSaWdodCk7CisKKyAgICBtb2RpZmllcnMgPSBnZXRNb2Rp
ZmllcnNGb3JLZXlMb2NhdGlvbkNvZGUoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9M
T0NBVElPTl9MRUZUKTsKKyAgICBFWFBFQ1RfVFJVRShtb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50
OjpJc0xlZnQpOworICAgIEVYUEVDVF9GQUxTRShtb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJ
c0tleVBhZCB8fCBtb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0KTsKKworICAgIG1v
ZGlmaWVycyA9IGdldE1vZGlmaWVyc0ZvcktleUxvY2F0aW9uQ29kZShXZWJDb3JlOjpLZXlib2Fy
ZEV2ZW50OjpET01fS0VZX0xPQ0FUSU9OX1JJR0hUKTsKKyAgICBFWFBFQ1RfVFJVRShtb2RpZmll
cnMgJiBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0KTsKKyAgICBFWFBFQ1RfRkFMU0UobW9kaWZpZXJz
ICYgV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQgfHwgbW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6
SXNMZWZ0KTsKKworICAgIG1vZGlmaWVycyA9IGdldE1vZGlmaWVyc0ZvcktleUxvY2F0aW9uQ29k
ZShXZWJDb3JlOjpLZXlib2FyZEV2ZW50OjpET01fS0VZX0xPQ0FUSU9OX05VTVBBRCk7CisgICAg
RVhQRUNUX1RSVUUobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQpOworICAgIEVY
UEVDVF9GQUxTRShtb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJc0xlZnQgfHwgbW9kaWZpZXJz
ICYgV2ViSW5wdXRFdmVudDo6SXNSaWdodCk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFj
ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3VzZXIu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weQppbmRleCBj
NDk0MjljMGQyYzgzN2JiZDczNGNmNzJmZTVmYzI1MGI2YTRlN2UwLi40OWFkN2VjYzMzM2E0MzRj
MDE4NTYyY2RiMmVmNjg3YmJkZDVlZTE4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vdXNlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vdXNlci5weQpAQCAtMTI2LDYgKzEyNiw3IEBAIGNsYXNzIFVzZXIob2JqZWN0
KToKICAgICAgICAgZWRpdG9yID0gb3MuZW52aXJvbi5nZXQoIkVESVRPUiIpIG9yICJ2aSIKICAg
ICAgICAgYXJncyA9IHNobGV4LnNwbGl0KGVkaXRvcikKICAgICAgICAgIyBOb3RlOiBOb3QgdGhy
ZWFkIHNhZmU6IGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUyMzIwCisKICAgICAgICAgc3Vi
cHJvY2Vzcy5jYWxsKGFyZ3MgKyBmaWxlcykKIAogICAgIGRlZiBfd2Fybl9pZl9hcHBsaWNhdGlv
bl9pc194Y29kZShzZWxmLCBlZGl0X2FwcGxpY2F0aW9uKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161305</attachid>
            <date>2012-08-29 13:50:03 -0700</date>
            <delta_ts>2012-08-30 09:31:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94142-20120829134953.patch</filename>
            <type>text/plain</type>
            <size>19095</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGE1YjI2YjQ1OGYyZmJlODE2ZWRlODE3YWZmNTMwNGRjZGQyMDA3MjUuLmY0M2ZhZDBhNmE4NTUx
MmZlZWU5Yzg3OTBhY2EzMjNjM2U2NzRlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDkgQEAKKzIwMTItMDgtMjkgIFJheW1lcyBLaG91cnkgIDxyYXltZXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEFkZGVkIG1vZGlmaWVycyB0byBkaXN0aW5ndWlzaCBiZXR3ZWVu
IGxlZnQvcmlnaHQgU2hpZnQvQ3RybC9BbHQgaW4gV2ViSW5wdXRFdmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MTQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSB3ZSBkaXN0aW5n
dWlzaGVkIGJldHdlZW4gbGVmdC9yaWdodCBTaGlmdC9DdHJsL0FsdCBpbgorICAgICAgICBXZWJJ
bnB1dEV2ZW50cyBieSB1c2luZyB0aGUgbG9jYXRpb24tc3BlY2lmaWMgdmlydHVhbCBrZXljb2Rl
cyAoZS5nLgorICAgICAgICBWS19MU0hJRlQgaW5zdGVhZCBvZiBWS19TSElGVC4gSG93ZXZlciwg
dGhlIFdpbmRvd3MgQVBJIGZvciBrZXkgZXZlbnRzCisgICAgICAgIGFsd2F5cyByZXR1cm5zIHRo
ZSBub24tbG9jYXRpb25hbCB2ZXJzaW9uIChlLmcuIFZLX1NISUZUKS4KKyAgICAgICAgRnVydGhl
cm1vcmUsIEtleWJvYXJkRXZlbnQgYWxzbyByZXR1cm5zCisgICAgICAgIG5vbi1sb2NhdGlvbmFs
IGtleWNvZGVzIGFuZCBzZXBhcmF0ZXMgdGhlIGxvY2F0aW9uIGluZm9ybWF0aW9uIHdoaWNoCisg
ICAgICAgIG1hdGNoZXMgdGhlIGJlaGF2aW9yIGRlc2NyaWJlZCBpbiB0aGUgRE9NMworICAgICAg
ICBzcGVjIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWtl
eWJvYXJkZXZlbnRzLiBXZQorICAgICAgICBzaG91bGQgYmUgY29uc2lzdGVudCB3aXRoIHRoaXMg
aW4gb3VyIHJlcHJlc2VudGF0aW9uIG9mIGtleSBldmVudHMuCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2hhbmdlcyBXZWJJbnB1dEV2ZW50cyBzbyB0aGV5IGFsd2F5cyBzdG9yZSB0aGUKKyAgICAgICAg
bm9uLWxvY2F0aW9uYWwga2V5Y29kZSBhbmQgbG9jYXRpb24gaW5mb3JtYXRpb24gaXMgc3RvcmVk
IGluCisgICAgICAgIG1vZGlmaWVycy4gU2luY2UgdGhpcyBvbmx5IGNoYW5nZXMgaW50ZXJuYWwg
cmVwcmVzZW50YXRpb24sIG5vIG5ldworICAgICAgICB0ZXN0cyBhcmUgYWRkZWQuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhbHNvIGVuc3VyZXMgdGhhdCB3aGVuIEtleWJvYXJkRXZlbnRzIGFyZSBj
b252ZXJ0ZWQgYmFjayB0bworICAgICAgICBXZWJJbnB1dEV2ZW50cyBsb2NhdGlvbiBpbmZvcm1h
dGlvbiBpcyBwcmVzZXJ2ZWQgKHdoaWNoIHdhcyBub3QKKyAgICAgICAgaGFwcGVuaW5nIGJlZm9y
ZSkuIEEgdW5pdHRlc3QgaXMgYWRkZWQgZm9yIHRoaXMuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lw
aToKKyAgICAgICAgKiBwdWJsaWMvV2ViSW5wdXRFdmVudC5oOgorICAgICAgICAoV2ViS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6d2luZG93c0tleUNvZGVX
aXRob3V0TG9jYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpsb2Nh
dGlvbk1vZGlmaWVyc0Zyb21XaW5kb3dzS2V5Q29kZSk6CisgICAgICAgICogc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1LZXlib2FyZEV2
ZW50QnVpbGRlcjo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYktleWJvYXJkRXZlbnRCdWlsZGVyOjpXZWJLZXlib2FyZEV2ZW50QnVpbGRlcik6Cisg
ICAgICAgICogc3JjL2FuZHJvaWQvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgICog
c3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklu
cHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBzcmMvbWFjL1dlYklu
cHV0RXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9y
eTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9y
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldExvY2F0aW9uTW9kaWZpZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgICog
dGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcDogQWRkZWQuCisKIDIwMTItMDgt
MTMgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSByZWxlYXNlIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6bV9wbHVnaW5XaWRnZXQgcmVmcHRyIHVw
b24gUGx1Z2luIERvY3VtZW50IGRldGFjaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmlu
ZGV4IDEyYzE0OWE5OTE5NTdjNjNlMDA4MDE3NmFjZTE2YmUyYTE4MDY5ZTIuLjkyNWMxZTc2ZmMz
ZGU5OGI2MmI3M2UwNjE5NTQ3YzczNmQyZDkyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwaQpAQCAtMTU5LDYgKzE1OSw3IEBACiAgICAgICAgICAgICAndGVzdHMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViRmxvYXRB
bmltYXRpb25DdXJ2ZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJGcmFtZVRlc3Qu
Y3BwJywKKyAgICAgICAgICAgICd0ZXN0cy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvblRlc3QuY3Bw
JywKICAgICAgICAgICAgICd0ZXN0cy9XZWJMYXllclRlc3QuY3BwJywKICAgICAgICAgICAgICd0
ZXN0cy9XZWJMYXllclRyZWVWaWV3VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYkxh
eWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSW5wdXRFdmVudC5oCmluZGV4IDA5MDQ4Y2RlZDdjMTQ0Njk0NTM2NDM0Mjk2ZjdhZDY5
ZGU4ZTdiMzcuLmEyOGZlMDM3NjY0ZTAyMWQ4NTIzZjVlYTg0ZDVhMjQ3N2ZhZjk4ZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0RXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2ZW50LmgKQEAgLTE1MSw2
ICsxNTEsMTAgQEAgcHVibGljOgogICAgICAgICAvLyBldmVudCBhbmQgYmFjayB3aWxsIG5vdCBw
cmVzZXJ2ZSB0aGVzZSBmbGFncy4KICAgICAgICAgQ2Fwc0xvY2tPbiAgICAgICA9IDEgPDwgOSwK
ICAgICAgICAgTnVtTG9ja09uICAgICAgICA9IDEgPDwgMTAsCisKKyAgICAgICAgLy8gTGVmdC9y
aWdodCBtb2RpZmllcnMgZm9yIGtleWJvYXJkIGV2ZW50cy4KKyAgICAgICAgSXNMZWZ0ICAgICAg
ICAgICA9IDEgPDwgMTEsCisgICAgICAgIElzUmlnaHQgICAgICAgICAgPSAxIDw8IDEyLAogICAg
IH07CiAKICAgICBzdGF0aWMgY29uc3QgaW50IElucHV0TW9kaWZpZXJzID0gU2hpZnRLZXkgfCBD
b250cm9sS2V5IHwgQWx0S2V5IHwgTWV0YUtleTsKQEAgLTIzNyw3ICsyNDEsMTEgQEAgcHVibGlj
OgogICAgIC8vIHx3aW5kb3dzS2V5Q29kZXwgaXMgdGhlIFdpbmRvd3Mga2V5IGNvZGUgYXNzb2Np
YXRlZCB3aXRoIHRoaXMga2V5CiAgICAgLy8gZXZlbnQuICBTb21ldGltZXMgaXQncyBkaXJlY3Qg
ZnJvbSB0aGUgZXZlbnQgKGkuZS4gb24gV2luZG93cyksCiAgICAgLy8gc29tZXRpbWVzIGl0J3Mg
dmlhIGEgbWFwcGluZyBmdW5jdGlvbi4gIElmIHlvdSB3YW50IGEgbGlzdCwgc2VlCi0gICAgLy8g
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlib2FyZENvZGVzKiAuCisgICAgLy8gV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlib2FyZENvZGVzKiAuIE5vdGUgdGhhdCB0aGlzIHNob3Vs
ZAorICAgIC8vIEFMV0FZUyBzdG9yZSB0aGUgbm9uLWxvY2F0aW9uYWwgdmVyc2lvbiBvZiBhIGtl
eWNvZGUgYXMgdGhpcyBpcworICAgIC8vIHdoYXQgaXMgcmV0dXJuZWQgYnkgdGhlIFdpbmRvd3Mg
QVBJLiBGb3IgZXhhbXBsZSwgaXQgc2hvdWxkCisgICAgLy8gc3RvcmUgVktfU0hJRlQgaW5zdGVh
ZCBvZiBWS19SU0hJRlQuIFRoZSBsb2NhdGlvbiBpbmZvcm1hdGlvbgorICAgIC8vIHNob3VsZCBi
ZSBzdG9yZWQgaW4gfG1vZGlmaWVyc3wuCiAgICAgaW50IHdpbmRvd3NLZXlDb2RlOwogCiAgICAg
Ly8gVGhlIGFjdHVhbCBrZXkgY29kZSBnZW5lbmVyYXRlZCBieSB0aGUgcGxhdGZvcm0uICBUaGUg
RE9NIHNwZWMgcnVucwpAQCAtMjc5LDYgKzI4Nyw5IEBAIHB1YmxpYzoKICAgICAvLyBTZXRzIGtl
eUlkZW50aWZpZXIgYmFzZWQgb24gdGhlIHZhbHVlIG9mIHdpbmRvd3NLZXlDb2RlLiAgVGhpcyBp
cwogICAgIC8vIGhhbmR5IGZvciBnZW5lcmF0aW5nIHN5bnRoZXRpYyBrZXlib2FyZCBldmVudHMu
CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEtleUlkZW50aWZpZXJGcm9tV2luZG93c0tleUNv
ZGUoKTsKKworICAgIHN0YXRpYyBpbnQgd2luZG93c0tleUNvZGVXaXRob3V0TG9jYXRpb24oaW50
IGtleWNvZGUpOworICAgIHN0YXRpYyBpbnQgbG9jYXRpb25Nb2RpZmllcnNGcm9tV2luZG93c0tl
eUNvZGUoaW50IGtleWNvZGUpOwogfTsKIAogLy8gV2ViTW91c2VFdmVudCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50LmNwcAppbmRleCA2NmEwNDgwYjRk
NGFkYWMzMTdiYTMxMjlhN2YwMmNkM2E1ZmNiNDY4Li5iMjNjZWMxOGE2Yzk3ZTQ1YjVjMzhkYjAy
NjZhZGFiOTQwYTZlNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJbnB1dEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1
dEV2ZW50LmNwcApAQCAtMjAyLDQgKzIwMiw0MSBAQCB2b2lkIFdlYktleWJvYXJkRXZlbnQ6OnNl
dEtleUlkZW50aWZpZXJGcm9tV2luZG93c0tleUNvZGUoKQogICAgICAgICBzbnByaW50ZihrZXlJ
ZGVudGlmaWVyLCBzaXplb2Yoa2V5SWRlbnRpZmllciksICJVKyUwNFgiLCB0b3VwcGVyKHdpbmRv
d3NLZXlDb2RlKSk7CiB9CiAKKy8vIHN0YXRpYworaW50IFdlYktleWJvYXJkRXZlbnQ6OndpbmRv
d3NLZXlDb2RlV2l0aG91dExvY2F0aW9uKGludCBrZXljb2RlKQoreworICAgIHN3aXRjaCAoa2V5
Y29kZSkgeworICAgIGNhc2UgVktfTENPTlRST0w6CisgICAgY2FzZSBWS19SQ09OVFJPTDoKKyAg
ICAgICAgcmV0dXJuIFZLX0NPTlRST0w7CisgICAgY2FzZSBWS19MU0hJRlQ6CisgICAgY2FzZSBW
S19SU0hJRlQ6CisgICAgICAgIHJldHVybiBWS19TSElGVDsKKyAgICBjYXNlIFZLX0xNRU5VOgor
ICAgIGNhc2UgVktfUk1FTlU6CisgICAgICAgIHJldHVybiBWS19NRU5VOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiBrZXljb2RlOworICAgIH0KK30KKworLy8gc3RhdGljCitpbnQgV2Vi
S2V5Ym9hcmRFdmVudDo6bG9jYXRpb25Nb2RpZmllcnNGcm9tV2luZG93c0tleUNvZGUoaW50IGtl
eWNvZGUpCit7CisgICAgc3dpdGNoIChrZXljb2RlKSB7CisgICAgY2FzZSBWS19MQ09OVFJPTDoK
KyAgICBjYXNlIFZLX0xTSElGVDoKKyAgICBjYXNlIFZLX0xNRU5VOgorICAgIGNhc2UgVktfTFdJ
TjoKKyAgICAgICAgcmV0dXJuIElzTGVmdDsKKyAgICBjYXNlIFZLX1JDT05UUk9MOgorICAgIGNh
c2UgVktfUlNISUZUOgorICAgIGNhc2UgVktfUk1FTlU6CisgICAgY2FzZSBWS19SV0lOOgorICAg
ICAgICByZXR1cm4gSXNSaWdodDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKKyAg
ICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDAzOTFjMjg1
YjdmOGUzZTY2OTUxNjM5ZDM2NWY1OGJkNzNlOGE5OTIuLjQxMDAyYjllYTcwNTc1N2UyMzU4MmVi
ZmQxMjk1Mzk0YjM1NmZhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTIyMyw3ICsyMjMsNiBAQCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKGNv
bnN0IFdlYktleWJvYXJkRXZlbgogICAgIG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoZS51bm1v
ZGlmaWVkVGV4dCk7CiAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKGUua2V5SWRlbnRpZmll
cik7CiAgICAgbV9hdXRvUmVwZWF0ID0gKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNB
dXRvUmVwZWF0KTsKLSAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9IGUud2luZG93c0tleUNv
ZGU7CiAgICAgbV9uYXRpdmVWaXJ0dWFsS2V5Q29kZSA9IGUubmF0aXZlS2V5Q29kZTsKICAgICBt
X2lzS2V5cGFkID0gKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQpOwogICAg
IG1faXNTeXN0ZW1LZXkgPSBlLmlzU3lzdGVtS2V5OwpAQCAtMjM3LDYgKzIzNiwyOCBAQCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKGNv
bnN0IFdlYktleWJvYXJkRXZlbgogICAgICAgICBtX21vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50
OjpBbHRLZXk7CiAgICAgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6TWV0YUtleSkK
ICAgICAgICAgbV9tb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TWV0YUtleTsKKworICAgIC8v
IEZJWE1FOiBQbGF0Zm9ybUtleWJvYXJkRXZlbnRzIGV4cGVjdCBhIGxvY2F0aW9uYWwgdmVyc2lv
biBvZiB0aGUga2V5Y29kZSAoZS5nLiBWS19MU0hJRlQKKyAgICAvLyBpbnN0ZWFkIG9mIFZLX1NI
SUZUKS4gVGhpcyBzaG91bGQgYmUgY2hhbmdlZCBzbyB0aGUgbG9jYXRpb24va2V5Y29kZSBhcmUg
c3RvcmVkIHNlcGFyYXRlbHksCisgICAgLy8gYXMgaW4gb3RoZXIgcGxhY2VzIGluIHRoZSBjb2Rl
LgorICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gZS53aW5kb3dzS2V5Q29kZTsKKyAgICBp
ZiAoZS53aW5kb3dzS2V5Q29kZSA9PSBWS19TSElGVCkgeworICAgICAgICBpZiAoZS5tb2RpZmll
cnMgJiBXZWJJbnB1dEV2ZW50OjpJc0xlZnQpCisgICAgICAgICAgICBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZSA9IFZLX0xTSElGVDsKKyAgICAgICAgZWxzZSBpZiAoZS5tb2RpZmllcnMgJiBXZWJJ
bnB1dEV2ZW50OjpJc1JpZ2h0KQorICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUg
PSBWS19SU0hJRlQ7CisgICAgfSBlbHNlIGlmIChlLndpbmRvd3NLZXlDb2RlID09IFZLX0NPTlRS
T0wpIHsKKyAgICAgICAgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNMZWZ0KQor
ICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBWS19MQ09OVFJPTDsKKyAgICAg
ICAgZWxzZSBpZiAoZS5tb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0KQorICAgICAg
ICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBWS19SQ09OVFJPTDsKKyAgICB9IGVsc2Ug
aWYgKGUud2luZG93c0tleUNvZGUgPT0gVktfTUVOVSkgeworICAgICAgICBpZiAoZS5tb2RpZmll
cnMgJiBXZWJJbnB1dEV2ZW50OjpJc0xlZnQpCisgICAgICAgICAgICBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZSA9IFZLX0xNRU5VOworICAgICAgICBlbHNlIGlmIChlLm1vZGlmaWVycyAmIFdlYklu
cHV0RXZlbnQ6OklzUmlnaHQpCisgICAgICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9
IFZLX1JNRU5VOworICAgIH0KKwogfQogCiB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxk
ZXI6OnNldEtleVR5cGUoVHlwZSB0eXBlKQpAQCAtNDQ4LDggKzQ2OSwxMiBAQCBXZWJLZXlib2Fy
ZEV2ZW50QnVpbGRlcjo6V2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIoY29uc3QgS2V5Ym9hcmRFdmVu
dCYgZXZlbnQpCiAgICAgICAgIHJldHVybjsgLy8gU2tpcCBhbGwgb3RoZXIga2V5Ym9hcmQgZXZl
bnRzLgogCiAgICAgbW9kaWZpZXJzID0gZ2V0V2ViSW5wdXRNb2RpZmllcnMoZXZlbnQpOwotICAg
IGlmIChldmVudC5rZXlMb2NhdGlvbigpICYgS2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9MT0NBVElP
Tl9OVU1QQUQpCisgICAgaWYgKGV2ZW50LmtleUxvY2F0aW9uKCkgPT0gS2V5Ym9hcmRFdmVudDo6
RE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJJbnB1dEV2
ZW50OjpJc0tleVBhZDsKKyAgICBlbHNlIGlmIChldmVudC5rZXlMb2NhdGlvbigpID09IEtleWJv
YXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fTEVGVCkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdl
YklucHV0RXZlbnQ6OklzTGVmdDsKKyAgICBlbHNlIGlmIChldmVudC5rZXlMb2NhdGlvbigpID09
IEtleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fUklHSFQpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0OwogCiAgICAgdGltZVN0YW1wU2Vjb25kcyA9IGV2
ZW50LnRpbWVTdGFtcCgpIC8gbWlsbGlzUGVyU2Vjb25kOwogICAgIHdpbmRvd3NLZXlDb2RlID0g
ZXZlbnQua2V5Q29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
YW5kcm9pZC9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9hbmRyb2lkL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAppbmRleCBmYjcyMzIyM2I3NDBi
YTBjYjA1ZmI2ODVkNDU5YzgwMGNmNWJkZTFkLi5lY2VlNzdhYjJlZTI5YTY5MWIxMzkxYzE5MTM2
YjZjMjRjMDQ5NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9hbmRy
b2lkL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9hbmRyb2lkL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcApAQCAtNTAsNyArNTAsOSBAQCBX
ZWJLZXlib2FyZEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KFdlYklu
cHV0RXZlbnQ6OlR5cGUgdHlwZSwKICAgICByZXN1bHQudHlwZSA9IHR5cGU7CiAgICAgcmVzdWx0
Lm1vZGlmaWVycyA9IG1vZGlmaWVyczsKICAgICByZXN1bHQudGltZVN0YW1wU2Vjb25kcyA9IHRp
bWVTdGFtcFNlY29uZHM7Ci0gICAgcmVzdWx0LndpbmRvd3NLZXlDb2RlID0gV2ViQ29yZTo6d2lu
ZG93c0tleUNvZGVGb3JLZXlFdmVudChrZXljb2RlKTsKKyAgICBpbnQgd2luZG93c0tleUNvZGUg
PSBXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGtleWNvZGUpOworICAgIHJlc3Vs
dC53aW5kb3dzS2V5Q29kZSA9IFdlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NLZXlDb2RlV2l0aG91
dExvY2F0aW9uKHdpbmRvd3NLZXlDb2RlKTsKKyAgICByZXN1bHQubW9kaWZpZXJzIHw9IFdlYktl
eWJvYXJkRXZlbnQ6OmxvY2F0aW9uTW9kaWZpZXJzRnJvbUtleUNvZGUod2luZG93c0tleUNvZGUp
OwogICAgIHJlc3VsdC5uYXRpdmVLZXlDb2RlID0ga2V5Y29kZTsKICAgICByZXN1bHQudW5tb2Rp
ZmllZFRleHRbMF0gPSB1bmljb2RlQ2hhcmFjdGVyOwogICAgIGlmIChyZXN1bHQud2luZG93c0tl
eUNvZGUgPT0gV2ViQ29yZTo6VktFWV9SRVRVUk4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCmluZGV4IDQzYzIz
OGE2OWRlZWQyNTk0NzZlZjQzNjk2M2ZhYzcyNzRmMDkwNzcuLjdhMTU0ODhhMGYzYjc1NGQ2MTU5
Yzg3MzUyN2QxZmM5YWEwMTM2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvZ3RrL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcApAQCAtMzgzLDcgKzM4Myw5IEBA
IFdlYktleWJvYXJkRXZlbnQgV2ViSW5wdXRFdmVudEZhY3Rvcnk6OmtleWJvYXJkRXZlbnQoY29u
c3QgR2RrRXZlbnRLZXkqIGV2ZW50KQogICAgIC8vIFRoZSBrZXkgY29kZSB0ZWxscyB1cyB3aGlj
aCBwaHlzaWNhbCBrZXkgd2FzIHByZXNzZWQgKGZvciBleGFtcGxlLCB0aGUKICAgICAvLyBBIGtl
eSB3ZW50IGRvd24gb3IgdXApLiAgSXQgZG9lcyBub3QgZGV0ZXJtaW5lIHdoZXRoZXIgQSBzaG91
bGQgYmUgbG93ZXIKICAgICAvLyBvciB1cHBlciBjYXNlLiAgVGhpcyBpcyB3aGF0IHRleHQgZG9l
cywgd2hpY2ggc2hvdWxkIGJlIHRoZSBrZXl2YWwuCi0gICAgcmVzdWx0LndpbmRvd3NLZXlDb2Rl
ID0gZ2RrRXZlbnRUb1dpbmRvd3NLZXlDb2RlKGV2ZW50KTsKKyAgICBpbnQgd2luZG93c0tleUNv
ZGUgPSBnZGtFdmVudFRvV2luZG93c0tleUNvZGUoZXZlbnQpOworICAgIHJlc3VsdC53aW5kb3dz
S2V5Q29kZSA9IFdlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NLZXlDb2RlV2l0aG91dExvY2F0aW9u
KHdpbmRvd3NLZXlDb2RlKTsKKyAgICByZXN1bHQubW9kaWZpZXJzIHw9IFdlYktleWJvYXJkRXZl
bnQ6OmxvY2F0aW9uTW9kaWZpZXJzRnJvbUtleUNvZGUod2luZG93c0tleUNvZGUpOwogICAgIHJl
c3VsdC5uYXRpdmVLZXlDb2RlID0gZXZlbnQtPmhhcmR3YXJlX2tleWNvZGU7CiAKICAgICBpZiAo
cmVzdWx0LndpbmRvd3NLZXlDb2RlID09IFdlYkNvcmU6OlZLRVlfUkVUVVJOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1t
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1t
CmluZGV4IGJhYmIxZjZjY2U3OWY0OTc4OGQ3ZmJkZTI1NTMwNjI3ZjEzNDg4YTguLmRiY2Q5OTM4
MThlNjAwNTNkOWQ1OWIzYzU5NTYwZTc5MmZiNWY2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0KQEAgLTYwNiw3
ICs2MDYsOSBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXlib2Fy
ZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogICAgIGlmICgoW2V2ZW50IHR5cGVdICE9IE5TRmxhZ3ND
aGFuZ2VkKSAmJiBbZXZlbnQgaXNBUmVwZWF0XSkKICAgICAgICAgcmVzdWx0Lm1vZGlmaWVycyB8
PSBXZWJJbnB1dEV2ZW50OjpJc0F1dG9SZXBlYXQ7CiAKLSAgICByZXN1bHQud2luZG93c0tleUNv
ZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKKyAgICBpbnQgd2luZG93c0tl
eUNvZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKKyAgICByZXN1bHQud2lu
ZG93c0tleUNvZGUgPSBXZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29kZVdpdGhvdXRMb2Nh
dGlvbih3aW5kb3dzS2V5Q29kZSk7CisgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBXZWJLZXlib2Fy
ZEV2ZW50Ojpsb2NhdGlvbk1vZGlmaWVyc0Zyb21LZXlDb2RlKHdpbmRvd3NLZXlDb2RlKTsKICAg
ICByZXN1bHQubmF0aXZlS2V5Q29kZSA9IFtldmVudCBrZXlDb2RlXTsKIAogICAgIE5TU3RyaW5n
KiB0ZXh0U3RyID0gdGV4dEZyb21FdmVudChldmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAppbmRleCA5ZGE0
YjRhMjc5OGFhYmNkNWZiODcyYTY1ZDU2ZGY1NWMyMDE2MDA5Li42ZWQ2OWQyNjNhOWNjNWE2NzYy
ZTQ4ZjE5NTFmNzY4ZjVhZTkzZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKQEAgLTQyLDEyICs0MiwzMCBA
QCBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBkZWZhdWx0U2Nyb2xsQ2hhcnNQZXJXaGVlbERl
bHRhID0gMTsKIAogLy8gV2ViS2V5Ym9hcmRFdmVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1zdGF0aWMgYm9vbCBpc0tleVBh
ZChXUEFSQU0gd3BhcmFtLCBMUEFSQU0gbHBhcmFtKQorc3RhdGljIGludCBnZXRMb2NhdGlvbk1v
ZGlmaWVyKFdQQVJBTSB3cGFyYW0sIExQQVJBTSBscGFyYW0pCiB7Ci0gICAgYm9vbCBrZXlwYWQg
PSBmYWxzZTsKKyAgICBpbnQgbW9kaWZpZXIgPSAwOworICAgIGlmICh3cGFyYW0gPT0gVktfU0hJ
RlQpIHsKKyAgICAgICAgaWYgKEdldEtleVN0YXRlKFZLX0xTSElGVCkpCisgICAgICAgICAgICBt
b2RpZmllciA9IFdlYklucHV0RXZlbnQ6OklzTGVmdDsKKyAgICAgICAgZWxzZSBpZiAoR2V0S2V5
U3RhdGUoVktfUlNISUZUKSkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6
SXNSaWdodDsKKyAgICB9IGVsc2UgaWYgKHdwYXJhbSA9PSBWS19DT05UUk9MKSB7CisgICAgICAg
IGlmIChHZXRLZXlTdGF0ZShWS19MQ09OVFJPTCkpCisgICAgICAgICAgICBtb2RpZmllciA9IFdl
YklucHV0RXZlbnQ6OklzTGVmdDsKKyAgICAgICAgZWxzZSBpZiAoR2V0S2V5U3RhdGUoVktfUkNP
TlRST0wpKQorICAgICAgICAgICAgbW9kaWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0Owor
ICAgIH0gZWxzZSBpZiAod3BhcmFtID09IFZLX01FTlUpIHsKKyAgICAgICAgaWYgKEdldEtleVN0
YXRlKFZLX0xNRU5VKSkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6SXNM
ZWZ0OworICAgICAgICBlbHNlIGlmIChHZXRLZXlTdGF0ZShWS19STUVOVSkpCisgICAgICAgICAg
ICBtb2RpZmllciA9IFdlYklucHV0RXZlbnQ6OklzUmlnaHQ7CisgICAgfQorCiAgICAgc3dpdGNo
ICh3cGFyYW0pIHsKICAgICBjYXNlIFZLX1JFVFVSTjoKLSAgICAgICAga2V5cGFkID0gKGxwYXJh
bSA+PiAxNikgJiBLRl9FWFRFTkRFRDsKKyAgICAgICAgaWYgKChscGFyYW0gPj4gMTYpICYgS0Zf
RVhURU5ERUQpCisgICAgICAgICAgICBtb2RpZmllciA9IFdlYklucHV0RXZlbnQ6OklzS2V5UGFk
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZLX0lOU0VSVDoKICAgICBjYXNlIFZLX0RFTEVU
RToKQEAgLTU5LDcgKzc3LDggQEAgc3RhdGljIGJvb2wgaXNLZXlQYWQoV1BBUkFNIHdwYXJhbSwg
TFBBUkFNIGxwYXJhbSkKICAgICBjYXNlIFZLX0RPV046CiAgICAgY2FzZSBWS19MRUZUOgogICAg
IGNhc2UgVktfUklHSFQ6Ci0gICAgICAgIGtleXBhZCA9ICEoKGxwYXJhbSA+PiAxNikgJiBLRl9F
WFRFTkRFRCk7CisgICAgICAgIGlmICghKChscGFyYW0gPj4gMTYpICYgS0ZfRVhURU5ERUQpKQor
ICAgICAgICAgICAgbW9kaWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpJc0tleVBhZDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBWS19OVU1MT0NLOgogICAgIGNhc2UgVktfTlVNUEFEMDoKQEAgLTc4
LDEyICs5NywxNSBAQCBzdGF0aWMgYm9vbCBpc0tleVBhZChXUEFSQU0gd3BhcmFtLCBMUEFSQU0g
bHBhcmFtKQogICAgIGNhc2UgVktfQUREOgogICAgIGNhc2UgVktfREVDSU1BTDoKICAgICBjYXNl
IFZLX0NMRUFSOgotICAgICAgICBrZXlwYWQgPSB0cnVlOworICAgICAgICBtb2RpZmllciA9IFdl
YklucHV0RXZlbnQ6OklzS2V5UGFkOwogICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBrZXlwYWQgPSBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGtleXBhZDsKKworICAgIEFT
U0VSVChtb2RpZmllcgorICAgICAgICAgICB8fCBtb2RpZmllciA9PSBXZWJJbnB1dEV2ZW50OjpJ
c0tleVBhZAorICAgICAgICAgICB8fCBtb2RpZmllciA9PSBXZWJJbnB1dEV2ZW50OjpJc0xlZnQK
KyAgICAgICAgICAgfHwgbW9kaWZpZXIgPT0gV2ViSW5wdXRFdmVudDo6SXNSaWdodCk7CisgICAg
cmV0dXJuIG1vZGlmaWVyOwogfQogCiAvLyBMb2FkcyB0aGUgc3RhdGUgZm9yIHRvZ2dsZSBrZXlz
IGludG8gdGhlIGV2ZW50LgpAQCAtMTUzLDggKzE3NSw4IEBAIFdlYktleWJvYXJkRXZlbnQgV2Vi
SW5wdXRFdmVudEZhY3Rvcnk6OmtleWJvYXJkRXZlbnQoSFdORCBod25kLCBVSU5UIG1lc3NhZ2Us
CiAKICAgICBpZiAoTE9XT1JEKGxwYXJhbSkgPiAxKQogICAgICAgICByZXN1bHQubW9kaWZpZXJz
IHw9IFdlYklucHV0RXZlbnQ6OklzQXV0b1JlcGVhdDsKLSAgICBpZiAoaXNLZXlQYWQod3BhcmFt
LCBscGFyYW0pKQotICAgICAgICByZXN1bHQubW9kaWZpZXJzIHw9IFdlYklucHV0RXZlbnQ6Oklz
S2V5UGFkOworCisgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBnZXRMb2NhdGlvbk1vZGlmaWVyKHdw
YXJhbSwgbHBhcmFtKTsKIAogICAgIFNldFRvZ2dsZUtleVN0YXRlKCZyZXN1bHQpOwogICAgIHJl
dHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dl
YklucHV0RXZlbnRDb252ZXJzaW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1dlYklucHV0RXZlbnRDb252ZXJzaW9uVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg3ZDQyNWNk
NTQxZGEzMWJkN2NkMTI4ODBiNDVmYTk0NGI1ZTliYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcApA
QCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiS2V5Ym9hcmRF
dmVudC5oIgorI2luY2x1ZGUgIldlYklucHV0RXZlbnRDb252ZXJzaW9uLmgiCisjaW5jbHVkZSA8
Z3Rlc3QvZ3Rlc3QuaD4KKwordXNpbmcgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OwordXNpbmcgV2Vi
S2l0OjpXZWJLZXlib2FyZEV2ZW50OwordXNpbmcgV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50QnVp
bGRlcjsKKworbmFtZXNwYWNlIHsKKworUGFzc1JlZlB0cjxXZWJDb3JlOjpLZXlib2FyZEV2ZW50
PiBjcmVhdGVLZXlib2FyZEV2ZW50V2l0aExvY2F0aW9uKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6
OktleUxvY2F0aW9uQ29kZSBsb2NhdGlvbikKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6S2V5Ym9h
cmRFdmVudDo6Y3JlYXRlKCJrZXlkb3duIiwgdHJ1ZSwgdHJ1ZSwgMCwgIiIsIGxvY2F0aW9uLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworfQorCitpbnQgZ2V0TW9kaWZpZXJz
Rm9yS2V5TG9jYXRpb25Db2RlKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OktleUxvY2F0aW9uQ29k
ZSBsb2NhdGlvbikKK3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6S2V5Ym9hcmRFdmVudD4gZXZlbnQg
PSBjcmVhdGVLZXlib2FyZEV2ZW50V2l0aExvY2F0aW9uKGxvY2F0aW9uKTsKKyAgICBXZWJLaXQ6
OldlYktleWJvYXJkRXZlbnRCdWlsZGVyIGNvbnZlcnRlZEV2ZW50KCpldmVudCk7CisgICAgcmV0
dXJuIGNvbnZlcnRlZEV2ZW50Lm1vZGlmaWVyczsKK30KKworVEVTVChXZWJJbnB1dEV2ZW50Q29u
dmVyc2lvblRlc3QsIFdlYktleWJvYXJkRXZlbnRCdWlsZGVyKQoreworICAgIC8vIFRlc3Qga2V5
IGxvY2F0aW9uIGNvbnZlcnNpb24uCisgICAgaW50IG1vZGlmaWVycyA9IGdldE1vZGlmaWVyc0Zv
cktleUxvY2F0aW9uQ29kZShXZWJDb3JlOjpLZXlib2FyZEV2ZW50OjpET01fS0VZX0xPQ0FUSU9O
X1NUQU5EQVJEKTsKKyAgICBFWFBFQ1RfRkFMU0UobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6
SXNLZXlQYWQgfHwgbW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNMZWZ0IHx8IG1vZGlmaWVy
cyAmIFdlYklucHV0RXZlbnQ6OklzUmlnaHQpOworCisgICAgbW9kaWZpZXJzID0gZ2V0TW9kaWZp
ZXJzRm9yS2V5TG9jYXRpb25Db2RlKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9D
QVRJT05fTEVGVCk7CisgICAgRVhQRUNUX1RSVUUobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6
SXNMZWZ0KTsKKyAgICBFWFBFQ1RfRkFMU0UobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNL
ZXlQYWQgfHwgbW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNSaWdodCk7CisKKyAgICBtb2Rp
ZmllcnMgPSBnZXRNb2RpZmllcnNGb3JLZXlMb2NhdGlvbkNvZGUoV2ViQ29yZTo6S2V5Ym9hcmRF
dmVudDo6RE9NX0tFWV9MT0NBVElPTl9SSUdIVCk7CisgICAgRVhQRUNUX1RSVUUobW9kaWZpZXJz
ICYgV2ViSW5wdXRFdmVudDo6SXNSaWdodCk7CisgICAgRVhQRUNUX0ZBTFNFKG1vZGlmaWVycyAm
IFdlYklucHV0RXZlbnQ6OklzS2V5UGFkIHx8IG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6Oklz
TGVmdCk7CisKKyAgICBtb2RpZmllcnMgPSBnZXRNb2RpZmllcnNGb3JLZXlMb2NhdGlvbkNvZGUo
V2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpOworICAgIEVY
UEVDVF9UUlVFKG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzS2V5UGFkKTsKKyAgICBFWFBF
Q1RfRkFMU0UobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNMZWZ0IHx8IG1vZGlmaWVycyAm
IFdlYklucHV0RXZlbnQ6OklzUmlnaHQpOworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161493</attachid>
            <date>2012-08-30 09:31:29 -0700</date>
            <delta_ts>2012-09-05 10:45:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94142-20120830093118.patch</filename>
            <type>text/plain</type>
            <size>19111</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGE1YjI2YjQ1OGYyZmJlODE2ZWRlODE3YWZmNTMwNGRjZGQyMDA3MjUuLmY0M2ZhZDBhNmE4NTUx
MmZlZWU5Yzg3OTBhY2EzMjNjM2U2NzRlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDkgQEAKKzIwMTItMDgtMjkgIFJheW1lcyBLaG91cnkgIDxyYXltZXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEFkZGVkIG1vZGlmaWVycyB0byBkaXN0aW5ndWlzaCBiZXR3ZWVu
IGxlZnQvcmlnaHQgU2hpZnQvQ3RybC9BbHQgaW4gV2ViSW5wdXRFdmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MTQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSB3ZSBkaXN0aW5n
dWlzaGVkIGJldHdlZW4gbGVmdC9yaWdodCBTaGlmdC9DdHJsL0FsdCBpbgorICAgICAgICBXZWJJ
bnB1dEV2ZW50cyBieSB1c2luZyB0aGUgbG9jYXRpb24tc3BlY2lmaWMgdmlydHVhbCBrZXljb2Rl
cyAoZS5nLgorICAgICAgICBWS19MU0hJRlQgaW5zdGVhZCBvZiBWS19TSElGVC4gSG93ZXZlciwg
dGhlIFdpbmRvd3MgQVBJIGZvciBrZXkgZXZlbnRzCisgICAgICAgIGFsd2F5cyByZXR1cm5zIHRo
ZSBub24tbG9jYXRpb25hbCB2ZXJzaW9uIChlLmcuIFZLX1NISUZUKS4KKyAgICAgICAgRnVydGhl
cm1vcmUsIEtleWJvYXJkRXZlbnQgYWxzbyByZXR1cm5zCisgICAgICAgIG5vbi1sb2NhdGlvbmFs
IGtleWNvZGVzIGFuZCBzZXBhcmF0ZXMgdGhlIGxvY2F0aW9uIGluZm9ybWF0aW9uIHdoaWNoCisg
ICAgICAgIG1hdGNoZXMgdGhlIGJlaGF2aW9yIGRlc2NyaWJlZCBpbiB0aGUgRE9NMworICAgICAg
ICBzcGVjIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWtl
eWJvYXJkZXZlbnRzLiBXZQorICAgICAgICBzaG91bGQgYmUgY29uc2lzdGVudCB3aXRoIHRoaXMg
aW4gb3VyIHJlcHJlc2VudGF0aW9uIG9mIGtleSBldmVudHMuCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2hhbmdlcyBXZWJJbnB1dEV2ZW50cyBzbyB0aGV5IGFsd2F5cyBzdG9yZSB0aGUKKyAgICAgICAg
bm9uLWxvY2F0aW9uYWwga2V5Y29kZSBhbmQgbG9jYXRpb24gaW5mb3JtYXRpb24gaXMgc3RvcmVk
IGluCisgICAgICAgIG1vZGlmaWVycy4gU2luY2UgdGhpcyBvbmx5IGNoYW5nZXMgaW50ZXJuYWwg
cmVwcmVzZW50YXRpb24sIG5vIG5ldworICAgICAgICB0ZXN0cyBhcmUgYWRkZWQuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhbHNvIGVuc3VyZXMgdGhhdCB3aGVuIEtleWJvYXJkRXZlbnRzIGFyZSBj
b252ZXJ0ZWQgYmFjayB0bworICAgICAgICBXZWJJbnB1dEV2ZW50cyBsb2NhdGlvbiBpbmZvcm1h
dGlvbiBpcyBwcmVzZXJ2ZWQgKHdoaWNoIHdhcyBub3QKKyAgICAgICAgaGFwcGVuaW5nIGJlZm9y
ZSkuIEEgdW5pdHRlc3QgaXMgYWRkZWQgZm9yIHRoaXMuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lw
aToKKyAgICAgICAgKiBwdWJsaWMvV2ViSW5wdXRFdmVudC5oOgorICAgICAgICAoV2ViS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6d2luZG93c0tleUNvZGVX
aXRob3V0TG9jYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpsb2Nh
dGlvbk1vZGlmaWVyc0Zyb21XaW5kb3dzS2V5Q29kZSk6CisgICAgICAgICogc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGxhdGZvcm1LZXlib2FyZEV2
ZW50QnVpbGRlcjo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYktleWJvYXJkRXZlbnRCdWlsZGVyOjpXZWJLZXlib2FyZEV2ZW50QnVpbGRlcik6Cisg
ICAgICAgICogc3JjL2FuZHJvaWQvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgICog
c3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklu
cHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBzcmMvbWFjL1dlYklu
cHV0RXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9y
eTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9y
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdldExvY2F0aW9uTW9kaWZpZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgICog
dGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcDogQWRkZWQuCisKIDIwMTItMDgt
MTMgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSByZWxlYXNlIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6bV9wbHVnaW5XaWRnZXQgcmVmcHRyIHVw
b24gUGx1Z2luIERvY3VtZW50IGRldGFjaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmlu
ZGV4IDEyYzE0OWE5OTE5NTdjNjNlMDA4MDE3NmFjZTE2YmUyYTE4MDY5ZTIuLjkyNWMxZTc2ZmMz
ZGU5OGI2MmI3M2UwNjE5NTQ3YzczNmQyZDkyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwaQpAQCAtMTU5LDYgKzE1OSw3IEBACiAgICAgICAgICAgICAndGVzdHMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViRmxvYXRB
bmltYXRpb25DdXJ2ZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJGcmFtZVRlc3Qu
Y3BwJywKKyAgICAgICAgICAgICd0ZXN0cy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvblRlc3QuY3Bw
JywKICAgICAgICAgICAgICd0ZXN0cy9XZWJMYXllclRlc3QuY3BwJywKICAgICAgICAgICAgICd0
ZXN0cy9XZWJMYXllclRyZWVWaWV3VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYkxh
eWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSW5wdXRFdmVudC5oCmluZGV4IDA5MDQ4Y2RlZDdjMTQ0Njk0NTM2NDM0Mjk2ZjdhZDY5
ZGU4ZTdiMzcuLmEyOGZlMDM3NjY0ZTAyMWQ4NTIzZjVlYTg0ZDVhMjQ3N2ZhZjk4ZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0RXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2ZW50LmgKQEAgLTE1MSw2
ICsxNTEsMTAgQEAgcHVibGljOgogICAgICAgICAvLyBldmVudCBhbmQgYmFjayB3aWxsIG5vdCBw
cmVzZXJ2ZSB0aGVzZSBmbGFncy4KICAgICAgICAgQ2Fwc0xvY2tPbiAgICAgICA9IDEgPDwgOSwK
ICAgICAgICAgTnVtTG9ja09uICAgICAgICA9IDEgPDwgMTAsCisKKyAgICAgICAgLy8gTGVmdC9y
aWdodCBtb2RpZmllcnMgZm9yIGtleWJvYXJkIGV2ZW50cy4KKyAgICAgICAgSXNMZWZ0ICAgICAg
ICAgICA9IDEgPDwgMTEsCisgICAgICAgIElzUmlnaHQgICAgICAgICAgPSAxIDw8IDEyLAogICAg
IH07CiAKICAgICBzdGF0aWMgY29uc3QgaW50IElucHV0TW9kaWZpZXJzID0gU2hpZnRLZXkgfCBD
b250cm9sS2V5IHwgQWx0S2V5IHwgTWV0YUtleTsKQEAgLTIzNyw3ICsyNDEsMTEgQEAgcHVibGlj
OgogICAgIC8vIHx3aW5kb3dzS2V5Q29kZXwgaXMgdGhlIFdpbmRvd3Mga2V5IGNvZGUgYXNzb2Np
YXRlZCB3aXRoIHRoaXMga2V5CiAgICAgLy8gZXZlbnQuICBTb21ldGltZXMgaXQncyBkaXJlY3Qg
ZnJvbSB0aGUgZXZlbnQgKGkuZS4gb24gV2luZG93cyksCiAgICAgLy8gc29tZXRpbWVzIGl0J3Mg
dmlhIGEgbWFwcGluZyBmdW5jdGlvbi4gIElmIHlvdSB3YW50IGEgbGlzdCwgc2VlCi0gICAgLy8g
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlib2FyZENvZGVzKiAuCisgICAgLy8gV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlib2FyZENvZGVzKiAuIE5vdGUgdGhhdCB0aGlzIHNob3Vs
ZAorICAgIC8vIEFMV0FZUyBzdG9yZSB0aGUgbm9uLWxvY2F0aW9uYWwgdmVyc2lvbiBvZiBhIGtl
eWNvZGUgYXMgdGhpcyBpcworICAgIC8vIHdoYXQgaXMgcmV0dXJuZWQgYnkgdGhlIFdpbmRvd3Mg
QVBJLiBGb3IgZXhhbXBsZSwgaXQgc2hvdWxkCisgICAgLy8gc3RvcmUgVktfU0hJRlQgaW5zdGVh
ZCBvZiBWS19SU0hJRlQuIFRoZSBsb2NhdGlvbiBpbmZvcm1hdGlvbgorICAgIC8vIHNob3VsZCBi
ZSBzdG9yZWQgaW4gfG1vZGlmaWVyc3wuCiAgICAgaW50IHdpbmRvd3NLZXlDb2RlOwogCiAgICAg
Ly8gVGhlIGFjdHVhbCBrZXkgY29kZSBnZW5lbmVyYXRlZCBieSB0aGUgcGxhdGZvcm0uICBUaGUg
RE9NIHNwZWMgcnVucwpAQCAtMjc5LDYgKzI4Nyw5IEBAIHB1YmxpYzoKICAgICAvLyBTZXRzIGtl
eUlkZW50aWZpZXIgYmFzZWQgb24gdGhlIHZhbHVlIG9mIHdpbmRvd3NLZXlDb2RlLiAgVGhpcyBp
cwogICAgIC8vIGhhbmR5IGZvciBnZW5lcmF0aW5nIHN5bnRoZXRpYyBrZXlib2FyZCBldmVudHMu
CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEtleUlkZW50aWZpZXJGcm9tV2luZG93c0tleUNv
ZGUoKTsKKworICAgIHN0YXRpYyBpbnQgd2luZG93c0tleUNvZGVXaXRob3V0TG9jYXRpb24oaW50
IGtleWNvZGUpOworICAgIHN0YXRpYyBpbnQgbG9jYXRpb25Nb2RpZmllcnNGcm9tV2luZG93c0tl
eUNvZGUoaW50IGtleWNvZGUpOwogfTsKIAogLy8gV2ViTW91c2VFdmVudCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50LmNwcAppbmRleCA2NmEwNDgwYjRk
NGFkYWMzMTdiYTMxMjlhN2YwMmNkM2E1ZmNiNDY4Li5iMjNjZWMxOGE2Yzk3ZTQ1YjVjMzhkYjAy
NjZhZGFiOTQwYTZlNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJbnB1dEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1
dEV2ZW50LmNwcApAQCAtMjAyLDQgKzIwMiw0MSBAQCB2b2lkIFdlYktleWJvYXJkRXZlbnQ6OnNl
dEtleUlkZW50aWZpZXJGcm9tV2luZG93c0tleUNvZGUoKQogICAgICAgICBzbnByaW50ZihrZXlJ
ZGVudGlmaWVyLCBzaXplb2Yoa2V5SWRlbnRpZmllciksICJVKyUwNFgiLCB0b3VwcGVyKHdpbmRv
d3NLZXlDb2RlKSk7CiB9CiAKKy8vIHN0YXRpYworaW50IFdlYktleWJvYXJkRXZlbnQ6OndpbmRv
d3NLZXlDb2RlV2l0aG91dExvY2F0aW9uKGludCBrZXljb2RlKQoreworICAgIHN3aXRjaCAoa2V5
Y29kZSkgeworICAgIGNhc2UgVktfTENPTlRST0w6CisgICAgY2FzZSBWS19SQ09OVFJPTDoKKyAg
ICAgICAgcmV0dXJuIFZLX0NPTlRST0w7CisgICAgY2FzZSBWS19MU0hJRlQ6CisgICAgY2FzZSBW
S19SU0hJRlQ6CisgICAgICAgIHJldHVybiBWS19TSElGVDsKKyAgICBjYXNlIFZLX0xNRU5VOgor
ICAgIGNhc2UgVktfUk1FTlU6CisgICAgICAgIHJldHVybiBWS19NRU5VOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiBrZXljb2RlOworICAgIH0KK30KKworLy8gc3RhdGljCitpbnQgV2Vi
S2V5Ym9hcmRFdmVudDo6bG9jYXRpb25Nb2RpZmllcnNGcm9tV2luZG93c0tleUNvZGUoaW50IGtl
eWNvZGUpCit7CisgICAgc3dpdGNoIChrZXljb2RlKSB7CisgICAgY2FzZSBWS19MQ09OVFJPTDoK
KyAgICBjYXNlIFZLX0xTSElGVDoKKyAgICBjYXNlIFZLX0xNRU5VOgorICAgIGNhc2UgVktfTFdJ
TjoKKyAgICAgICAgcmV0dXJuIElzTGVmdDsKKyAgICBjYXNlIFZLX1JDT05UUk9MOgorICAgIGNh
c2UgVktfUlNISUZUOgorICAgIGNhc2UgVktfUk1FTlU6CisgICAgY2FzZSBWS19SV0lOOgorICAg
ICAgICByZXR1cm4gSXNSaWdodDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKKyAg
ICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDAzOTFjMjg1
YjdmOGUzZTY2OTUxNjM5ZDM2NWY1OGJkNzNlOGE5OTIuLjQxMDAyYjllYTcwNTc1N2UyMzU4MmVi
ZmQxMjk1Mzk0YjM1NmZhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTIyMyw3ICsyMjMsNiBAQCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKGNv
bnN0IFdlYktleWJvYXJkRXZlbgogICAgIG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoZS51bm1v
ZGlmaWVkVGV4dCk7CiAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKGUua2V5SWRlbnRpZmll
cik7CiAgICAgbV9hdXRvUmVwZWF0ID0gKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNB
dXRvUmVwZWF0KTsKLSAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9IGUud2luZG93c0tleUNv
ZGU7CiAgICAgbV9uYXRpdmVWaXJ0dWFsS2V5Q29kZSA9IGUubmF0aXZlS2V5Q29kZTsKICAgICBt
X2lzS2V5cGFkID0gKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQpOwogICAg
IG1faXNTeXN0ZW1LZXkgPSBlLmlzU3lzdGVtS2V5OwpAQCAtMjM3LDYgKzIzNiwyOCBAQCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKGNv
bnN0IFdlYktleWJvYXJkRXZlbgogICAgICAgICBtX21vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50
OjpBbHRLZXk7CiAgICAgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6TWV0YUtleSkK
ICAgICAgICAgbV9tb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TWV0YUtleTsKKworICAgIC8v
IEZJWE1FOiBQbGF0Zm9ybUtleWJvYXJkRXZlbnRzIGV4cGVjdCBhIGxvY2F0aW9uYWwgdmVyc2lv
biBvZiB0aGUga2V5Y29kZSAoZS5nLiBWS19MU0hJRlQKKyAgICAvLyBpbnN0ZWFkIG9mIFZLX1NI
SUZUKS4gVGhpcyBzaG91bGQgYmUgY2hhbmdlZCBzbyB0aGUgbG9jYXRpb24va2V5Y29kZSBhcmUg
c3RvcmVkIHNlcGFyYXRlbHksCisgICAgLy8gYXMgaW4gb3RoZXIgcGxhY2VzIGluIHRoZSBjb2Rl
LgorICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gZS53aW5kb3dzS2V5Q29kZTsKKyAgICBp
ZiAoZS53aW5kb3dzS2V5Q29kZSA9PSBWS19TSElGVCkgeworICAgICAgICBpZiAoZS5tb2RpZmll
cnMgJiBXZWJJbnB1dEV2ZW50OjpJc0xlZnQpCisgICAgICAgICAgICBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZSA9IFZLX0xTSElGVDsKKyAgICAgICAgZWxzZSBpZiAoZS5tb2RpZmllcnMgJiBXZWJJ
bnB1dEV2ZW50OjpJc1JpZ2h0KQorICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUg
PSBWS19SU0hJRlQ7CisgICAgfSBlbHNlIGlmIChlLndpbmRvd3NLZXlDb2RlID09IFZLX0NPTlRS
T0wpIHsKKyAgICAgICAgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNMZWZ0KQor
ICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBWS19MQ09OVFJPTDsKKyAgICAg
ICAgZWxzZSBpZiAoZS5tb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0KQorICAgICAg
ICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBWS19SQ09OVFJPTDsKKyAgICB9IGVsc2Ug
aWYgKGUud2luZG93c0tleUNvZGUgPT0gVktfTUVOVSkgeworICAgICAgICBpZiAoZS5tb2RpZmll
cnMgJiBXZWJJbnB1dEV2ZW50OjpJc0xlZnQpCisgICAgICAgICAgICBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZSA9IFZLX0xNRU5VOworICAgICAgICBlbHNlIGlmIChlLm1vZGlmaWVycyAmIFdlYklu
cHV0RXZlbnQ6OklzUmlnaHQpCisgICAgICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9
IFZLX1JNRU5VOworICAgIH0KKwogfQogCiB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxk
ZXI6OnNldEtleVR5cGUoVHlwZSB0eXBlKQpAQCAtNDQ4LDggKzQ2OSwxMiBAQCBXZWJLZXlib2Fy
ZEV2ZW50QnVpbGRlcjo6V2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIoY29uc3QgS2V5Ym9hcmRFdmVu
dCYgZXZlbnQpCiAgICAgICAgIHJldHVybjsgLy8gU2tpcCBhbGwgb3RoZXIga2V5Ym9hcmQgZXZl
bnRzLgogCiAgICAgbW9kaWZpZXJzID0gZ2V0V2ViSW5wdXRNb2RpZmllcnMoZXZlbnQpOwotICAg
IGlmIChldmVudC5rZXlMb2NhdGlvbigpICYgS2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9MT0NBVElP
Tl9OVU1QQUQpCisgICAgaWYgKGV2ZW50LmtleUxvY2F0aW9uKCkgPT0gS2V5Ym9hcmRFdmVudDo6
RE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJJbnB1dEV2
ZW50OjpJc0tleVBhZDsKKyAgICBlbHNlIGlmIChldmVudC5rZXlMb2NhdGlvbigpID09IEtleWJv
YXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fTEVGVCkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdl
YklucHV0RXZlbnQ6OklzTGVmdDsKKyAgICBlbHNlIGlmIChldmVudC5rZXlMb2NhdGlvbigpID09
IEtleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fUklHSFQpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0OwogCiAgICAgdGltZVN0YW1wU2Vjb25kcyA9IGV2
ZW50LnRpbWVTdGFtcCgpIC8gbWlsbGlzUGVyU2Vjb25kOwogICAgIHdpbmRvd3NLZXlDb2RlID0g
ZXZlbnQua2V5Q29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
YW5kcm9pZC9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9hbmRyb2lkL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAppbmRleCBmYjcyMzIyM2I3NDBi
YTBjYjA1ZmI2ODVkNDU5YzgwMGNmNWJkZTFkLi45YmM3MGZhY2E4ZmUwNjk0OGRhNDZhYTcwMTIy
YjY0MzBhOGUzNTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9hbmRy
b2lkL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9hbmRyb2lkL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcApAQCAtNTAsNyArNTAsOSBAQCBX
ZWJLZXlib2FyZEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KFdlYklu
cHV0RXZlbnQ6OlR5cGUgdHlwZSwKICAgICByZXN1bHQudHlwZSA9IHR5cGU7CiAgICAgcmVzdWx0
Lm1vZGlmaWVycyA9IG1vZGlmaWVyczsKICAgICByZXN1bHQudGltZVN0YW1wU2Vjb25kcyA9IHRp
bWVTdGFtcFNlY29uZHM7Ci0gICAgcmVzdWx0LndpbmRvd3NLZXlDb2RlID0gV2ViQ29yZTo6d2lu
ZG93c0tleUNvZGVGb3JLZXlFdmVudChrZXljb2RlKTsKKyAgICBpbnQgd2luZG93c0tleUNvZGUg
PSBXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGtleWNvZGUpOworICAgIHJlc3Vs
dC53aW5kb3dzS2V5Q29kZSA9IFdlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NLZXlDb2RlV2l0aG91
dExvY2F0aW9uKHdpbmRvd3NLZXlDb2RlKTsKKyAgICByZXN1bHQubW9kaWZpZXJzIHw9IFdlYktl
eWJvYXJkRXZlbnQ6OmxvY2F0aW9uTW9kaWZpZXJzRnJvbVdpbmRvd3NLZXlDb2RlKHdpbmRvd3NL
ZXlDb2RlKTsKICAgICByZXN1bHQubmF0aXZlS2V5Q29kZSA9IGtleWNvZGU7CiAgICAgcmVzdWx0
LnVubW9kaWZpZWRUZXh0WzBdID0gdW5pY29kZUNoYXJhY3RlcjsKICAgICBpZiAocmVzdWx0Lndp
bmRvd3NLZXlDb2RlID09IFdlYkNvcmU6OlZLRVlfUkVUVVJOKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvZ3RrL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAppbmRl
eCA0M2MyMzhhNjlkZWVkMjU5NDc2ZWY0MzY5NjNmYWM3Mjc0ZjA5MDc3Li4yMDdkMzRmMDE0ZDFk
YmJlMmM4OWNjMmFmOWM3ZmE1MmNiNDMxMDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKQEAgLTM4Myw3ICsz
ODMsOSBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2
ZW50KGNvbnN0IEdka0V2ZW50S2V5KiBldmVudCkKICAgICAvLyBUaGUga2V5IGNvZGUgdGVsbHMg
dXMgd2hpY2ggcGh5c2ljYWwga2V5IHdhcyBwcmVzc2VkIChmb3IgZXhhbXBsZSwgdGhlCiAgICAg
Ly8gQSBrZXkgd2VudCBkb3duIG9yIHVwKS4gIEl0IGRvZXMgbm90IGRldGVybWluZSB3aGV0aGVy
IEEgc2hvdWxkIGJlIGxvd2VyCiAgICAgLy8gb3IgdXBwZXIgY2FzZS4gIFRoaXMgaXMgd2hhdCB0
ZXh0IGRvZXMsIHdoaWNoIHNob3VsZCBiZSB0aGUga2V5dmFsLgotICAgIHJlc3VsdC53aW5kb3dz
S2V5Q29kZSA9IGdka0V2ZW50VG9XaW5kb3dzS2V5Q29kZShldmVudCk7CisgICAgaW50IHdpbmRv
d3NLZXlDb2RlID0gZ2RrRXZlbnRUb1dpbmRvd3NLZXlDb2RlKGV2ZW50KTsKKyAgICByZXN1bHQu
d2luZG93c0tleUNvZGUgPSBXZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29kZVdpdGhvdXRM
b2NhdGlvbih3aW5kb3dzS2V5Q29kZSk7CisgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBXZWJLZXli
b2FyZEV2ZW50Ojpsb2NhdGlvbk1vZGlmaWVyc0Zyb21XaW5kb3dzS2V5Q29kZSh3aW5kb3dzS2V5
Q29kZSk7CiAgICAgcmVzdWx0Lm5hdGl2ZUtleUNvZGUgPSBldmVudC0+aGFyZHdhcmVfa2V5Y29k
ZTsKIAogICAgIGlmIChyZXN1bHQud2luZG93c0tleUNvZGUgPT0gV2ViQ29yZTo6VktFWV9SRVRV
Uk4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRF
dmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRF
dmVudEZhY3RvcnkubW0KaW5kZXggYmFiYjFmNmNjZTc5ZjQ5Nzg4ZDdmYmRlMjU1MzA2MjdmMTM0
ODhhOC4uZGJjZDk5MzgxOGU2MDA1M2Q5ZDU5YjNjNTk1NjBlNzkyZmI1ZjYzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9y
eS5tbQpAQCAtNjA2LDcgKzYwNiw5IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViSW5wdXRFdmVudEZh
Y3Rvcnk6OmtleWJvYXJkRXZlbnQoTlNFdmVudCogZXZlbnQpCiAgICAgaWYgKChbZXZlbnQgdHlw
ZV0gIT0gTlNGbGFnc0NoYW5nZWQpICYmIFtldmVudCBpc0FSZXBlYXRdKQogICAgICAgICByZXN1
bHQubW9kaWZpZXJzIHw9IFdlYklucHV0RXZlbnQ6OklzQXV0b1JlcGVhdDsKIAotICAgIHJlc3Vs
dC53aW5kb3dzS2V5Q29kZSA9IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQoZXZlbnQpOworICAg
IGludCB3aW5kb3dzS2V5Q29kZSA9IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQoZXZlbnQpOwor
ICAgIHJlc3VsdC53aW5kb3dzS2V5Q29kZSA9IFdlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NLZXlD
b2RlV2l0aG91dExvY2F0aW9uKHdpbmRvd3NLZXlDb2RlKTsKKyAgICByZXN1bHQubW9kaWZpZXJz
IHw9IFdlYktleWJvYXJkRXZlbnQ6OmxvY2F0aW9uTW9kaWZpZXJzRnJvbUtleUNvZGUod2luZG93
c0tleUNvZGUpOwogICAgIHJlc3VsdC5uYXRpdmVLZXlDb2RlID0gW2V2ZW50IGtleUNvZGVdOwog
CiAgICAgTlNTdHJpbmcqIHRleHRTdHIgPSB0ZXh0RnJvbUV2ZW50KGV2ZW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3Rvcnku
Y3BwCmluZGV4IDlkYTRiNGEyNzk4YWFiY2Q1ZmI4NzJhNjVkNTZkZjU1YzIwMTYwMDkuLjZlZDY5
ZDI2M2E5Y2M1YTY3NjJlNDhmMTk1MWY3NjhmNWFlOTNkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcApAQCAt
NDIsMTIgKzQyLDMwIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBsb25nIGRlZmF1bHRTY3JvbGxD
aGFyc1BlcldoZWVsRGVsdGEgPSAxOwogCiAvLyBXZWJLZXlib2FyZEV2ZW50IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLXN0YXRp
YyBib29sIGlzS2V5UGFkKFdQQVJBTSB3cGFyYW0sIExQQVJBTSBscGFyYW0pCitzdGF0aWMgaW50
IGdldExvY2F0aW9uTW9kaWZpZXIoV1BBUkFNIHdwYXJhbSwgTFBBUkFNIGxwYXJhbSkKIHsKLSAg
ICBib29sIGtleXBhZCA9IGZhbHNlOworICAgIGludCBtb2RpZmllciA9IDA7CisgICAgaWYgKHdw
YXJhbSA9PSBWS19TSElGVCkgeworICAgICAgICBpZiAoR2V0S2V5U3RhdGUoVktfTFNISUZUKSkK
KyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6SXNMZWZ0OworICAgICAgICBl
bHNlIGlmIChHZXRLZXlTdGF0ZShWS19SU0hJRlQpKQorICAgICAgICAgICAgbW9kaWZpZXIgPSBX
ZWJJbnB1dEV2ZW50OjpJc1JpZ2h0OworICAgIH0gZWxzZSBpZiAod3BhcmFtID09IFZLX0NPTlRS
T0wpIHsKKyAgICAgICAgaWYgKEdldEtleVN0YXRlKFZLX0xDT05UUk9MKSkKKyAgICAgICAgICAg
IG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6SXNMZWZ0OworICAgICAgICBlbHNlIGlmIChHZXRL
ZXlTdGF0ZShWS19SQ09OVFJPTCkpCisgICAgICAgICAgICBtb2RpZmllciA9IFdlYklucHV0RXZl
bnQ6OklzUmlnaHQ7CisgICAgfSBlbHNlIGlmICh3cGFyYW0gPT0gVktfTUVOVSkgeworICAgICAg
ICBpZiAoR2V0S2V5U3RhdGUoVktfTE1FTlUpKQorICAgICAgICAgICAgbW9kaWZpZXIgPSBXZWJJ
bnB1dEV2ZW50OjpJc0xlZnQ7CisgICAgICAgIGVsc2UgaWYgKEdldEtleVN0YXRlKFZLX1JNRU5V
KSkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6SXNSaWdodDsKKyAgICB9
CisKICAgICBzd2l0Y2ggKHdwYXJhbSkgewogICAgIGNhc2UgVktfUkVUVVJOOgotICAgICAgICBr
ZXlwYWQgPSAobHBhcmFtID4+IDE2KSAmIEtGX0VYVEVOREVEOworICAgICAgICBpZiAoKGxwYXJh
bSA+PiAxNikgJiBLRl9FWFRFTkRFRCkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRF
dmVudDo6SXNLZXlQYWQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVktfSU5TRVJUOgogICAg
IGNhc2UgVktfREVMRVRFOgpAQCAtNTksNyArNzcsOCBAQCBzdGF0aWMgYm9vbCBpc0tleVBhZChX
UEFSQU0gd3BhcmFtLCBMUEFSQU0gbHBhcmFtKQogICAgIGNhc2UgVktfRE9XTjoKICAgICBjYXNl
IFZLX0xFRlQ6CiAgICAgY2FzZSBWS19SSUdIVDoKLSAgICAgICAga2V5cGFkID0gISgobHBhcmFt
ID4+IDE2KSAmIEtGX0VYVEVOREVEKTsKKyAgICAgICAgaWYgKCEoKGxwYXJhbSA+PiAxNikgJiBL
Rl9FWFRFTkRFRCkpCisgICAgICAgICAgICBtb2RpZmllciA9IFdlYklucHV0RXZlbnQ6OklzS2V5
UGFkOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZLX05VTUxPQ0s6CiAgICAgY2FzZSBWS19O
VU1QQUQwOgpAQCAtNzgsMTIgKzk3LDE1IEBAIHN0YXRpYyBib29sIGlzS2V5UGFkKFdQQVJBTSB3
cGFyYW0sIExQQVJBTSBscGFyYW0pCiAgICAgY2FzZSBWS19BREQ6CiAgICAgY2FzZSBWS19ERUNJ
TUFMOgogICAgIGNhc2UgVktfQ0xFQVI6Ci0gICAgICAgIGtleXBhZCA9IHRydWU7CisgICAgICAg
IG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQ7CiAgICAgICAgIGJyZWFrOwotICAg
IGRlZmF1bHQ6Ci0gICAgICAgIGtleXBhZCA9IGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4ga2V5
cGFkOworCisgICAgQVNTRVJUKG1vZGlmaWVyCisgICAgICAgICAgIHx8IG1vZGlmaWVyID09IFdl
YklucHV0RXZlbnQ6OklzS2V5UGFkCisgICAgICAgICAgIHx8IG1vZGlmaWVyID09IFdlYklucHV0
RXZlbnQ6OklzTGVmdAorICAgICAgICAgICB8fCBtb2RpZmllciA9PSBXZWJJbnB1dEV2ZW50OjpJ
c1JpZ2h0KTsKKyAgICByZXR1cm4gbW9kaWZpZXI7CiB9CiAKIC8vIExvYWRzIHRoZSBzdGF0ZSBm
b3IgdG9nZ2xlIGtleXMgaW50byB0aGUgZXZlbnQuCkBAIC0xNTMsOCArMTc1LDggQEAgV2ViS2V5
Ym9hcmRFdmVudCBXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudChIV05EIGh3bmQs
IFVJTlQgbWVzc2FnZSwKIAogICAgIGlmIChMT1dPUkQobHBhcmFtKSA+IDEpCiAgICAgICAgIHJl
c3VsdC5tb2RpZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6SXNBdXRvUmVwZWF0OwotICAgIGlmIChp
c0tleVBhZCh3cGFyYW0sIGxwYXJhbSkpCi0gICAgICAgIHJlc3VsdC5tb2RpZmllcnMgfD0gV2Vi
SW5wdXRFdmVudDo6SXNLZXlQYWQ7CisKKyAgICByZXN1bHQubW9kaWZpZXJzIHw9IGdldExvY2F0
aW9uTW9kaWZpZXIod3BhcmFtLCBscGFyYW0pOwogCiAgICAgU2V0VG9nZ2xlS2V5U3RhdGUoJnJl
c3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xZGY3NmRjN2M4MDA3NzgwMGU5NzliZmI1NzYzZTc1YThhMDk4MjIwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvblRlc3QuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlICJXZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oIgorCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVu
dC5oIgorI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKK3VzaW5nIFdlYktpdDo6V2ViSW5wdXRF
dmVudDsKK3VzaW5nIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDsKK3VzaW5nIFdlYktpdDo6V2Vi
S2V5Ym9hcmRFdmVudEJ1aWxkZXI7CisKK25hbWVzcGFjZSB7CisKK1Bhc3NSZWZQdHI8V2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudD4gY3JlYXRlS2V5Ym9hcmRFdmVudFdpdGhMb2NhdGlvbihXZWJDb3Jl
OjpLZXlib2FyZEV2ZW50OjpLZXlMb2NhdGlvbkNvZGUgbG9jYXRpb24pCit7CisgICAgcmV0dXJu
IFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OmNyZWF0ZSgia2V5ZG93biIsIHRydWUsIHRydWUsIDAs
ICIiLCBsb2NhdGlvbiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKK30KKwor
aW50IGdldE1vZGlmaWVyc0ZvcktleUxvY2F0aW9uQ29kZShXZWJDb3JlOjpLZXlib2FyZEV2ZW50
OjpLZXlMb2NhdGlvbkNvZGUgbG9jYXRpb24pCit7CisgICAgUmVmUHRyPFdlYkNvcmU6OktleWJv
YXJkRXZlbnQ+IGV2ZW50ID0gY3JlYXRlS2V5Ym9hcmRFdmVudFdpdGhMb2NhdGlvbihsb2NhdGlv
bik7CisgICAgV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50QnVpbGRlciBjb252ZXJ0ZWRFdmVudCgq
ZXZlbnQpOworICAgIHJldHVybiBjb252ZXJ0ZWRFdmVudC5tb2RpZmllcnM7Cit9CisKK1RFU1Qo
V2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LCBXZWJLZXlib2FyZEV2ZW50QnVpbGRlcikKK3sK
KyAgICAvLyBUZXN0IGtleSBsb2NhdGlvbiBjb252ZXJzaW9uLgorICAgIGludCBtb2RpZmllcnMg
PSBnZXRNb2RpZmllcnNGb3JLZXlMb2NhdGlvbkNvZGUoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6
RE9NX0tFWV9MT0NBVElPTl9TVEFOREFSRCk7CisgICAgRVhQRUNUX0ZBTFNFKG1vZGlmaWVycyAm
IFdlYklucHV0RXZlbnQ6OklzS2V5UGFkIHx8IG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6Oklz
TGVmdCB8fCBtb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0KTsKKworICAgIG1vZGlm
aWVycyA9IGdldE1vZGlmaWVyc0ZvcktleUxvY2F0aW9uQ29kZShXZWJDb3JlOjpLZXlib2FyZEV2
ZW50OjpET01fS0VZX0xPQ0FUSU9OX0xFRlQpOworICAgIEVYUEVDVF9UUlVFKG1vZGlmaWVycyAm
IFdlYklucHV0RXZlbnQ6OklzTGVmdCk7CisgICAgRVhQRUNUX0ZBTFNFKG1vZGlmaWVycyAmIFdl
YklucHV0RXZlbnQ6OklzS2V5UGFkIHx8IG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzUmln
aHQpOworCisgICAgbW9kaWZpZXJzID0gZ2V0TW9kaWZpZXJzRm9yS2V5TG9jYXRpb25Db2RlKFdl
YkNvcmU6OktleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fUklHSFQpOworICAgIEVYUEVD
VF9UUlVFKG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzUmlnaHQpOworICAgIEVYUEVDVF9G
QUxTRShtb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJc0tleVBhZCB8fCBtb2RpZmllcnMgJiBX
ZWJJbnB1dEV2ZW50OjpJc0xlZnQpOworCisgICAgbW9kaWZpZXJzID0gZ2V0TW9kaWZpZXJzRm9y
S2V5TG9jYXRpb25Db2RlKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05f
TlVNUEFEKTsKKyAgICBFWFBFQ1RfVFJVRShtb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJc0tl
eVBhZCk7CisgICAgRVhQRUNUX0ZBTFNFKG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzTGVm
dCB8fCBtb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJc1JpZ2h0KTsKK30KKworfSAvLyBhbm9u
eW1vdXMgbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162280</attachid>
            <date>2012-09-05 10:42:44 -0700</date>
            <delta_ts>2012-09-05 14:45:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94142-20120905104226.patch</filename>
            <type>text/plain</type>
            <size>19365</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGYyMzRlN2IxNzgxM2NhMDAxOGViNWZmZGVhNWUxYzNjMTUyZmU0YWQuLjUyODEwN2RiODk3MTJh
NmZiODExN2I4ODU1OGEyODBjMzY3MzlmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTItMDktMDUgIFJheW1lcyBLaG91cnkgIDxyYXltZXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEFkZGVkIG1vZGlmaWVycyB0byBkaXN0aW5ndWlzaCBiZXR3ZWVu
IGxlZnQvcmlnaHQgU2hpZnQvQ3RybC9BbHQgaW4gV2ViSW5wdXRFdmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MTQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSB3ZSBkaXN0aW5n
dWlzaGVkIGJldHdlZW4gbGVmdC9yaWdodCBTaGlmdC9DdHJsL0FsdCBpbgorICAgICAgICBXZWJJ
bnB1dEV2ZW50cyBieSB1c2luZyB0aGUgbG9jYXRpb24tc3BlY2lmaWMgdmlydHVhbCBrZXljb2Rl
cyAoZS5nLgorICAgICAgICBWS19MU0hJRlQgaW5zdGVhZCBvZiBWS19TSElGVC4gSG93ZXZlciwg
dGhlIFdpbmRvd3MgQVBJIGZvciBrZXkgZXZlbnRzCisgICAgICAgIGFsd2F5cyByZXR1cm5zIHRo
ZSBub24tbG9jYXRpb25hbCB2ZXJzaW9uIChlLmcuIFZLX1NISUZUKS4KKyAgICAgICAgRnVydGhl
cm1vcmUsIEtleWJvYXJkRXZlbnQgYWxzbyByZXR1cm5zCisgICAgICAgIG5vbi1sb2NhdGlvbmFs
IGtleWNvZGVzIGFuZCBzZXBhcmF0ZXMgdGhlIGxvY2F0aW9uIGluZm9ybWF0aW9uIHdoaWNoCisg
ICAgICAgIG1hdGNoZXMgdGhlIGJlaGF2aW9yIGRlc2NyaWJlZCBpbiB0aGUgRE9NMworICAgICAg
ICBzcGVjIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWtl
eWJvYXJkZXZlbnRzLiBXZQorICAgICAgICBzaG91bGQgYmUgY29uc2lzdGVudCB3aXRoIHRoaXMg
aW4gb3VyIHJlcHJlc2VudGF0aW9uIG9mIGtleSBldmVudHMuCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2hhbmdlcyBXZWJJbnB1dEV2ZW50cyBzbyB0aGV5IGFsd2F5cyBzdG9yZSB0aGUKKyAgICAgICAg
bm9uLWxvY2F0aW9uYWwga2V5Y29kZSBhbmQgbG9jYXRpb24gaW5mb3JtYXRpb24gaXMgc3RvcmVk
IGluCisgICAgICAgIG1vZGlmaWVycy4gU2luY2UgdGhpcyBvbmx5IGNoYW5nZXMgaW50ZXJuYWwg
cmVwcmVzZW50YXRpb24sIG5vIG5ldworICAgICAgICB0ZXN0cyBhcmUgYWRkZWQuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhbHNvIGVuc3VyZXMgdGhhdCB3aGVuIEtleWJvYXJkRXZlbnRzIGFyZSBj
b252ZXJ0ZWQgYmFjayB0bworICAgICAgICBXZWJJbnB1dEV2ZW50cyBsb2NhdGlvbiBpbmZvcm1h
dGlvbiBpcyBwcmVzZXJ2ZWQgKHdoaWNoIHdhcyBub3QKKyAgICAgICAgaGFwcGVuaW5nIGJlZm9y
ZSkuIFRoaXMgaXMgaW1wb3J0YW50IHNvIHRoYXQga2V5IGxvY2F0aW9uIGluZm9ybWF0aW9uCisg
ICAgICAgIGlzIHBhc3NlZCBvbiB0byBwbHVnaW5zLiBBIHVuaXR0ZXN0IGlzIGFkZGVkIGZvciB0
aGlzLgorCisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogcHVibGljL1dlYklucHV0
RXZlbnQuaDoKKyAgICAgICAgKFdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIHNyYy9XZWJJ
bnB1dEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktl
eWJvYXJkRXZlbnQ6OndpbmRvd3NLZXlDb2RlV2l0aG91dExvY2F0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bG9jYXRpb25Nb2RpZmllcnNGcm9tV2luZG93c0tleUNv
ZGUpOgorICAgICAgICAqIHNyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5Ym9hcmRF
dmVudEJ1aWxkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50QnVpbGRlcjo6
V2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHNyYy9hbmRyb2lkL1dlYklucHV0
RXZlbnRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFdmVudEZhY3Rvcnk6
OmtleWJvYXJkRXZlbnQpOgorICAgICAgICAqIHNyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3Rvcnku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVu
dCk6CisgICAgICAgICogc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5wdXRFdmVudEZhY3Rvcnk6OmtleWJvYXJkRXZlbnQpOgorICAgICAgICAq
IHNyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpnZXRM
b2NhdGlvbk1vZGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFdmVudEZhY3Rvcnk6
OmtleWJvYXJkRXZlbnQpOgorICAgICAgICAqIHRlc3RzL1dlYklucHV0RXZlbnRDb252ZXJzaW9u
VGVzdC5jcHA6IEFkZGVkLgorCiAyMDEyLTA5LTA0ICBUaWVuLVJlbiBDaGVuICA8dHJjaGVuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJlbmFtZSBXZWJWaWV3Q2xpZW50Ojpo
YW5kbGVEaXNhbWJpZ3VhdGlvblBvcHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRl
eCA1NGYwZGI4ZTVjMmM1NTRjY2NhN2UxNjA4YTdlNmY3ODg3MTE3N2I3Li40ZjIxZTVhNTBkNDgz
NjM3ZWUyN2MxMTM2Yzg3YjhjNGM0ZTE4NzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cGkKQEAgLTE3NCw2ICsxNzQsNyBAQAogICAgICAgICAgICAgJ3Rlc3RzL1RyZWVTeW5jaHJvbml6
ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViQW5pbWF0aW9uVGVzdC5jcHAnLAog
ICAgICAgICAgICAgJ3Rlc3RzL1dlYkZsb2F0QW5pbWF0aW9uQ3VydmVUZXN0LmNwcCcsCisgICAg
ICAgICAgICAndGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcCcsCiAgICAgICAg
ICAgICAndGVzdHMvV2ViTGF5ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViTGF5
ZXJUcmVlVmlld1Rlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJMYXllclRyZWVWaWV3
VGVzdENvbW1vbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklucHV0RXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0
RXZlbnQuaAppbmRleCBkMWY1MTczZTlmODQ0MmE0ZTBmNDEyNGU2NjI0MjVhMGQ5ODZlN2NhLi5i
OTJhMmE2NGVkZjg5NWViMTY0MjIyMDQ1NWFlM2VjMDZkOGM5MjM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2ZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oCkBAIC0xNTEsNiArMTUxLDEwIEBA
IHB1YmxpYzoKICAgICAgICAgLy8gZXZlbnQgYW5kIGJhY2sgd2lsbCBub3QgcHJlc2VydmUgdGhl
c2UgZmxhZ3MuCiAgICAgICAgIENhcHNMb2NrT24gICAgICAgPSAxIDw8IDksCiAgICAgICAgIE51
bUxvY2tPbiAgICAgICAgPSAxIDw8IDEwLAorCisgICAgICAgIC8vIExlZnQvcmlnaHQgbW9kaWZp
ZXJzIGZvciBrZXlib2FyZCBldmVudHMuCisgICAgICAgIElzTGVmdCAgICAgICAgICAgPSAxIDw8
IDExLAorICAgICAgICBJc1JpZ2h0ICAgICAgICAgID0gMSA8PCAxMiwKICAgICB9OwogCiAgICAg
c3RhdGljIGNvbnN0IGludCBJbnB1dE1vZGlmaWVycyA9IFNoaWZ0S2V5IHwgQ29udHJvbEtleSB8
IEFsdEtleSB8IE1ldGFLZXk7CkBAIC0yMzcsNyArMjQxLDExIEBAIHB1YmxpYzoKICAgICAvLyB8
d2luZG93c0tleUNvZGV8IGlzIHRoZSBXaW5kb3dzIGtleSBjb2RlIGFzc29jaWF0ZWQgd2l0aCB0
aGlzIGtleQogICAgIC8vIGV2ZW50LiAgU29tZXRpbWVzIGl0J3MgZGlyZWN0IGZyb20gdGhlIGV2
ZW50IChpLmUuIG9uIFdpbmRvd3MpLAogICAgIC8vIHNvbWV0aW1lcyBpdCdzIHZpYSBhIG1hcHBp
bmcgZnVuY3Rpb24uICBJZiB5b3Ugd2FudCBhIGxpc3QsIHNlZQotICAgIC8vIFdlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vS2V5Ym9hcmRDb2RlcyogLgorICAgIC8vIFdlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vS2V5Ym9hcmRDb2RlcyogLiBOb3RlIHRoYXQgdGhpcyBzaG91bGQKKyAgICAvLyBB
TFdBWVMgc3RvcmUgdGhlIG5vbi1sb2NhdGlvbmFsIHZlcnNpb24gb2YgYSBrZXljb2RlIGFzIHRo
aXMgaXMKKyAgICAvLyB3aGF0IGlzIHJldHVybmVkIGJ5IHRoZSBXaW5kb3dzIEFQSS4gRm9yIGV4
YW1wbGUsIGl0IHNob3VsZAorICAgIC8vIHN0b3JlIFZLX1NISUZUIGluc3RlYWQgb2YgVktfUlNI
SUZULiBUaGUgbG9jYXRpb24gaW5mb3JtYXRpb24KKyAgICAvLyBzaG91bGQgYmUgc3RvcmVkIGlu
IHxtb2RpZmllcnN8LgogICAgIGludCB3aW5kb3dzS2V5Q29kZTsKIAogICAgIC8vIFRoZSBhY3R1
YWwga2V5IGNvZGUgZ2VuZW5lcmF0ZWQgYnkgdGhlIHBsYXRmb3JtLiAgVGhlIERPTSBzcGVjIHJ1
bnMKQEAgLTI3OSw2ICsyODcsOSBAQCBwdWJsaWM6CiAgICAgLy8gU2V0cyBrZXlJZGVudGlmaWVy
IGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiB3aW5kb3dzS2V5Q29kZS4gIFRoaXMgaXMKICAgICAvLyBo
YW5keSBmb3IgZ2VuZXJhdGluZyBzeW50aGV0aWMga2V5Ym9hcmQgZXZlbnRzLgogICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCBzZXRLZXlJZGVudGlmaWVyRnJvbVdpbmRvd3NLZXlDb2RlKCk7CisKKyAg
ICBzdGF0aWMgaW50IHdpbmRvd3NLZXlDb2RlV2l0aG91dExvY2F0aW9uKGludCBrZXljb2RlKTsK
KyAgICBzdGF0aWMgaW50IGxvY2F0aW9uTW9kaWZpZXJzRnJvbVdpbmRvd3NLZXlDb2RlKGludCBr
ZXljb2RlKTsKIH07CiAKIC8vIFdlYk1vdXNlRXZlbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudC5jcHAKaW5kZXggZDYxZWIyZDMxNzFlN2I3ZDQzOThh
ZGYwOTZkM2IwYmFmNjc2ZmU0NC4uOTYxMjNjNjJlOTA2MTQ0ODlhZTNmMGE0NjVjODdiYjczYTZk
YzVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudC5jcHAK
QEAgLTIwMiw0ICsyMDIsNDEgQEAgdm9pZCBXZWJLZXlib2FyZEV2ZW50OjpzZXRLZXlJZGVudGlm
aWVyRnJvbVdpbmRvd3NLZXlDb2RlKCkKICAgICAgICAgc25wcmludGYoa2V5SWRlbnRpZmllciwg
c2l6ZW9mKGtleUlkZW50aWZpZXIpLCAiVSslMDRYIiwgdG91cHBlcih3aW5kb3dzS2V5Q29kZSkp
OwogfQogCisvLyBzdGF0aWMKK2ludCBXZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29kZVdp
dGhvdXRMb2NhdGlvbihpbnQga2V5Y29kZSkKK3sKKyAgICBzd2l0Y2ggKGtleWNvZGUpIHsKKyAg
ICBjYXNlIFZLX0xDT05UUk9MOgorICAgIGNhc2UgVktfUkNPTlRST0w6CisgICAgICAgIHJldHVy
biBWS19DT05UUk9MOworICAgIGNhc2UgVktfTFNISUZUOgorICAgIGNhc2UgVktfUlNISUZUOgor
ICAgICAgICByZXR1cm4gVktfU0hJRlQ7CisgICAgY2FzZSBWS19MTUVOVToKKyAgICBjYXNlIFZL
X1JNRU5VOgorICAgICAgICByZXR1cm4gVktfTUVOVTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4ga2V5Y29kZTsKKyAgICB9Cit9CisKKy8vIHN0YXRpYworaW50IFdlYktleWJvYXJkRXZl
bnQ6OmxvY2F0aW9uTW9kaWZpZXJzRnJvbVdpbmRvd3NLZXlDb2RlKGludCBrZXljb2RlKQorewor
ICAgIHN3aXRjaCAoa2V5Y29kZSkgeworICAgIGNhc2UgVktfTENPTlRST0w6CisgICAgY2FzZSBW
S19MU0hJRlQ6CisgICAgY2FzZSBWS19MTUVOVToKKyAgICBjYXNlIFZLX0xXSU46CisgICAgICAg
IHJldHVybiBJc0xlZnQ7CisgICAgY2FzZSBWS19SQ09OVFJPTDoKKyAgICBjYXNlIFZLX1JTSElG
VDoKKyAgICBjYXNlIFZLX1JNRU5VOgorICAgIGNhc2UgVktfUldJTjoKKyAgICAgICAgcmV0dXJu
IElzUmlnaHQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCAwMzkxYzI4NWI3ZjhlM2U2Njk1
MTYzOWQzNjVmNThiZDczZThhOTkyLi40MTAwMmI5ZWE3MDU3NTdlMjM1ODJlYmZkMTI5NTM5NGIz
NTZmYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5w
dXRFdmVudENvbnZlcnNpb24uY3BwCkBAIC0yMjMsNyArMjIzLDYgQEAgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50QnVpbGRlcjo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcihjb25zdCBXZWJLZXli
b2FyZEV2ZW4KICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5nKGUudW5tb2RpZmllZFRleHQp
OwogICAgIG1fa2V5SWRlbnRpZmllciA9IFN0cmluZyhlLmtleUlkZW50aWZpZXIpOwogICAgIG1f
YXV0b1JlcGVhdCA9IChlLm1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzQXV0b1JlcGVhdCk7
Ci0gICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBlLndpbmRvd3NLZXlDb2RlOwogICAgIG1f
bmF0aXZlVmlydHVhbEtleUNvZGUgPSBlLm5hdGl2ZUtleUNvZGU7CiAgICAgbV9pc0tleXBhZCA9
IChlLm1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzS2V5UGFkKTsKICAgICBtX2lzU3lzdGVt
S2V5ID0gZS5pc1N5c3RlbUtleTsKQEAgLTIzNyw2ICsyMzYsMjggQEAgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50QnVpbGRlcjo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcihjb25zdCBXZWJLZXli
b2FyZEV2ZW4KICAgICAgICAgbV9tb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6QWx0S2V5Owog
ICAgIGlmIChlLm1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6Ok1ldGFLZXkpCiAgICAgICAgIG1f
bW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6Ok1ldGFLZXk7CisKKyAgICAvLyBGSVhNRTogUGxh
dGZvcm1LZXlib2FyZEV2ZW50cyBleHBlY3QgYSBsb2NhdGlvbmFsIHZlcnNpb24gb2YgdGhlIGtl
eWNvZGUgKGUuZy4gVktfTFNISUZUCisgICAgLy8gaW5zdGVhZCBvZiBWS19TSElGVCkuIFRoaXMg
c2hvdWxkIGJlIGNoYW5nZWQgc28gdGhlIGxvY2F0aW9uL2tleWNvZGUgYXJlIHN0b3JlZCBzZXBh
cmF0ZWx5LAorICAgIC8vIGFzIGluIG90aGVyIHBsYWNlcyBpbiB0aGUgY29kZS4KKyAgICBtX3dp
bmRvd3NWaXJ0dWFsS2V5Q29kZSA9IGUud2luZG93c0tleUNvZGU7CisgICAgaWYgKGUud2luZG93
c0tleUNvZGUgPT0gVktfU0hJRlQpIHsKKyAgICAgICAgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5w
dXRFdmVudDo6SXNMZWZ0KQorICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBW
S19MU0hJRlQ7CisgICAgICAgIGVsc2UgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6
SXNSaWdodCkKKyAgICAgICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gVktfUlNISUZU
OworICAgIH0gZWxzZSBpZiAoZS53aW5kb3dzS2V5Q29kZSA9PSBWS19DT05UUk9MKSB7CisgICAg
ICAgIGlmIChlLm1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzTGVmdCkKKyAgICAgICAgICAg
IG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gVktfTENPTlRST0w7CisgICAgICAgIGVsc2UgaWYg
KGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNSaWdodCkKKyAgICAgICAgICAgIG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlID0gVktfUkNPTlRST0w7CisgICAgfSBlbHNlIGlmIChlLndpbmRv
d3NLZXlDb2RlID09IFZLX01FTlUpIHsKKyAgICAgICAgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5w
dXRFdmVudDo6SXNMZWZ0KQorICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBW
S19MTUVOVTsKKyAgICAgICAgZWxzZSBpZiAoZS5tb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJ
c1JpZ2h0KQorICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBWS19STUVOVTsK
KyAgICB9CisKIH0KIAogdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpzZXRLZXlU
eXBlKFR5cGUgdHlwZSkKQEAgLTQ0OCw4ICs0NjksMTIgQEAgV2ViS2V5Ym9hcmRFdmVudEJ1aWxk
ZXI6OldlYktleWJvYXJkRXZlbnRCdWlsZGVyKGNvbnN0IEtleWJvYXJkRXZlbnQmIGV2ZW50KQog
ICAgICAgICByZXR1cm47IC8vIFNraXAgYWxsIG90aGVyIGtleWJvYXJkIGV2ZW50cy4KIAogICAg
IG1vZGlmaWVycyA9IGdldFdlYklucHV0TW9kaWZpZXJzKGV2ZW50KTsKLSAgICBpZiAoZXZlbnQu
a2V5TG9jYXRpb24oKSAmIEtleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fTlVNUEFEKQor
ICAgIGlmIChldmVudC5rZXlMb2NhdGlvbigpID09IEtleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9D
QVRJT05fTlVNUEFEKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6SXNLZXlQ
YWQ7CisgICAgZWxzZSBpZiAoZXZlbnQua2V5TG9jYXRpb24oKSA9PSBLZXlib2FyZEV2ZW50OjpE
T01fS0VZX0xPQ0FUSU9OX0xFRlQpCisgICAgICAgIG1vZGlmaWVycyB8PSBXZWJJbnB1dEV2ZW50
OjpJc0xlZnQ7CisgICAgZWxzZSBpZiAoZXZlbnQua2V5TG9jYXRpb24oKSA9PSBLZXlib2FyZEV2
ZW50OjpET01fS0VZX0xPQ0FUSU9OX1JJR0hUKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViSW5w
dXRFdmVudDo6SXNSaWdodDsKIAogICAgIHRpbWVTdGFtcFNlY29uZHMgPSBldmVudC50aW1lU3Rh
bXAoKSAvIG1pbGxpc1BlclNlY29uZDsKICAgICB3aW5kb3dzS2V5Q29kZSA9IGV2ZW50LmtleUNv
ZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2FuZHJvaWQvV2Vi
SW5wdXRFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvYW5kcm9p
ZC9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZmI3MjMyMjNiNzQwYmEwY2IwNWZiNjg1
ZDQ1OWM4MDBjZjViZGUxZC4uOWJjNzBmYWNhOGZlMDY5NDhkYTQ2YWE3MDEyMmI2NDMwYThlMzU3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvYW5kcm9pZC9XZWJJbnB1
dEV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvYW5kcm9p
ZC9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKQEAgLTUwLDcgKzUwLDkgQEAgV2ViS2V5Ym9hcmRF
dmVudCBXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudChXZWJJbnB1dEV2ZW50OjpU
eXBlIHR5cGUsCiAgICAgcmVzdWx0LnR5cGUgPSB0eXBlOwogICAgIHJlc3VsdC5tb2RpZmllcnMg
PSBtb2RpZmllcnM7CiAgICAgcmVzdWx0LnRpbWVTdGFtcFNlY29uZHMgPSB0aW1lU3RhbXBTZWNv
bmRzOwotICAgIHJlc3VsdC53aW5kb3dzS2V5Q29kZSA9IFdlYkNvcmU6OndpbmRvd3NLZXlDb2Rl
Rm9yS2V5RXZlbnQoa2V5Y29kZSk7CisgICAgaW50IHdpbmRvd3NLZXlDb2RlID0gV2ViQ29yZTo6
d2luZG93c0tleUNvZGVGb3JLZXlFdmVudChrZXljb2RlKTsKKyAgICByZXN1bHQud2luZG93c0tl
eUNvZGUgPSBXZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29kZVdpdGhvdXRMb2NhdGlvbih3
aW5kb3dzS2V5Q29kZSk7CisgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBXZWJLZXlib2FyZEV2ZW50
Ojpsb2NhdGlvbk1vZGlmaWVyc0Zyb21XaW5kb3dzS2V5Q29kZSh3aW5kb3dzS2V5Q29kZSk7CiAg
ICAgcmVzdWx0Lm5hdGl2ZUtleUNvZGUgPSBrZXljb2RlOwogICAgIHJlc3VsdC51bm1vZGlmaWVk
VGV4dFswXSA9IHVuaWNvZGVDaGFyYWN0ZXI7CiAgICAgaWYgKHJlc3VsdC53aW5kb3dzS2V5Q29k
ZSA9PSBXZWJDb3JlOjpWS0VZX1JFVFVSTikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvZ3RrL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKaW5kZXggNDNjMjM4YTY5
ZGVlZDI1OTQ3NmVmNDM2OTYzZmFjNzI3NGYwOTA3Ny4uMjA3ZDM0ZjAxNGQxZGJiZTJjODljYzJh
ZjljN2ZhNTJjYjQzMTA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Z3RrL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCkBAIC0zODMsNyArMzgzLDkgQEAgV2Vi
S2V5Ym9hcmRFdmVudCBXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudChjb25zdCBH
ZGtFdmVudEtleSogZXZlbnQpCiAgICAgLy8gVGhlIGtleSBjb2RlIHRlbGxzIHVzIHdoaWNoIHBo
eXNpY2FsIGtleSB3YXMgcHJlc3NlZCAoZm9yIGV4YW1wbGUsIHRoZQogICAgIC8vIEEga2V5IHdl
bnQgZG93biBvciB1cCkuICBJdCBkb2VzIG5vdCBkZXRlcm1pbmUgd2hldGhlciBBIHNob3VsZCBi
ZSBsb3dlcgogICAgIC8vIG9yIHVwcGVyIGNhc2UuICBUaGlzIGlzIHdoYXQgdGV4dCBkb2VzLCB3
aGljaCBzaG91bGQgYmUgdGhlIGtleXZhbC4KLSAgICByZXN1bHQud2luZG93c0tleUNvZGUgPSBn
ZGtFdmVudFRvV2luZG93c0tleUNvZGUoZXZlbnQpOworICAgIGludCB3aW5kb3dzS2V5Q29kZSA9
IGdka0V2ZW50VG9XaW5kb3dzS2V5Q29kZShldmVudCk7CisgICAgcmVzdWx0LndpbmRvd3NLZXlD
b2RlID0gV2ViS2V5Ym9hcmRFdmVudDo6d2luZG93c0tleUNvZGVXaXRob3V0TG9jYXRpb24od2lu
ZG93c0tleUNvZGUpOworICAgIHJlc3VsdC5tb2RpZmllcnMgfD0gV2ViS2V5Ym9hcmRFdmVudDo6
bG9jYXRpb25Nb2RpZmllcnNGcm9tV2luZG93c0tleUNvZGUod2luZG93c0tleUNvZGUpOwogICAg
IHJlc3VsdC5uYXRpdmVLZXlDb2RlID0gZXZlbnQtPmhhcmR3YXJlX2tleWNvZGU7CiAKICAgICBp
ZiAocmVzdWx0LndpbmRvd3NLZXlDb2RlID09IFdlYkNvcmU6OlZLRVlfUkVUVVJOKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5
Lm1tIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5
Lm1tCmluZGV4IGJhYmIxZjZjY2U3OWY0OTc4OGQ3ZmJkZTI1NTMwNjI3ZjEzNDg4YTguLmRiY2Q5
OTM4MThlNjAwNTNkOWQ1OWIzYzU5NTYwZTc5MmZiNWY2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0KQEAgLTYw
Niw3ICs2MDYsOSBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXli
b2FyZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogICAgIGlmICgoW2V2ZW50IHR5cGVdICE9IE5TRmxh
Z3NDaGFuZ2VkKSAmJiBbZXZlbnQgaXNBUmVwZWF0XSkKICAgICAgICAgcmVzdWx0Lm1vZGlmaWVy
cyB8PSBXZWJJbnB1dEV2ZW50OjpJc0F1dG9SZXBlYXQ7CiAKLSAgICByZXN1bHQud2luZG93c0tl
eUNvZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKKyAgICBpbnQgd2luZG93
c0tleUNvZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKKyAgICByZXN1bHQu
d2luZG93c0tleUNvZGUgPSBXZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29kZVdpdGhvdXRM
b2NhdGlvbih3aW5kb3dzS2V5Q29kZSk7CisgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBXZWJLZXli
b2FyZEV2ZW50Ojpsb2NhdGlvbk1vZGlmaWVyc0Zyb21LZXlDb2RlKHdpbmRvd3NLZXlDb2RlKTsK
ICAgICByZXN1bHQubmF0aXZlS2V5Q29kZSA9IFtldmVudCBrZXlDb2RlXTsKIAogICAgIE5TU3Ry
aW5nKiB0ZXh0U3RyID0gdGV4dEZyb21FdmVudChldmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAppbmRleCA5
ZGE0YjRhMjc5OGFhYmNkNWZiODcyYTY1ZDU2ZGY1NWMyMDE2MDA5Li4zZGQ1OGU2YTBmYjk1MzE3
NmQ4YzRjOGRjNzY4YmVhNzQ5MzM3YTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKQEAgLTQyLDEyICs0Miwx
MyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBkZWZhdWx0U2Nyb2xsQ2hhcnNQZXJXaGVl
bERlbHRhID0gMTsKIAogLy8gV2ViS2V5Ym9hcmRFdmVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1zdGF0aWMgYm9vbCBpc0tl
eVBhZChXUEFSQU0gd3BhcmFtLCBMUEFSQU0gbHBhcmFtKQorc3RhdGljIGludCBnZXRMb2NhdGlv
bk1vZGlmaWVyKFdQQVJBTSB3cGFyYW0sIExQQVJBTSBscGFyYW0pCiB7Ci0gICAgYm9vbCBrZXlw
YWQgPSBmYWxzZTsKKyAgICBpbnQgbW9kaWZpZXIgPSAwOwogICAgIHN3aXRjaCAod3BhcmFtKSB7
CiAgICAgY2FzZSBWS19SRVRVUk46Ci0gICAgICAgIGtleXBhZCA9IChscGFyYW0gPj4gMTYpICYg
S0ZfRVhURU5ERUQ7CisgICAgICAgIGlmICgobHBhcmFtID4+IDE2KSAmIEtGX0VYVEVOREVEKQor
ICAgICAgICAgICAgbW9kaWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpJc0tleVBhZDsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBWS19JTlNFUlQ6CiAgICAgY2FzZSBWS19ERUxFVEU6CkBAIC01OSw3
ICs2MCw4IEBAIHN0YXRpYyBib29sIGlzS2V5UGFkKFdQQVJBTSB3cGFyYW0sIExQQVJBTSBscGFy
YW0pCiAgICAgY2FzZSBWS19ET1dOOgogICAgIGNhc2UgVktfTEVGVDoKICAgICBjYXNlIFZLX1JJ
R0hUOgotICAgICAgICBrZXlwYWQgPSAhKChscGFyYW0gPj4gMTYpICYgS0ZfRVhURU5ERUQpOwor
ICAgICAgICBpZiAoISgobHBhcmFtID4+IDE2KSAmIEtGX0VYVEVOREVEKSkKKyAgICAgICAgICAg
IG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQ7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgVktfTlVNTE9DSzoKICAgICBjYXNlIFZLX05VTVBBRDA6CkBAIC03OCwxMiArODAsMzkg
QEAgc3RhdGljIGJvb2wgaXNLZXlQYWQoV1BBUkFNIHdwYXJhbSwgTFBBUkFNIGxwYXJhbSkKICAg
ICBjYXNlIFZLX0FERDoKICAgICBjYXNlIFZLX0RFQ0lNQUw6CiAgICAgY2FzZSBWS19DTEVBUjoK
LSAgICAgICAga2V5cGFkID0gdHJ1ZTsKKyAgICAgICAgbW9kaWZpZXIgPSBXZWJJbnB1dEV2ZW50
OjpJc0tleVBhZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19TSElGVDoKKyAgICAgICAg
aWYgKEdldEtleVN0YXRlKFZLX0xTSElGVCkgJiAweDgwMDApCisgICAgICAgICAgICBtb2RpZmll
ciA9IFdlYklucHV0RXZlbnQ6OklzTGVmdDsKKyAgICAgICAgZWxzZSBpZiAoR2V0S2V5U3RhdGUo
VktfUlNISUZUKSAmIDB4ODAwMCkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRFdmVu
dDo6SXNSaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19DT05UUk9MOgorICAgICAg
ICBpZiAoR2V0S2V5U3RhdGUoVktfTENPTlRST0wpICYgMHg4MDAwKQorICAgICAgICAgICAgbW9k
aWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpJc0xlZnQ7CisgICAgICAgIGVsc2UgaWYgKEdldEtleVN0
YXRlKFZLX1JDT05UUk9MKSAmIDB4ODAwMCkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5w
dXRFdmVudDo6SXNSaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19NRU5VOgorICAg
ICAgICBpZiAoR2V0S2V5U3RhdGUoVktfTE1FTlUpICYgMHg4MDAwKQorICAgICAgICAgICAgbW9k
aWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpJc0xlZnQ7CisgICAgICAgIGVsc2UgaWYgKEdldEtleVN0
YXRlKFZLX1JNRU5VKSAmIDB4ODAwMCkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRF
dmVudDo6SXNSaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19MV0lOOgorICAgICAg
ICBtb2RpZmllciA9IFdlYklucHV0RXZlbnQ6OklzTGVmdDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBWS19SV0lOOgorICAgICAgICBtb2RpZmllciA9IFdlYklucHV0RXZlbnQ6OklzUmlnaHQ7
CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGtleXBhZCA9IGZhbHNlOwog
ICAgIH0KLSAgICByZXR1cm4ga2V5cGFkOworCisgICAgQVNTRVJUKG1vZGlmaWVyID09IDAKKyAg
ICAgICAgICAgfHwgbW9kaWZpZXIgPT0gV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQKKyAgICAgICAg
ICAgfHwgbW9kaWZpZXIgPT0gV2ViSW5wdXRFdmVudDo6SXNMZWZ0CisgICAgICAgICAgIHx8IG1v
ZGlmaWVyID09IFdlYklucHV0RXZlbnQ6OklzUmlnaHQpOworICAgIHJldHVybiBtb2RpZmllcjsK
IH0KIAogLy8gTG9hZHMgdGhlIHN0YXRlIGZvciB0b2dnbGUga2V5cyBpbnRvIHRoZSBldmVudC4K
QEAgLTE1Myw4ICsxODIsOCBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5
OjprZXlib2FyZEV2ZW50KEhXTkQgaHduZCwgVUlOVCBtZXNzYWdlLAogCiAgICAgaWYgKExPV09S
RChscGFyYW0pID4gMSkKICAgICAgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBXZWJJbnB1dEV2ZW50
OjpJc0F1dG9SZXBlYXQ7Ci0gICAgaWYgKGlzS2V5UGFkKHdwYXJhbSwgbHBhcmFtKSkKLSAgICAg
ICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBXZWJJbnB1dEV2ZW50OjpJc0tleVBhZDsKKworICAgIHJl
c3VsdC5tb2RpZmllcnMgfD0gZ2V0TG9jYXRpb25Nb2RpZmllcih3cGFyYW0sIGxwYXJhbSk7CiAK
ICAgICBTZXRUb2dnbGVLZXlTdGF0ZSgmcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJJbnB1dEV2ZW50
Q29udmVyc2lvblRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZjc2ZGM3YzgwMDc3ODAwZTk3OWJmYjU3
NjNlNzVhOGEwOTgyMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1dlYklucHV0RXZlbnRDb252ZXJzaW9uVGVzdC5jcHAKQEAgLTAsMCArMSw3NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYklucHV0RXZlbnRDb252ZXJzaW9uLmgi
CisKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4K
KwordXNpbmcgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OwordXNpbmcgV2ViS2l0OjpXZWJLZXlib2Fy
ZEV2ZW50OwordXNpbmcgV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50QnVpbGRlcjsKKworbmFtZXNw
YWNlIHsKKworUGFzc1JlZlB0cjxXZWJDb3JlOjpLZXlib2FyZEV2ZW50PiBjcmVhdGVLZXlib2Fy
ZEV2ZW50V2l0aExvY2F0aW9uKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OktleUxvY2F0aW9uQ29k
ZSBsb2NhdGlvbikKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6Y3JlYXRl
KCJrZXlkb3duIiwgdHJ1ZSwgdHJ1ZSwgMCwgIiIsIGxvY2F0aW9uLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UpOworfQorCitpbnQgZ2V0TW9kaWZpZXJzRm9yS2V5TG9jYXRpb25D
b2RlKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OktleUxvY2F0aW9uQ29kZSBsb2NhdGlvbikKK3sK
KyAgICBSZWZQdHI8V2ViQ29yZTo6S2V5Ym9hcmRFdmVudD4gZXZlbnQgPSBjcmVhdGVLZXlib2Fy
ZEV2ZW50V2l0aExvY2F0aW9uKGxvY2F0aW9uKTsKKyAgICBXZWJLaXQ6OldlYktleWJvYXJkRXZl
bnRCdWlsZGVyIGNvbnZlcnRlZEV2ZW50KCpldmVudCk7CisgICAgcmV0dXJuIGNvbnZlcnRlZEV2
ZW50Lm1vZGlmaWVyczsKK30KKworVEVTVChXZWJJbnB1dEV2ZW50Q29udmVyc2lvblRlc3QsIFdl
YktleWJvYXJkRXZlbnRCdWlsZGVyKQoreworICAgIC8vIFRlc3Qga2V5IGxvY2F0aW9uIGNvbnZl
cnNpb24uCisgICAgaW50IG1vZGlmaWVycyA9IGdldE1vZGlmaWVyc0ZvcktleUxvY2F0aW9uQ29k
ZShXZWJDb3JlOjpLZXlib2FyZEV2ZW50OjpET01fS0VZX0xPQ0FUSU9OX1NUQU5EQVJEKTsKKyAg
ICBFWFBFQ1RfRkFMU0UobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQgfHwgbW9k
aWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNMZWZ0IHx8IG1vZGlmaWVycyAmIFdlYklucHV0RXZl
bnQ6OklzUmlnaHQpOworCisgICAgbW9kaWZpZXJzID0gZ2V0TW9kaWZpZXJzRm9yS2V5TG9jYXRp
b25Db2RlKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fTEVGVCk7Cisg
ICAgRVhQRUNUX1RSVUUobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNMZWZ0KTsKKyAgICBF
WFBFQ1RfRkFMU0UobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQgfHwgbW9kaWZp
ZXJzICYgV2ViSW5wdXRFdmVudDo6SXNSaWdodCk7CisKKyAgICBtb2RpZmllcnMgPSBnZXRNb2Rp
ZmllcnNGb3JLZXlMb2NhdGlvbkNvZGUoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9M
T0NBVElPTl9SSUdIVCk7CisgICAgRVhQRUNUX1RSVUUobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVu
dDo6SXNSaWdodCk7CisgICAgRVhQRUNUX0ZBTFNFKG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6
OklzS2V5UGFkIHx8IG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzTGVmdCk7CisKKyAgICBt
b2RpZmllcnMgPSBnZXRNb2RpZmllcnNGb3JLZXlMb2NhdGlvbkNvZGUoV2ViQ29yZTo6S2V5Ym9h
cmRFdmVudDo6RE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpOworICAgIEVYUEVDVF9UUlVFKG1vZGlm
aWVycyAmIFdlYklucHV0RXZlbnQ6OklzS2V5UGFkKTsKKyAgICBFWFBFQ1RfRkFMU0UobW9kaWZp
ZXJzICYgV2ViSW5wdXRFdmVudDo6SXNMZWZ0IHx8IG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6
OklzUmlnaHQpOworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162340</attachid>
            <date>2012-09-05 14:43:56 -0700</date>
            <delta_ts>2012-09-06 02:18:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94142-20120905144337.patch</filename>
            <type>text/plain</type>
            <size>19383</size>
            <attacher name="Raymes Khoury">raymes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGYyMzRlN2IxNzgxM2NhMDAxOGViNWZmZGVhNWUxYzNjMTUyZmU0YWQuLjUyODEwN2RiODk3MTJh
NmZiODExN2I4ODU1OGEyODBjMzY3MzlmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTItMDktMDUgIFJheW1lcyBLaG91cnkgIDxyYXltZXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEFkZGVkIG1vZGlmaWVycyB0byBkaXN0aW5ndWlzaCBiZXR3ZWVu
IGxlZnQvcmlnaHQgU2hpZnQvQ3RybC9BbHQgaW4gV2ViSW5wdXRFdmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MTQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSB3ZSBkaXN0aW5n
dWlzaGVkIGJldHdlZW4gbGVmdC9yaWdodCBTaGlmdC9DdHJsL0FsdCBpbgorICAgICAgICBXZWJJ
bnB1dEV2ZW50cyBieSB1c2luZyB0aGUgbG9jYXRpb24tc3BlY2lmaWMgdmlydHVhbCBrZXljb2Rl
cyAoZS5nLgorICAgICAgICBWS19MU0hJRlQgaW5zdGVhZCBvZiBWS19TSElGVC4gSG93ZXZlciwg
dGhlIFdpbmRvd3MgQVBJIGZvciBrZXkgZXZlbnRzCisgICAgICAgIGFsd2F5cyByZXR1cm5zIHRo
ZSBub24tbG9jYXRpb25hbCB2ZXJzaW9uIChlLmcuIFZLX1NISUZUKS4KKyAgICAgICAgRnVydGhl
cm1vcmUsIEtleWJvYXJkRXZlbnQgYWxzbyByZXR1cm5zCisgICAgICAgIG5vbi1sb2NhdGlvbmFs
IGtleWNvZGVzIGFuZCBzZXBhcmF0ZXMgdGhlIGxvY2F0aW9uIGluZm9ybWF0aW9uIHdoaWNoCisg
ICAgICAgIG1hdGNoZXMgdGhlIGJlaGF2aW9yIGRlc2NyaWJlZCBpbiB0aGUgRE9NMworICAgICAg
ICBzcGVjIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWtl
eWJvYXJkZXZlbnRzLiBXZQorICAgICAgICBzaG91bGQgYmUgY29uc2lzdGVudCB3aXRoIHRoaXMg
aW4gb3VyIHJlcHJlc2VudGF0aW9uIG9mIGtleSBldmVudHMuCisgICAgICAgIFRoaXMgcGF0Y2gg
Y2hhbmdlcyBXZWJJbnB1dEV2ZW50cyBzbyB0aGV5IGFsd2F5cyBzdG9yZSB0aGUKKyAgICAgICAg
bm9uLWxvY2F0aW9uYWwga2V5Y29kZSBhbmQgbG9jYXRpb24gaW5mb3JtYXRpb24gaXMgc3RvcmVk
IGluCisgICAgICAgIG1vZGlmaWVycy4gU2luY2UgdGhpcyBvbmx5IGNoYW5nZXMgaW50ZXJuYWwg
cmVwcmVzZW50YXRpb24sIG5vIG5ldworICAgICAgICB0ZXN0cyBhcmUgYWRkZWQuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhbHNvIGVuc3VyZXMgdGhhdCB3aGVuIEtleWJvYXJkRXZlbnRzIGFyZSBj
b252ZXJ0ZWQgYmFjayB0bworICAgICAgICBXZWJJbnB1dEV2ZW50cyBsb2NhdGlvbiBpbmZvcm1h
dGlvbiBpcyBwcmVzZXJ2ZWQgKHdoaWNoIHdhcyBub3QKKyAgICAgICAgaGFwcGVuaW5nIGJlZm9y
ZSkuIFRoaXMgaXMgaW1wb3J0YW50IHNvIHRoYXQga2V5IGxvY2F0aW9uIGluZm9ybWF0aW9uCisg
ICAgICAgIGlzIHBhc3NlZCBvbiB0byBwbHVnaW5zLiBBIHVuaXR0ZXN0IGlzIGFkZGVkIGZvciB0
aGlzLgorCisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogcHVibGljL1dlYklucHV0
RXZlbnQuaDoKKyAgICAgICAgKFdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIHNyYy9XZWJJ
bnB1dEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktl
eWJvYXJkRXZlbnQ6OndpbmRvd3NLZXlDb2RlV2l0aG91dExvY2F0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bG9jYXRpb25Nb2RpZmllcnNGcm9tV2luZG93c0tleUNv
ZGUpOgorICAgICAgICAqIHNyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3JtS2V5Ym9hcmRF
dmVudEJ1aWxkZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50QnVpbGRlcjo6
V2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHNyYy9hbmRyb2lkL1dlYklucHV0
RXZlbnRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFdmVudEZhY3Rvcnk6
OmtleWJvYXJkRXZlbnQpOgorICAgICAgICAqIHNyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3Rvcnku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVu
dCk6CisgICAgICAgICogc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5wdXRFdmVudEZhY3Rvcnk6OmtleWJvYXJkRXZlbnQpOgorICAgICAgICAq
IHNyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpnZXRM
b2NhdGlvbk1vZGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFdmVudEZhY3Rvcnk6
OmtleWJvYXJkRXZlbnQpOgorICAgICAgICAqIHRlc3RzL1dlYklucHV0RXZlbnRDb252ZXJzaW9u
VGVzdC5jcHA6IEFkZGVkLgorCiAyMDEyLTA5LTA0ICBUaWVuLVJlbiBDaGVuICA8dHJjaGVuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFJlbmFtZSBXZWJWaWV3Q2xpZW50Ojpo
YW5kbGVEaXNhbWJpZ3VhdGlvblBvcHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRl
eCA1NGYwZGI4ZTVjMmM1NTRjY2NhN2UxNjA4YTdlNmY3ODg3MTE3N2I3Li40ZjIxZTVhNTBkNDgz
NjM3ZWUyN2MxMTM2Yzg3YjhjNGM0ZTE4NzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cGkKQEAgLTE3NCw2ICsxNzQsNyBAQAogICAgICAgICAgICAgJ3Rlc3RzL1RyZWVTeW5jaHJvbml6
ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViQW5pbWF0aW9uVGVzdC5jcHAnLAog
ICAgICAgICAgICAgJ3Rlc3RzL1dlYkZsb2F0QW5pbWF0aW9uQ3VydmVUZXN0LmNwcCcsCisgICAg
ICAgICAgICAndGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcCcsCiAgICAgICAg
ICAgICAndGVzdHMvV2ViTGF5ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViTGF5
ZXJUcmVlVmlld1Rlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJMYXllclRyZWVWaWV3
VGVzdENvbW1vbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklucHV0RXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0
RXZlbnQuaAppbmRleCBkMWY1MTczZTlmODQ0MmE0ZTBmNDEyNGU2NjI0MjVhMGQ5ODZlN2NhLi5i
OTJhMmE2NGVkZjg5NWViMTY0MjIyMDQ1NWFlM2VjMDZkOGM5MjM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEV2ZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFdmVudC5oCkBAIC0xNTEsNiArMTUxLDEwIEBA
IHB1YmxpYzoKICAgICAgICAgLy8gZXZlbnQgYW5kIGJhY2sgd2lsbCBub3QgcHJlc2VydmUgdGhl
c2UgZmxhZ3MuCiAgICAgICAgIENhcHNMb2NrT24gICAgICAgPSAxIDw8IDksCiAgICAgICAgIE51
bUxvY2tPbiAgICAgICAgPSAxIDw8IDEwLAorCisgICAgICAgIC8vIExlZnQvcmlnaHQgbW9kaWZp
ZXJzIGZvciBrZXlib2FyZCBldmVudHMuCisgICAgICAgIElzTGVmdCAgICAgICAgICAgPSAxIDw8
IDExLAorICAgICAgICBJc1JpZ2h0ICAgICAgICAgID0gMSA8PCAxMiwKICAgICB9OwogCiAgICAg
c3RhdGljIGNvbnN0IGludCBJbnB1dE1vZGlmaWVycyA9IFNoaWZ0S2V5IHwgQ29udHJvbEtleSB8
IEFsdEtleSB8IE1ldGFLZXk7CkBAIC0yMzcsNyArMjQxLDExIEBAIHB1YmxpYzoKICAgICAvLyB8
d2luZG93c0tleUNvZGV8IGlzIHRoZSBXaW5kb3dzIGtleSBjb2RlIGFzc29jaWF0ZWQgd2l0aCB0
aGlzIGtleQogICAgIC8vIGV2ZW50LiAgU29tZXRpbWVzIGl0J3MgZGlyZWN0IGZyb20gdGhlIGV2
ZW50IChpLmUuIG9uIFdpbmRvd3MpLAogICAgIC8vIHNvbWV0aW1lcyBpdCdzIHZpYSBhIG1hcHBp
bmcgZnVuY3Rpb24uICBJZiB5b3Ugd2FudCBhIGxpc3QsIHNlZQotICAgIC8vIFdlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vS2V5Ym9hcmRDb2RlcyogLgorICAgIC8vIFdlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vS2V5Ym9hcmRDb2RlcyogLiBOb3RlIHRoYXQgdGhpcyBzaG91bGQKKyAgICAvLyBB
TFdBWVMgc3RvcmUgdGhlIG5vbi1sb2NhdGlvbmFsIHZlcnNpb24gb2YgYSBrZXljb2RlIGFzIHRo
aXMgaXMKKyAgICAvLyB3aGF0IGlzIHJldHVybmVkIGJ5IHRoZSBXaW5kb3dzIEFQSS4gRm9yIGV4
YW1wbGUsIGl0IHNob3VsZAorICAgIC8vIHN0b3JlIFZLX1NISUZUIGluc3RlYWQgb2YgVktfUlNI
SUZULiBUaGUgbG9jYXRpb24gaW5mb3JtYXRpb24KKyAgICAvLyBzaG91bGQgYmUgc3RvcmVkIGlu
IHxtb2RpZmllcnN8LgogICAgIGludCB3aW5kb3dzS2V5Q29kZTsKIAogICAgIC8vIFRoZSBhY3R1
YWwga2V5IGNvZGUgZ2VuZW5lcmF0ZWQgYnkgdGhlIHBsYXRmb3JtLiAgVGhlIERPTSBzcGVjIHJ1
bnMKQEAgLTI3OSw2ICsyODcsOSBAQCBwdWJsaWM6CiAgICAgLy8gU2V0cyBrZXlJZGVudGlmaWVy
IGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiB3aW5kb3dzS2V5Q29kZS4gIFRoaXMgaXMKICAgICAvLyBo
YW5keSBmb3IgZ2VuZXJhdGluZyBzeW50aGV0aWMga2V5Ym9hcmQgZXZlbnRzLgogICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCBzZXRLZXlJZGVudGlmaWVyRnJvbVdpbmRvd3NLZXlDb2RlKCk7CisKKyAg
ICBzdGF0aWMgaW50IHdpbmRvd3NLZXlDb2RlV2l0aG91dExvY2F0aW9uKGludCBrZXljb2RlKTsK
KyAgICBzdGF0aWMgaW50IGxvY2F0aW9uTW9kaWZpZXJzRnJvbVdpbmRvd3NLZXlDb2RlKGludCBr
ZXljb2RlKTsKIH07CiAKIC8vIFdlYk1vdXNlRXZlbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudC5jcHAKaW5kZXggZDYxZWIyZDMxNzFlN2I3ZDQzOThh
ZGYwOTZkM2IwYmFmNjc2ZmU0NC4uOTYxMjNjNjJlOTA2MTQ0ODlhZTNmMGE0NjVjODdiYjczYTZk
YzVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudC5jcHAK
QEAgLTIwMiw0ICsyMDIsNDEgQEAgdm9pZCBXZWJLZXlib2FyZEV2ZW50OjpzZXRLZXlJZGVudGlm
aWVyRnJvbVdpbmRvd3NLZXlDb2RlKCkKICAgICAgICAgc25wcmludGYoa2V5SWRlbnRpZmllciwg
c2l6ZW9mKGtleUlkZW50aWZpZXIpLCAiVSslMDRYIiwgdG91cHBlcih3aW5kb3dzS2V5Q29kZSkp
OwogfQogCisvLyBzdGF0aWMKK2ludCBXZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29kZVdp
dGhvdXRMb2NhdGlvbihpbnQga2V5Y29kZSkKK3sKKyAgICBzd2l0Y2ggKGtleWNvZGUpIHsKKyAg
ICBjYXNlIFZLX0xDT05UUk9MOgorICAgIGNhc2UgVktfUkNPTlRST0w6CisgICAgICAgIHJldHVy
biBWS19DT05UUk9MOworICAgIGNhc2UgVktfTFNISUZUOgorICAgIGNhc2UgVktfUlNISUZUOgor
ICAgICAgICByZXR1cm4gVktfU0hJRlQ7CisgICAgY2FzZSBWS19MTUVOVToKKyAgICBjYXNlIFZL
X1JNRU5VOgorICAgICAgICByZXR1cm4gVktfTUVOVTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4ga2V5Y29kZTsKKyAgICB9Cit9CisKKy8vIHN0YXRpYworaW50IFdlYktleWJvYXJkRXZl
bnQ6OmxvY2F0aW9uTW9kaWZpZXJzRnJvbVdpbmRvd3NLZXlDb2RlKGludCBrZXljb2RlKQorewor
ICAgIHN3aXRjaCAoa2V5Y29kZSkgeworICAgIGNhc2UgVktfTENPTlRST0w6CisgICAgY2FzZSBW
S19MU0hJRlQ6CisgICAgY2FzZSBWS19MTUVOVToKKyAgICBjYXNlIFZLX0xXSU46CisgICAgICAg
IHJldHVybiBJc0xlZnQ7CisgICAgY2FzZSBWS19SQ09OVFJPTDoKKyAgICBjYXNlIFZLX1JTSElG
VDoKKyAgICBjYXNlIFZLX1JNRU5VOgorICAgIGNhc2UgVktfUldJTjoKKyAgICAgICAgcmV0dXJu
IElzUmlnaHQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCAwMzkxYzI4NWI3ZjhlM2U2Njk1
MTYzOWQzNjVmNThiZDczZThhOTkyLi40MTAwMmI5ZWE3MDU3NTdlMjM1ODJlYmZkMTI5NTM5NGIz
NTZmYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2
ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5w
dXRFdmVudENvbnZlcnNpb24uY3BwCkBAIC0yMjMsNyArMjIzLDYgQEAgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50QnVpbGRlcjo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcihjb25zdCBXZWJLZXli
b2FyZEV2ZW4KICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5nKGUudW5tb2RpZmllZFRleHQp
OwogICAgIG1fa2V5SWRlbnRpZmllciA9IFN0cmluZyhlLmtleUlkZW50aWZpZXIpOwogICAgIG1f
YXV0b1JlcGVhdCA9IChlLm1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzQXV0b1JlcGVhdCk7
Ci0gICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBlLndpbmRvd3NLZXlDb2RlOwogICAgIG1f
bmF0aXZlVmlydHVhbEtleUNvZGUgPSBlLm5hdGl2ZUtleUNvZGU7CiAgICAgbV9pc0tleXBhZCA9
IChlLm1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzS2V5UGFkKTsKICAgICBtX2lzU3lzdGVt
S2V5ID0gZS5pc1N5c3RlbUtleTsKQEAgLTIzNyw2ICsyMzYsMjggQEAgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50QnVpbGRlcjo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcihjb25zdCBXZWJLZXli
b2FyZEV2ZW4KICAgICAgICAgbV9tb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6QWx0S2V5Owog
ICAgIGlmIChlLm1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6Ok1ldGFLZXkpCiAgICAgICAgIG1f
bW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6Ok1ldGFLZXk7CisKKyAgICAvLyBGSVhNRTogUGxh
dGZvcm1LZXlib2FyZEV2ZW50cyBleHBlY3QgYSBsb2NhdGlvbmFsIHZlcnNpb24gb2YgdGhlIGtl
eWNvZGUgKGUuZy4gVktfTFNISUZUCisgICAgLy8gaW5zdGVhZCBvZiBWS19TSElGVCkuIFRoaXMg
c2hvdWxkIGJlIGNoYW5nZWQgc28gdGhlIGxvY2F0aW9uL2tleWNvZGUgYXJlIHN0b3JlZCBzZXBh
cmF0ZWx5LAorICAgIC8vIGFzIGluIG90aGVyIHBsYWNlcyBpbiB0aGUgY29kZS4KKyAgICBtX3dp
bmRvd3NWaXJ0dWFsS2V5Q29kZSA9IGUud2luZG93c0tleUNvZGU7CisgICAgaWYgKGUud2luZG93
c0tleUNvZGUgPT0gVktfU0hJRlQpIHsKKyAgICAgICAgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5w
dXRFdmVudDo6SXNMZWZ0KQorICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBW
S19MU0hJRlQ7CisgICAgICAgIGVsc2UgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6
SXNSaWdodCkKKyAgICAgICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gVktfUlNISUZU
OworICAgIH0gZWxzZSBpZiAoZS53aW5kb3dzS2V5Q29kZSA9PSBWS19DT05UUk9MKSB7CisgICAg
ICAgIGlmIChlLm1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzTGVmdCkKKyAgICAgICAgICAg
IG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gVktfTENPTlRST0w7CisgICAgICAgIGVsc2UgaWYg
KGUubW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNSaWdodCkKKyAgICAgICAgICAgIG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlID0gVktfUkNPTlRST0w7CisgICAgfSBlbHNlIGlmIChlLndpbmRv
d3NLZXlDb2RlID09IFZLX01FTlUpIHsKKyAgICAgICAgaWYgKGUubW9kaWZpZXJzICYgV2ViSW5w
dXRFdmVudDo6SXNMZWZ0KQorICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBW
S19MTUVOVTsKKyAgICAgICAgZWxzZSBpZiAoZS5tb2RpZmllcnMgJiBXZWJJbnB1dEV2ZW50OjpJ
c1JpZ2h0KQorICAgICAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUgPSBWS19STUVOVTsK
KyAgICB9CisKIH0KIAogdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpzZXRLZXlU
eXBlKFR5cGUgdHlwZSkKQEAgLTQ0OCw4ICs0NjksMTIgQEAgV2ViS2V5Ym9hcmRFdmVudEJ1aWxk
ZXI6OldlYktleWJvYXJkRXZlbnRCdWlsZGVyKGNvbnN0IEtleWJvYXJkRXZlbnQmIGV2ZW50KQog
ICAgICAgICByZXR1cm47IC8vIFNraXAgYWxsIG90aGVyIGtleWJvYXJkIGV2ZW50cy4KIAogICAg
IG1vZGlmaWVycyA9IGdldFdlYklucHV0TW9kaWZpZXJzKGV2ZW50KTsKLSAgICBpZiAoZXZlbnQu
a2V5TG9jYXRpb24oKSAmIEtleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fTlVNUEFEKQor
ICAgIGlmIChldmVudC5rZXlMb2NhdGlvbigpID09IEtleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9D
QVRJT05fTlVNUEFEKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6SXNLZXlQ
YWQ7CisgICAgZWxzZSBpZiAoZXZlbnQua2V5TG9jYXRpb24oKSA9PSBLZXlib2FyZEV2ZW50OjpE
T01fS0VZX0xPQ0FUSU9OX0xFRlQpCisgICAgICAgIG1vZGlmaWVycyB8PSBXZWJJbnB1dEV2ZW50
OjpJc0xlZnQ7CisgICAgZWxzZSBpZiAoZXZlbnQua2V5TG9jYXRpb24oKSA9PSBLZXlib2FyZEV2
ZW50OjpET01fS0VZX0xPQ0FUSU9OX1JJR0hUKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViSW5w
dXRFdmVudDo6SXNSaWdodDsKIAogICAgIHRpbWVTdGFtcFNlY29uZHMgPSBldmVudC50aW1lU3Rh
bXAoKSAvIG1pbGxpc1BlclNlY29uZDsKICAgICB3aW5kb3dzS2V5Q29kZSA9IGV2ZW50LmtleUNv
ZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2FuZHJvaWQvV2Vi
SW5wdXRFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvYW5kcm9p
ZC9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZmI3MjMyMjNiNzQwYmEwY2IwNWZiNjg1
ZDQ1OWM4MDBjZjViZGUxZC4uOWJjNzBmYWNhOGZlMDY5NDhkYTQ2YWE3MDEyMmI2NDMwYThlMzU3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvYW5kcm9pZC9XZWJJbnB1
dEV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvYW5kcm9p
ZC9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKQEAgLTUwLDcgKzUwLDkgQEAgV2ViS2V5Ym9hcmRF
dmVudCBXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudChXZWJJbnB1dEV2ZW50OjpU
eXBlIHR5cGUsCiAgICAgcmVzdWx0LnR5cGUgPSB0eXBlOwogICAgIHJlc3VsdC5tb2RpZmllcnMg
PSBtb2RpZmllcnM7CiAgICAgcmVzdWx0LnRpbWVTdGFtcFNlY29uZHMgPSB0aW1lU3RhbXBTZWNv
bmRzOwotICAgIHJlc3VsdC53aW5kb3dzS2V5Q29kZSA9IFdlYkNvcmU6OndpbmRvd3NLZXlDb2Rl
Rm9yS2V5RXZlbnQoa2V5Y29kZSk7CisgICAgaW50IHdpbmRvd3NLZXlDb2RlID0gV2ViQ29yZTo6
d2luZG93c0tleUNvZGVGb3JLZXlFdmVudChrZXljb2RlKTsKKyAgICByZXN1bHQud2luZG93c0tl
eUNvZGUgPSBXZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29kZVdpdGhvdXRMb2NhdGlvbih3
aW5kb3dzS2V5Q29kZSk7CisgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBXZWJLZXlib2FyZEV2ZW50
Ojpsb2NhdGlvbk1vZGlmaWVyc0Zyb21XaW5kb3dzS2V5Q29kZSh3aW5kb3dzS2V5Q29kZSk7CiAg
ICAgcmVzdWx0Lm5hdGl2ZUtleUNvZGUgPSBrZXljb2RlOwogICAgIHJlc3VsdC51bm1vZGlmaWVk
VGV4dFswXSA9IHVuaWNvZGVDaGFyYWN0ZXI7CiAgICAgaWYgKHJlc3VsdC53aW5kb3dzS2V5Q29k
ZSA9PSBXZWJDb3JlOjpWS0VZX1JFVFVSTikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvZ3RrL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL2d0ay9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKaW5kZXggNDNjMjM4YTY5
ZGVlZDI1OTQ3NmVmNDM2OTYzZmFjNzI3NGYwOTA3Ny4uMjA3ZDM0ZjAxNGQxZGJiZTJjODljYzJh
ZjljN2ZhNTJjYjQzMTA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Z3RrL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCkBAIC0zODMsNyArMzgzLDkgQEAgV2Vi
S2V5Ym9hcmRFdmVudCBXZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudChjb25zdCBH
ZGtFdmVudEtleSogZXZlbnQpCiAgICAgLy8gVGhlIGtleSBjb2RlIHRlbGxzIHVzIHdoaWNoIHBo
eXNpY2FsIGtleSB3YXMgcHJlc3NlZCAoZm9yIGV4YW1wbGUsIHRoZQogICAgIC8vIEEga2V5IHdl
bnQgZG93biBvciB1cCkuICBJdCBkb2VzIG5vdCBkZXRlcm1pbmUgd2hldGhlciBBIHNob3VsZCBi
ZSBsb3dlcgogICAgIC8vIG9yIHVwcGVyIGNhc2UuICBUaGlzIGlzIHdoYXQgdGV4dCBkb2VzLCB3
aGljaCBzaG91bGQgYmUgdGhlIGtleXZhbC4KLSAgICByZXN1bHQud2luZG93c0tleUNvZGUgPSBn
ZGtFdmVudFRvV2luZG93c0tleUNvZGUoZXZlbnQpOworICAgIGludCB3aW5kb3dzS2V5Q29kZSA9
IGdka0V2ZW50VG9XaW5kb3dzS2V5Q29kZShldmVudCk7CisgICAgcmVzdWx0LndpbmRvd3NLZXlD
b2RlID0gV2ViS2V5Ym9hcmRFdmVudDo6d2luZG93c0tleUNvZGVXaXRob3V0TG9jYXRpb24od2lu
ZG93c0tleUNvZGUpOworICAgIHJlc3VsdC5tb2RpZmllcnMgfD0gV2ViS2V5Ym9hcmRFdmVudDo6
bG9jYXRpb25Nb2RpZmllcnNGcm9tV2luZG93c0tleUNvZGUod2luZG93c0tleUNvZGUpOwogICAg
IHJlc3VsdC5uYXRpdmVLZXlDb2RlID0gZXZlbnQtPmhhcmR3YXJlX2tleWNvZGU7CiAKICAgICBp
ZiAocmVzdWx0LndpbmRvd3NLZXlDb2RlID09IFdlYkNvcmU6OlZLRVlfUkVUVVJOKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5
Lm1tIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5
Lm1tCmluZGV4IGJhYmIxZjZjY2U3OWY0OTc4OGQ3ZmJkZTI1NTMwNjI3ZjEzNDg4YTguLmRiY2Q5
OTM4MThlNjAwNTNkOWQ1OWIzYzU5NTYwZTc5MmZiNWY2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0KQEAgLTYw
Niw3ICs2MDYsOSBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXli
b2FyZEV2ZW50KE5TRXZlbnQqIGV2ZW50KQogICAgIGlmICgoW2V2ZW50IHR5cGVdICE9IE5TRmxh
Z3NDaGFuZ2VkKSAmJiBbZXZlbnQgaXNBUmVwZWF0XSkKICAgICAgICAgcmVzdWx0Lm1vZGlmaWVy
cyB8PSBXZWJJbnB1dEV2ZW50OjpJc0F1dG9SZXBlYXQ7CiAKLSAgICByZXN1bHQud2luZG93c0tl
eUNvZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKKyAgICBpbnQgd2luZG93
c0tleUNvZGUgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KGV2ZW50KTsKKyAgICByZXN1bHQu
d2luZG93c0tleUNvZGUgPSBXZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29kZVdpdGhvdXRM
b2NhdGlvbih3aW5kb3dzS2V5Q29kZSk7CisgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBXZWJLZXli
b2FyZEV2ZW50Ojpsb2NhdGlvbk1vZGlmaWVyc0Zyb21LZXlDb2RlKHdpbmRvd3NLZXlDb2RlKTsK
ICAgICByZXN1bHQubmF0aXZlS2V5Q29kZSA9IFtldmVudCBrZXlDb2RlXTsKIAogICAgIE5TU3Ry
aW5nKiB0ZXh0U3RyID0gdGV4dEZyb21FdmVudChldmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAppbmRleCA5
ZGE0YjRhMjc5OGFhYmNkNWZiODcyYTY1ZDU2ZGY1NWMyMDE2MDA5Li5hMTc3ZWEyNDQyZjZhZTM3
YmMzMmEwZGVkZjdjYjZjZTJlZjNjOWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKQEAgLTQyLDEyICs0Miwx
OCBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBkZWZhdWx0U2Nyb2xsQ2hhcnNQZXJXaGVl
bERlbHRhID0gMTsKIAogLy8gV2ViS2V5Ym9hcmRFdmVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1zdGF0aWMgYm9vbCBpc0tl
eVBhZChXUEFSQU0gd3BhcmFtLCBMUEFSQU0gbHBhcmFtKQorc3RhdGljIGJvb2wgaXNLZXlEb3du
KFdQQVJBTSB3cGFyYW0pCiB7Ci0gICAgYm9vbCBrZXlwYWQgPSBmYWxzZTsKKyAgICByZXR1cm4g
R2V0S2V5U3RhdGUod3BhcmFtKSAmIDB4ODAwMDsKK30KKworc3RhdGljIGludCBnZXRMb2NhdGlv
bk1vZGlmaWVyKFdQQVJBTSB3cGFyYW0sIExQQVJBTSBscGFyYW0pCit7CisgICAgaW50IG1vZGlm
aWVyID0gMDsKICAgICBzd2l0Y2ggKHdwYXJhbSkgewogICAgIGNhc2UgVktfUkVUVVJOOgotICAg
ICAgICBrZXlwYWQgPSAobHBhcmFtID4+IDE2KSAmIEtGX0VYVEVOREVEOworICAgICAgICBpZiAo
KGxwYXJhbSA+PiAxNikgJiBLRl9FWFRFTkRFRCkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2Vi
SW5wdXRFdmVudDo6SXNLZXlQYWQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVktfSU5TRVJU
OgogICAgIGNhc2UgVktfREVMRVRFOgpAQCAtNTksNyArNjUsOCBAQCBzdGF0aWMgYm9vbCBpc0tl
eVBhZChXUEFSQU0gd3BhcmFtLCBMUEFSQU0gbHBhcmFtKQogICAgIGNhc2UgVktfRE9XTjoKICAg
ICBjYXNlIFZLX0xFRlQ6CiAgICAgY2FzZSBWS19SSUdIVDoKLSAgICAgICAga2V5cGFkID0gISgo
bHBhcmFtID4+IDE2KSAmIEtGX0VYVEVOREVEKTsKKyAgICAgICAgaWYgKCEoKGxwYXJhbSA+PiAx
NikgJiBLRl9FWFRFTkRFRCkpCisgICAgICAgICAgICBtb2RpZmllciA9IFdlYklucHV0RXZlbnQ6
OklzS2V5UGFkOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZLX05VTUxPQ0s6CiAgICAgY2Fz
ZSBWS19OVU1QQUQwOgpAQCAtNzgsMTIgKzg1LDM5IEBAIHN0YXRpYyBib29sIGlzS2V5UGFkKFdQ
QVJBTSB3cGFyYW0sIExQQVJBTSBscGFyYW0pCiAgICAgY2FzZSBWS19BREQ6CiAgICAgY2FzZSBW
S19ERUNJTUFMOgogICAgIGNhc2UgVktfQ0xFQVI6Ci0gICAgICAgIGtleXBhZCA9IHRydWU7Cisg
ICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6SXNLZXlQYWQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgVktfU0hJRlQ6CisgICAgICAgIGlmIChpc0tleURvd24oVktfTFNISUZUKSkK
KyAgICAgICAgICAgIG1vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6SXNMZWZ0OworICAgICAgICBl
bHNlIGlmIChpc0tleURvd24oVktfUlNISUZUKSkKKyAgICAgICAgICAgIG1vZGlmaWVyID0gV2Vi
SW5wdXRFdmVudDo6SXNSaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19DT05UUk9M
OgorICAgICAgICBpZiAoaXNLZXlEb3duKFZLX0xDT05UUk9MKSkKKyAgICAgICAgICAgIG1vZGlm
aWVyID0gV2ViSW5wdXRFdmVudDo6SXNMZWZ0OworICAgICAgICBlbHNlIGlmIChpc0tleURvd24o
VktfUkNPTlRST0wpKQorICAgICAgICAgICAgbW9kaWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpJc1Jp
Z2h0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZLX01FTlU6CisgICAgICAgIGlmIChpc0tl
eURvd24oVktfTE1FTlUpKQorICAgICAgICAgICAgbW9kaWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpJ
c0xlZnQ7CisgICAgICAgIGVsc2UgaWYgKGlzS2V5RG93bihWS19STUVOVSkpCisgICAgICAgICAg
ICBtb2RpZmllciA9IFdlYklucHV0RXZlbnQ6OklzUmlnaHQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgVktfTFdJTjoKKyAgICAgICAgbW9kaWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpJc0xlZnQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVktfUldJTjoKKyAgICAgICAgbW9kaWZpZXIgPSBX
ZWJJbnB1dEV2ZW50OjpJc1JpZ2h0OwogICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBrZXlwYWQgPSBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGtleXBhZDsKKworICAgIEFT
U0VSVCghbW9kaWZpZXIKKyAgICAgICAgICAgfHwgbW9kaWZpZXIgPT0gV2ViSW5wdXRFdmVudDo6
SXNLZXlQYWQKKyAgICAgICAgICAgfHwgbW9kaWZpZXIgPT0gV2ViSW5wdXRFdmVudDo6SXNMZWZ0
CisgICAgICAgICAgIHx8IG1vZGlmaWVyID09IFdlYklucHV0RXZlbnQ6OklzUmlnaHQpOworICAg
IHJldHVybiBtb2RpZmllcjsKIH0KIAogLy8gTG9hZHMgdGhlIHN0YXRlIGZvciB0b2dnbGUga2V5
cyBpbnRvIHRoZSBldmVudC4KQEAgLTE1Myw4ICsxODcsOCBAQCBXZWJLZXlib2FyZEV2ZW50IFdl
YklucHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KEhXTkQgaHduZCwgVUlOVCBtZXNzYWdl
LAogCiAgICAgaWYgKExPV09SRChscGFyYW0pID4gMSkKICAgICAgICAgcmVzdWx0Lm1vZGlmaWVy
cyB8PSBXZWJJbnB1dEV2ZW50OjpJc0F1dG9SZXBlYXQ7Ci0gICAgaWYgKGlzS2V5UGFkKHdwYXJh
bSwgbHBhcmFtKSkKLSAgICAgICAgcmVzdWx0Lm1vZGlmaWVycyB8PSBXZWJJbnB1dEV2ZW50OjpJ
c0tleVBhZDsKKworICAgIHJlc3VsdC5tb2RpZmllcnMgfD0gZ2V0TG9jYXRpb25Nb2RpZmllcih3
cGFyYW0sIGxwYXJhbSk7CiAKICAgICBTZXRUb2dnbGVLZXlTdGF0ZSgmcmVzdWx0KTsKICAgICBy
ZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9X
ZWJJbnB1dEV2ZW50Q29udmVyc2lvblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvblRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZjc2ZGM3
YzgwMDc3ODAwZTk3OWJmYjU3NjNlNzVhOGEwOTgyMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYklucHV0RXZlbnRDb252ZXJzaW9uVGVzdC5jcHAK
QEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldlYklucHV0
RXZlbnRDb252ZXJzaW9uLmgiCisKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVk
ZSA8Z3Rlc3QvZ3Rlc3QuaD4KKwordXNpbmcgV2ViS2l0OjpXZWJJbnB1dEV2ZW50OwordXNpbmcg
V2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OwordXNpbmcgV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
QnVpbGRlcjsKKworbmFtZXNwYWNlIHsKKworUGFzc1JlZlB0cjxXZWJDb3JlOjpLZXlib2FyZEV2
ZW50PiBjcmVhdGVLZXlib2FyZEV2ZW50V2l0aExvY2F0aW9uKFdlYkNvcmU6OktleWJvYXJkRXZl
bnQ6OktleUxvY2F0aW9uQ29kZSBsb2NhdGlvbikKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6S2V5
Ym9hcmRFdmVudDo6Y3JlYXRlKCJrZXlkb3duIiwgdHJ1ZSwgdHJ1ZSwgMCwgIiIsIGxvY2F0aW9u
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworfQorCitpbnQgZ2V0TW9kaWZp
ZXJzRm9yS2V5TG9jYXRpb25Db2RlKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OktleUxvY2F0aW9u
Q29kZSBsb2NhdGlvbikKK3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6S2V5Ym9hcmRFdmVudD4gZXZl
bnQgPSBjcmVhdGVLZXlib2FyZEV2ZW50V2l0aExvY2F0aW9uKGxvY2F0aW9uKTsKKyAgICBXZWJL
aXQ6OldlYktleWJvYXJkRXZlbnRCdWlsZGVyIGNvbnZlcnRlZEV2ZW50KCpldmVudCk7CisgICAg
cmV0dXJuIGNvbnZlcnRlZEV2ZW50Lm1vZGlmaWVyczsKK30KKworVEVTVChXZWJJbnB1dEV2ZW50
Q29udmVyc2lvblRlc3QsIFdlYktleWJvYXJkRXZlbnRCdWlsZGVyKQoreworICAgIC8vIFRlc3Qg
a2V5IGxvY2F0aW9uIGNvbnZlcnNpb24uCisgICAgaW50IG1vZGlmaWVycyA9IGdldE1vZGlmaWVy
c0ZvcktleUxvY2F0aW9uQ29kZShXZWJDb3JlOjpLZXlib2FyZEV2ZW50OjpET01fS0VZX0xPQ0FU
SU9OX1NUQU5EQVJEKTsKKyAgICBFWFBFQ1RfRkFMU0UobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVu
dDo6SXNLZXlQYWQgfHwgbW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNMZWZ0IHx8IG1vZGlm
aWVycyAmIFdlYklucHV0RXZlbnQ6OklzUmlnaHQpOworCisgICAgbW9kaWZpZXJzID0gZ2V0TW9k
aWZpZXJzRm9yS2V5TG9jYXRpb25Db2RlKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OkRPTV9LRVlf
TE9DQVRJT05fTEVGVCk7CisgICAgRVhQRUNUX1RSVUUobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVu
dDo6SXNMZWZ0KTsKKyAgICBFWFBFQ1RfRkFMU0UobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6
SXNLZXlQYWQgfHwgbW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNSaWdodCk7CisKKyAgICBt
b2RpZmllcnMgPSBnZXRNb2RpZmllcnNGb3JLZXlMb2NhdGlvbkNvZGUoV2ViQ29yZTo6S2V5Ym9h
cmRFdmVudDo6RE9NX0tFWV9MT0NBVElPTl9SSUdIVCk7CisgICAgRVhQRUNUX1RSVUUobW9kaWZp
ZXJzICYgV2ViSW5wdXRFdmVudDo6SXNSaWdodCk7CisgICAgRVhQRUNUX0ZBTFNFKG1vZGlmaWVy
cyAmIFdlYklucHV0RXZlbnQ6OklzS2V5UGFkIHx8IG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6
OklzTGVmdCk7CisKKyAgICBtb2RpZmllcnMgPSBnZXRNb2RpZmllcnNGb3JLZXlMb2NhdGlvbkNv
ZGUoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpOworICAg
IEVYUEVDVF9UUlVFKG1vZGlmaWVycyAmIFdlYklucHV0RXZlbnQ6OklzS2V5UGFkKTsKKyAgICBF
WFBFQ1RfRkFMU0UobW9kaWZpZXJzICYgV2ViSW5wdXRFdmVudDo6SXNMZWZ0IHx8IG1vZGlmaWVy
cyAmIFdlYklucHV0RXZlbnQ6OklzUmlnaHQpOworfQorCit9IC8vIGFub255bW91cyBuYW1lc3Bh
Y2UK
</data>

          </attachment>
      

    </bug>

</bugzilla>