<?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>100632</bug_id>
          
          <creation_ts>2012-10-28 23:49:48 -0700</creation_ts>
          <short_desc>Make RenderLayerBacking get the timingFunction of the correct animation.</short_desc>
          <delta_ts>2014-04-17 17:45:22 -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>Layout and Rendering</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>bunhere</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>753088</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-28 23:49:48 -0700</bug_when>
    <thetext>When an element has multiple animations that have different timingFunctions,
the progress of each animation should be calculated using its respective
timingFunction. But at this point, the timingFunction of the first animation is
only used in RenderLayerBacking::startAnimation(), regardless of how many
animations the element has.

getAnimationFromStyleByName() was introduced in r89462 so that the
timingFunction of the correct animation searched by its name will be used. This
patch moves the function to KeyframeValue::timingFunction() so that
RenderLayerBacking reuses this method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753090</commentid>
    <comment_count>1</comment_count>
      <attachid>171163</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-28 23:57:39 -0700</bug_when>
    <thetext>Created attachment 171163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753189</commentid>
    <comment_count>2</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-29 02:30:17 -0700</bug_when>
    <thetext>I think this bug follow up Bug 60303.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753494</commentid>
    <comment_count>3</comment_count>
      <attachid>171163</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-29 09:09:35 -0700</bug_when>
    <thetext>Comment on attachment 171163
Patch

The RenderLayerBacking change isn&apos;t tested by the test; a pixel test would be required for that.

Do we have sufficient test coverage with timing functions inside keyframes to be confident that you&apos;re not breaking those?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753787</commentid>
    <comment_count>4</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-29 15:01:30 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 171163 [details])
Thanks for review!

&gt; The RenderLayerBacking change isn&apos;t tested by the test; a pixel test would be required for that.

Is it because expectedValues can not reflect the progress of animations by GraphicsLayer? Could you explain how we make a pixel test on animations?

 
&gt; Do we have sufficient test coverage with timing functions inside keyframes to be confident that you&apos;re not breaking those?

I think we do not have sufficient test coverage with timing functions inside keyframes. I can make a test like animations/keyframe-timing-functions.html for the coverage. However, I have no idea how we perform a pixel test. I want your advice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753793</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-29 15:06:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 171163 [details] [details])
&gt; Thanks for review!
&gt; 
&gt; &gt; The RenderLayerBacking change isn&apos;t tested by the test; a pixel test would be required for that.
&gt; 
&gt; Is it because expectedValues can not reflect the progress of animations by GraphicsLayer? Could you explain how we make a pixel test on animations?

Right, expected values are just computed at the RenderStyle/AnimationController level. GraphicsLayer animation can only be tested via pixel tests.

&gt; &gt; Do we have sufficient test coverage with timing functions inside keyframes to be confident that you&apos;re not breaking those?
&gt; 
&gt; I think we do not have sufficient test coverage with timing functions inside keyframes. I can make a test like animations/keyframe-timing-functions.html for the coverage. However, I have no idea how we perform a pixel test. I want your advice.

runAnimationTest() has a param to do a pixel test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753799</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-10-29 15:17:43 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; (From update of attachment 171163 [details] [details] [details])
&gt; Right, expected values are just computed at the RenderStyle/AnimationController level. GraphicsLayer animation can only be tested via pixel tests.
&gt; runAnimationTest() has a param to do a pixel test.

Thanks, I&apos;ll try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976930</commentid>
    <comment_count>7</comment_count>
      <attachid>171163</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-05 11:08:47 -0800</bug_when>
    <thetext>Comment on attachment 171163
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001328</commentid>
    <comment_count>8</comment_count>
      <attachid>171163</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-16 14:15:54 -0700</bug_when>
    <thetext>Comment on attachment 171163
Patch

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

There looks like a logic error/dead code in your implementation of timingFunction. Please fix! :-)

&gt; Source/WebCore/rendering/style/KeyframeList.cpp:38
&gt; +            return keyframeStyle-&gt;animations()-&gt;animation(i) ? keyframeStyle-&gt;animations()-&gt;animation(i)-&gt;timingFunction() : 0;

This looks wrong. We would blow up here if !keyframeStyle-&gt;animations()-&gt;animation(i), so either this test isn&apos;t necessary, or we need to be checking before we look at the name. Given that the original code didn&apos;t do this, I think we can just omit the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001354</commentid>
    <comment_count>9</comment_count>
      <attachid>229485</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-16 15:06:57 -0700</bug_when>
    <thetext>Created attachment 229485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001355</commentid>
    <comment_count>10</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-16 15:08:34 -0700</bug_when>
    <thetext>Updated ~2 year old patch so it can be reviewed/applied now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001357</commentid>
    <comment_count>11</comment_count>
      <attachid>229485</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-16 15:17:35 -0700</bug_when>
    <thetext>Comment on attachment 229485
Patch

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

&gt; Source/WebCore/rendering/style/KeyframeList.cpp:30
&gt; +const PassRefPtr&lt;TimingFunction&gt; KeyframeValue::timingFunction(const AtomicString&amp; name) const

This should return a raw cost TimingFunction*; it&apos;s not transferring ownership.

Also the function should be timingFunctionForAnimation().

&gt; Source/WebCore/rendering/style/KeyframeList.cpp:38
&gt; +        if (name == keyframeStyle-&gt;animations()-&gt;animation(i).name())
&gt; +            return keyframeStyle-&gt;animations()-&gt;animation(i).timingFunction();

Cache keyframeStyle-&gt;animations()-&gt;animation(i) in a variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001431</commentid>
    <comment_count>12</comment_count>
      <attachid>229485</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-16 17:47:39 -0700</bug_when>
    <thetext>Comment on attachment 229485
Patch

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

&gt;&gt; Source/WebCore/rendering/style/KeyframeList.cpp:30
&gt;&gt; +const PassRefPtr&lt;TimingFunction&gt; KeyframeValue::timingFunction(const AtomicString&amp; name) const
&gt; 
&gt; This should return a raw cost TimingFunction*; it&apos;s not transferring ownership.
&gt; 
&gt; Also the function should be timingFunctionForAnimation().

Although the original helper function in KeyFrameAnimation.cpp only returned a bare pointer, several of the places in RenderLayerBacking expect to consume a RefPtr. I&apos;d like to return the PassRefPtr so we keep a proper retain count across the various places using the timing function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001436</commentid>
    <comment_count>13</comment_count>
      <attachid>229509</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-16 17:56:00 -0700</bug_when>
    <thetext>Created attachment 229509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001461</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-16 19:51:30 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Although the original helper function in KeyFrameAnimation.cpp only returned a bare pointer, several of the places in RenderLayerBacking expect to consume a RefPtr. I&apos;d like to return the PassRefPtr so we keep a proper retain count across the various places using the timing function.

But PassRefPtr implies transfer of ownership. Returning a raw pointer is appropriate if the caller is just going to take another reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001471</commentid>
    <comment_count>15</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-16 20:01:09 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; Although the original helper function in KeyFrameAnimation.cpp only returned a bare pointer, several of the places in RenderLayerBacking expect to consume a RefPtr. I&apos;d like to return the PassRefPtr so we keep a proper retain count across the various places using the timing function.
&gt; 
&gt; But PassRefPtr implies transfer of ownership. Returning a raw pointer is appropriate if the caller is just going to take another reference.

I always thought of it as expressing the intention of the receiver to &quot;hold a reference&quot; on the object until it is finished being used.

I&apos;m happy using bare pointers, but consider the implementation of GraphicLayer.h. The AnimationValue constructor wants to be given a PassRefPtr. If I just call adoptRef on the passed pointer, won&apos;t it just destroy that function object once the AnimationValue leaves scope?

Or are you suggesting we modify GraphicsLayer to only hold a bare pointer to the timing function?

Or should I be cloning the function pointer somehow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001474</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-16 20:22:08 -0700</bug_when>
    <thetext>Let&apos;s chat about this tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001693</commentid>
    <comment_count>17</comment_count>
      <attachid>229573</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-17 14:05:57 -0700</bug_when>
    <thetext>Created attachment 229573
Includes Xcode settings. Whoops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001701</commentid>
    <comment_count>18</comment_count>
      <attachid>229573</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-17 14:19:43 -0700</bug_when>
    <thetext>Comment on attachment 229573
Includes Xcode settings. Whoops!

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

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:93
&gt; -    RefPtr&lt;TimingFunction&gt; m_timingFunction;
&gt; +    const TimingFunction* m_timingFunction;

I think this still needs to be a RefPtr. We have no guarantee that the AnimationValue won&apos;t outlive whoever holds onto the TimingFunction*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001720</commentid>
    <comment_count>19</comment_count>
      <attachid>229582</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-17 15:26:33 -0700</bug_when>
    <thetext>Created attachment 229582
Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001723</commentid>
    <comment_count>20</comment_count>
      <attachid>229583</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-17 15:28:52 -0700</bug_when>
    <thetext>Created attachment 229583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001770</commentid>
    <comment_count>21</comment_count>
      <attachid>229600</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-17 17:31:55 -0700</bug_when>
    <thetext>Created attachment 229600
Add build fix for EFL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001776</commentid>
    <comment_count>22</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-17 17:45:22 -0700</bug_when>
    <thetext>Committed r167472: &lt;http://trac.webkit.org/changeset/167472&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171163</attachid>
            <date>2012-10-28 23:57:39 -0700</date>
            <delta_ts>2014-04-16 15:06:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100632-20121029155535.patch</filename>
            <type>text/plain</type>
            <size>10030</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzdmOWM0ZGVkMDJlNjkx
NWZkODZkOTE4MGM1NjdjN2EzYWE0OGM1Yi4uNWI0NzBiOGNjYjM3YmQ2MDllZDZkYzljMjdlNDFl
NzIyZDA0Zjc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEyLTEwLTI4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIE1ha2UgUmVu
ZGVyTGF5ZXJCYWNraW5nIGdldCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGNvcnJlY3QgYW5p
bWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwNjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2hlbiBhbiBlbGVtZW50IGhhcyBtdWx0aXBsZSBhbmltYXRpb25zIHRoYXQgaGF2ZSBkaWZmZXJl
bnQgdGltaW5nRnVuY3Rpb25zLAorICAgICAgICB0aGUgcHJvZ3Jlc3Mgb2YgZWFjaCBhbmltYXRp
b24gc2hvdWxkIGJlIGNhbGN1bGF0ZWQgdXNpbmcgaXRzIHJlc3BlY3RpdmUKKyAgICAgICAgdGlt
aW5nRnVuY3Rpb24uIEJ1dCBhdCB0aGlzIHBvaW50LCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhl
IGZpcnN0IGFuaW1hdGlvbiBpcworICAgICAgICBvbmx5IHVzZWQgaW4gUmVuZGVyTGF5ZXJCYWNr
aW5nOjpzdGFydEFuaW1hdGlvbigpLCByZWdhcmRsZXNzIG9mIGhvdyBtYW55CisgICAgICAgIGFu
aW1hdGlvbnMgdGhlIGVsZW1lbnQgaGFzLgorCisgICAgICAgIGdldEFuaW1hdGlvbkZyb21TdHls
ZUJ5TmFtZSgpIHdhcyBpbnRyb2R1Y2VkIGluIHI4OTQ2MiBzbyB0aGF0IHRoZQorICAgICAgICB0
aW1pbmdGdW5jdGlvbiBvZiB0aGUgY29ycmVjdCBhbmltYXRpb24gc2VhcmNoZWQgYnkgaXRzIG5h
bWUgd291bGQgYmUKKyAgICAgICAgdXNlZC4gVGhpcyBwYXRjaCBtb3ZlcyB0aGUgZnVuY3Rpb24g
dG8gS2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24oKQorICAgICAgICBzbyB0aGF0IFJlbmRl
ckxheWVyQmFja2luZyByZXVzZXMgdGhpcyBtZXRob2QuCisKKyAgICAgICAgVGVzdDogYW5pbWF0
aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCisK
KyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6ZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclBy
b3BlcnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChLZXlmcmFtZVZhbHVlKToKKworMjAxMi0xMC0yOCAgSHVhbmcgRG9uZ3N1
bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBbVGV4TWFwXSBNYWtlIEdy
YXBoaWNzTGF5ZXJBbmltYXRpb24gY2hvb3NlIGEgcHJvcGVyIHRpbWluZyBmdW5jdGlvbi4KICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDYyMwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5j
cHAKaW5kZXggZGEyOTE1ZDUyOTIzMTMxODYyMDAxYTJjMTY2ZjRjOThiZjZjYTdlZi4uYmQ2YWYz
NWYwYjA3NTY4YmNhMmY1NWY4NjIyMjVjYTZkYzZhNTc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcApAQCAtNjgsMTkgKzY4
LDYgQEAgS2V5ZnJhbWVBbmltYXRpb246On5LZXlmcmFtZUFuaW1hdGlvbigpCiAgICAgICAgIGVu
ZEFuaW1hdGlvbigpOwogfQogCi1zdGF0aWMgY29uc3QgQW5pbWF0aW9uKiBnZXRBbmltYXRpb25G
cm9tU3R5bGVCeU5hbWUoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUpCi17Ci0gICAgaWYgKCFzdHlsZS0+YW5pbWF0aW9ucygpKQotICAgICAgICByZXR1
cm4gMDsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3R5bGUtPmFuaW1hdGlvbnMoKS0+
c2l6ZSgpOyBpKyspIHsKLSAgICAgICAgaWYgKG5hbWUgPT0gc3R5bGUtPmFuaW1hdGlvbnMoKS0+
YW5pbWF0aW9uKGkpLT5uYW1lKCkpCi0gICAgICAgICAgICByZXR1cm4gc3R5bGUtPmFuaW1hdGlv
bnMoKS0+YW5pbWF0aW9uKGkpOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCiB2b2lkIEtl
eWZyYW1lQW5pbWF0aW9uOjpmZXRjaEludGVydmFsRW5kcG9pbnRzRm9yUHJvcGVydHkoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSwgY29uc3QgUmVuZGVyU3R5bGUqJiBmcm9tU3R5bGUsIGNvbnN0IFJl
bmRlclN0eWxlKiYgdG9TdHlsZSwgZG91YmxlJiBwcm9nKSBjb25zdAogewogICAgIC8vIEZpbmQg
dGhlIGZpcnN0IGtleQpAQCAtMTMzLDkgKzEyMCw3IEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246
OmZldGNoSW50ZXJ2YWxFbmRwb2ludHNGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
CiAgICAgb2Zmc2V0ID0gcHJldktleWZyYW1lLmtleSgpOwogICAgIHNjYWxlID0gMS4wIC8gKG5l
eHRLZXlmcmFtZS5rZXkoKSAtIHByZXZLZXlmcmFtZS5rZXkoKSk7CiAKLSAgICBjb25zdCBUaW1p
bmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSAwOwotICAgIGlmIChjb25zdCBBbmltYXRpb24q
IG1hdGNoZWRBbmltYXRpb24gPSBnZXRBbmltYXRpb25Gcm9tU3R5bGVCeU5hbWUoZnJvbVN0eWxl
LCBuYW1lKCkpKQotICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IG1hdGNoZWRBbmltYXRpb24tPnRp
bWluZ0Z1bmN0aW9uKCkuZ2V0KCk7CisgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1
bmN0aW9uID0gcHJldktleWZyYW1lLnRpbWluZ0Z1bmN0aW9uKG5hbWUoKSkuZ2V0KCk7CiAKICAg
ICBwcm9nID0gcHJvZ3Jlc3Moc2NhbGUsIG9mZnNldCwgdGltaW5nRnVuY3Rpb24pOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBm
YWI4MDkyZTI1NDJjODJkZDdiNDEwMzZmMWY4MzJkMDQ3Mjk4MTExLi4yNGYwZDQ0MDMyZTg5MjY0
YTc0MDc0M2I1MWNmODYwODg3MmMyMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTY0Miw4ICsxNjQyLDcgQEAgYm9vbCBSZW5k
ZXJMYXllckJhY2tpbmc6OnN0YXJ0QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBjb25zdCBB
bmltYXRpb24qIGFuaW0KICAgICAgICAgaWYgKCFrZXlmcmFtZVN0eWxlKQogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICAKLSAgICAgICAgLy8gR2V0IHRpbWluZyBmdW5jdGlvbi4K
LSAgICAgICAgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0ZiA9IGtleWZyYW1lU3R5bGUtPmhhc0Fu
aW1hdGlvbnMoKSA/ICgqa2V5ZnJhbWVTdHlsZS0+YW5pbWF0aW9ucygpKS5hbmltYXRpb24oMCkt
PnRpbWluZ0Z1bmN0aW9uKCkgOiAwOworICAgICAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRm
ID0gY3VycmVudEtleWZyYW1lLnRpbWluZ0Z1bmN0aW9uKGtleWZyYW1lcy5hbmltYXRpb25OYW1l
KCkpOwogICAgICAgICAKICAgICAgICAgYm9vbCBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUgPSBrZXkg
PT0gMCB8fCBrZXkgPT0gMTsKICAgICAgICAgaWYgKChoYXNUcmFuc2Zvcm0gJiYgaXNGaXJzdE9y
TGFzdEtleWZyYW1lKSB8fCBjdXJyZW50S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9w
ZXJ0eVdlYmtpdFRyYW5zZm9ybSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9LZXlmcmFtZUxpc3QuY3BwCmluZGV4IGExMjdiNDY4YjkzNDJlOGU0ODRiODcyYmQxZmVmMzdi
YjBlZjY4NzUuLmYwZGU1YzM0MzA4ZjJkZDNiNzMwMzQwODJmODNkMmViZDVkMDgyOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCkBAIC0y
MSwxMCArMjEsMjYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIktleWZyYW1l
TGlzdC5oIgorCisjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY29uc3QgUGFzc1JlZlB0cjxUaW1pbmdGdW5j
dGlvbj4gS2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24oY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKSBjb25zdAoreworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBrZXlmcmFtZVN0eWxlID0gc3R5
bGUoKTsKKyAgICBpZiAoIWtleWZyYW1lU3R5bGUgfHwgIWtleWZyYW1lU3R5bGUtPmFuaW1hdGlv
bnMoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtl
eWZyYW1lU3R5bGUtPmFuaW1hdGlvbnMoKS0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKG5h
bWUgPT0ga2V5ZnJhbWVTdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSktPm5hbWUoKSkK
KyAgICAgICAgICAgIHJldHVybiBrZXlmcmFtZVN0eWxlLT5hbmltYXRpb25zKCktPmFuaW1hdGlv
bihpKSA/IGtleWZyYW1lU3R5bGUtPmFuaW1hdGlvbnMoKS0+YW5pbWF0aW9uKGkpLT50aW1pbmdG
dW5jdGlvbigpIDogMDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogS2V5ZnJhbWVMaXN0
Ojp+S2V5ZnJhbWVMaXN0KCkKIHsKICAgICBjbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oCmluZGV4IDYxOTNmYTY3ZGJiNmNlYjJiNmViMzVm
Y2RiOTI0OWFkZmYyNGE3YmQuLmU1OThlMjZkNDFjY2IyNzE5YzBmYjFjYzgwNzk3ZWEwZGVkZjA5
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmgK
QEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJPYmpl
Y3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsKK2NsYXNzIFRpbWluZ0Z1bmN0aW9uOwogCiBjbGFzcyBL
ZXlmcmFtZVZhbHVlIHsKIHB1YmxpYzoKQEAgLTU1LDYgKzU2LDggQEAgcHVibGljOgogICAgIGNv
bnN0IFJlbmRlclN0eWxlKiBzdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IH0K
ICAgICB2b2lkIHNldFN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlKSB7IG1fc3R5
bGUgPSBzdHlsZTsgfQogCisgICAgY29uc3QgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGlt
aW5nRnVuY3Rpb24oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdDsKKwogcHJpdmF0ZToK
ICAgICBmbG9hdCBtX2tleTsKICAgICBIYXNoU2V0PENTU1Byb3BlcnR5SUQ+IG1fcHJvcGVydGll
czsgLy8gVGhlIHByb3BlcnRpZXMgc3BlY2lmaWVkIGluIHRoaXMga2V5ZnJhbWUuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MzYyOTk2NWE3NDQzOWU2ZTI1YzY2MGUyM2FiNjc2ZTE4MDMwYjY3NS4uYjZjNGJhOGI0NzFjN2Fj
NDM3Zjc0MWU0N2FjMmUyM2EwNGYyYzFmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEw
LTI4ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAg
IE1ha2UgUmVuZGVyTGF5ZXJCYWNraW5nIGdldCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGNv
cnJlY3QgYW5pbWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAwNjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiBhbiBlbGVtZW50IG9uIGEgY29tcG9zaXRpbmcgbGF5ZXIgaGFzIG11bHRp
cGxlIGFuaW1hdGlvbnMgdGhhdCBoYXZlCisgICAgICAgIGRpZmZlcmVudCB0aW1pbmdGdW5jdGlv
bnMsIHRoZSBwcm9ncmVzcyBvZiBlYWNoIGFuaW1hdGlvbiBzaG91bGQgYmUKKyAgICAgICAgY2Fs
Y3VsYXRlZCB1c2luZyBpdHMgcmVzcGVjdGl2ZSB0aW1pbmdGdW5jdGlvbiBpbiBBY2NlbGVyYXRl
ZAorICAgICAgICBDb21wb3NpdGluZy4KKworICAgICAgICAqIGFuaW1hdGlvbnMva2V5ZnJhbWUt
bXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBhbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMt
dHJhbnNmb3JtLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTI4ICBLdW5paGlrbyBTYWthbW90byAg
PGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2Via2l0IGFkZHMgYSBib3VuZGFy
eSB0byB0aGUgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluIFBPU1QgaGVhZGVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWluZy1mdW5jdGlv
bnMtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJh
bWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFkZWFhNGY2ZTFmZGU4OGEyMTRhODA3M2ZjYTkwZmQ3MWM4MjhkN2IKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWlu
Zy1mdW5jdGlvbnMtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1BBU1Mg
LSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAwLjVzIHNh
dyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsNTAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zv
cm0iIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDFzIHNhdyBzb21ldGhpbmcgY2xvc2Ug
dG86IDEsMCwwLDEsMTAwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3Ig
ImJveCIgZWxlbWVudCBhdCAxLjVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTUw
LDAKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41cyBz
YXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxCitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAi
Ym94IiBlbGVtZW50IGF0IDAuOXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMQorUEFTUyAtICJv
cGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAxLjVzIHNhdyBzb21ldGhpbmcg
Y2xvc2UgdG86IDAuNQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZy
YW1lLW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNmb3JtLmh0bWwgYi9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNmb3Jt
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjRlM2I3Y2RhMDhmMmJmOTUzMThlODU3M2NjMTE2YWY3ZjBhNzFl
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVs
dGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0uaHRtbApAQCAtMCwwICsxLDQ0IEBACis8
aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgI2JveCB7CisgICAgICAgICAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAg
ICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246Cisg
ICAgICAgICAgICAgICAgaG9yaXpvbnRhbCAycyBsaW5lYXIgMSBhbHRlcm5hdGUsCisgICAgICAg
ICAgICAgICAgZmFkZSAycyBzdGVwcygyKSAxIGFsdGVybmF0ZTsKKyAgICAgICAgfQorCisgICAg
ICAgIEAtd2Via2l0LWtleWZyYW1lcyBob3Jpem9udGFsIHsKKyAgICAgICAgICAgIGZyb20geyAt
d2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOyB9CisgICAgICAgICAgICB0byAgIHsg
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwcHgpOyB9CisgICAgICAgIH0KKworICAg
ICAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmFkZSB7CisgICAgICAgICAgICBmcm9tIHsgb3BhY2l0
eTogMS4wOyB9CisgICAgICAgICAgICB0byB7IG9wYWNpdHk6IDAuMDsgfQorICAgICAgICB9Cisg
ICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhl
bHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+Cisg
ICAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAgIC8vIFthbmltYXRpb24t
bmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFu
Y2VdCisgICAgICAgICAgWyJob3Jpem9udGFsIiwgMC41LCAiYm94IiwgIndlYmtpdFRyYW5zZm9y
bSIsIFsxLDAsMCwxLCA1MCwwXSwgMjBdLAorICAgICAgICAgIFsiaG9yaXpvbnRhbCIsIDEuMCwg
ImJveCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwxMDAsMF0sIDIwXSwKKyAgICAgICAg
ICBbImhvcml6b250YWwiLCAxLjUsICJib3giLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEs
MTUwLDBdLCAyMF0sCisgICAgICAgICAgWyJmYWRlIiwgMC41LCAiYm94IiwgIm9wYWNpdHkiLCAx
LjAsIDAuMTVdLAorICAgICAgICAgIFsiZmFkZSIsIDAuOSwgImJveCIsICJvcGFjaXR5IiwgMS4w
LCAwLjE1XSwKKyAgICAgICAgICBbImZhZGUiLCAxLjUsICJib3giLCAib3BhY2l0eSIsIDAuNSwg
MC4xNV0sCisgICAgICAgIF07CisKKyAgICAgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZh
bHVlcyk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJib3gi
PjwvZGl2PgorICAgIDxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229485</attachid>
            <date>2014-04-16 15:06:57 -0700</date>
            <delta_ts>2014-04-16 17:55:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100632-20140416150636.patch</filename>
            <type>text/plain</type>
            <size>9418</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzM4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA0LTE2ICBIdWFuZyBE
b25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIE1ha2UgUmVuZGVy
TGF5ZXJCYWNraW5nIGdldCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGNvcnJlY3QgYW5pbWF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
NjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hl
biBhbiBlbGVtZW50IGhhcyBtdWx0aXBsZSBhbmltYXRpb25zIHRoYXQgaGF2ZSBkaWZmZXJlbnQg
dGltaW5nRnVuY3Rpb25zLAorICAgICAgICB0aGUgcHJvZ3Jlc3Mgb2YgZWFjaCBhbmltYXRpb24g
c2hvdWxkIGJlIGNhbGN1bGF0ZWQgdXNpbmcgaXRzIHJlc3BlY3RpdmUKKyAgICAgICAgdGltaW5n
RnVuY3Rpb24uIEJ1dCBhdCB0aGlzIHBvaW50LCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGZp
cnN0IGFuaW1hdGlvbiBpcworICAgICAgICBvbmx5IHVzZWQgaW4gUmVuZGVyTGF5ZXJCYWNraW5n
OjpzdGFydEFuaW1hdGlvbigpLCByZWdhcmRsZXNzIG9mIGhvdyBtYW55CisgICAgICAgIGFuaW1h
dGlvbnMgdGhlIGVsZW1lbnQgaGFzLgorCisgICAgICAgIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5
TmFtZSgpIHdhcyBpbnRyb2R1Y2VkIGluIHI4OTQ2MiBzbyB0aGF0IHRoZQorICAgICAgICB0aW1p
bmdGdW5jdGlvbiBvZiB0aGUgY29ycmVjdCBhbmltYXRpb24gc2VhcmNoZWQgYnkgaXRzIG5hbWUg
d291bGQgYmUKKyAgICAgICAgdXNlZC4gVGhpcyBwYXRjaCBtb3ZlcyB0aGUgZnVuY3Rpb24gdG8g
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24oKQorICAgICAgICBzbyB0aGF0IFJlbmRlckxh
eWVyQmFja2luZyByZXVzZXMgdGhpcyBtZXRob2QuCisKKyAgICAgICAgVGVzdDogYW5pbWF0aW9u
cy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCisKKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6ZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3Bl
cnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChLZXlmcmFtZVZhbHVlKToKKwogMjAxNC0wNC0xNiAgQmVtIEpvbmVzLUJleSAg
PGJqb25lc2JlQGFkb2JlLmNvbT4KIAogICAgICAgICBGaXggQ29kZUdlbmVyYXRvci5wbSB0byBv
bmx5IHdyaXRlIGZpbGVzIGlmIHRoZSBnZW5lcmF0ZWQgY29udGVudCBoYXMgY2hhbmdlZApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0
aW9uLmNwcAkocmV2aXNpb24gMTY3Mzg0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxOSArNjUsNiBA
QCBLZXlmcmFtZUFuaW1hdGlvbjo6fktleWZyYW1lQW5pbWF0aW9uKCkKICAgICAgICAgZW5kQW5p
bWF0aW9uKCk7CiB9CiAKLXN0YXRpYyBjb25zdCBBbmltYXRpb24qIGdldEFuaW1hdGlvbkZyb21T
dHlsZUJ5TmFtZShjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSkKLXsKLSAgICBpZiAoIXN0eWxlLT5hbmltYXRpb25zKCkpCi0gICAgICAgIHJldHVybiAw
OwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdHlsZS0+YW5pbWF0aW9ucygpLT5zaXpl
KCk7IGkrKykgewotICAgICAgICBpZiAobmFtZSA9PSBzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmlt
YXRpb24oaSkubmFtZSgpKQotICAgICAgICAgICAgcmV0dXJuICZzdHlsZS0+YW5pbWF0aW9ucygp
LT5hbmltYXRpb24oaSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQgS2V5ZnJh
bWVBbmltYXRpb246OmZldGNoSW50ZXJ2YWxFbmRwb2ludHNGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0
eUlEIHByb3BlcnR5LCBjb25zdCBSZW5kZXJTdHlsZSomIGZyb21TdHlsZSwgY29uc3QgUmVuZGVy
U3R5bGUqJiB0b1N0eWxlLCBkb3VibGUmIHByb2cpIGNvbnN0CiB7CiAgICAgLy8gRmluZCB0aGUg
Zmlyc3Qga2V5CkBAIC0xMzAsOSArMTE3LDcgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6ZmV0
Y2hJbnRlcnZhbEVuZAogICAgIG9mZnNldCA9IHByZXZLZXlmcmFtZS5rZXkoKTsKICAgICBzY2Fs
ZSA9IDEuMCAvIChuZXh0S2V5ZnJhbWUua2V5KCkgLSBwcmV2S2V5ZnJhbWUua2V5KCkpOwogCi0g
ICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gMDsKLSAgICBpZiAoY29u
c3QgQW5pbWF0aW9uKiBtYXRjaGVkQW5pbWF0aW9uID0gZ2V0QW5pbWF0aW9uRnJvbVN0eWxlQnlO
YW1lKGZyb21TdHlsZSwgbmFtZSgpKSkKLSAgICAgICAgdGltaW5nRnVuY3Rpb24gPSBtYXRjaGVk
QW5pbWF0aW9uLT50aW1pbmdGdW5jdGlvbigpLmdldCgpOworICAgIGNvbnN0IFRpbWluZ0Z1bmN0
aW9uKiB0aW1pbmdGdW5jdGlvbiA9IHByZXZLZXlmcmFtZS50aW1pbmdGdW5jdGlvbihuYW1lKCkp
LmdldCgpOwogCiAgICAgcHJvZyA9IHByb2dyZXNzKHNjYWxlLCBvZmZzZXQsIHRpbWluZ0Z1bmN0
aW9uKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCShyZXZpc2lvbiAxNjczODQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2Niw4ICsyMzY2
LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0QW5pbWF0aW9uKAogICAgICAgICBp
ZiAoIWtleWZyYW1lU3R5bGUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAot
ICAgICAgICAvLyBHZXQgdGltaW5nIGZ1bmN0aW9uLgotICAgICAgICBSZWZQdHI8VGltaW5nRnVu
Y3Rpb24+IHRmID0ga2V5ZnJhbWVTdHlsZS0+aGFzQW5pbWF0aW9ucygpID8gKCprZXlmcmFtZVN0
eWxlLT5hbmltYXRpb25zKCkpLmFuaW1hdGlvbigwKS50aW1pbmdGdW5jdGlvbigpIDogMDsKKyAg
ICAgICAgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0ZiA9IGN1cnJlbnRLZXlmcmFtZS50aW1pbmdG
dW5jdGlvbihrZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKICAgICAgICAgCiAgICAgICAgIGJv
b2wgaXNGaXJzdE9yTGFzdEtleWZyYW1lID0ga2V5ID09IDAgfHwga2V5ID09IDE7CiAgICAgICAg
IGlmICgoaGFzVHJhbnNmb3JtICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtl
eWZyYW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAJ
KHJldmlzaW9uIDE2NzM4NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlm
cmFtZUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxMCArMjEsMjYgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIktleWZyYW1lTGlzdC5oIgorCisjaW5jbHVkZSAiQW5p
bWF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY29uc3QgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gS2V5ZnJhbWVWYWx1ZTo6dGlt
aW5nRnVuY3Rpb24oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdAoreworICAgIGNvbnN0
IFJlbmRlclN0eWxlKiBrZXlmcmFtZVN0eWxlID0gc3R5bGUoKTsKKyAgICBpZiAoIWtleWZyYW1l
U3R5bGUgfHwgIWtleWZyYW1lU3R5bGUtPmFuaW1hdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleWZyYW1lU3R5bGUtPmFuaW1h
dGlvbnMoKS0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG5hbWUgPT0ga2V5ZnJhbWVTdHls
ZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSkubmFtZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGtleWZyYW1lU3R5bGUtPmFuaW1hdGlvbnMoKS0+YW5pbWF0aW9uKGkpLnRpbWluZ0Z1bmN0aW9u
KCk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEtleWZyYW1lTGlzdDo6fktl
eWZyYW1lTGlzdCgpCiB7CiAgICAgY2xlYXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmgJKHJldmlzaW9uIDE2NzM4NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuaAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNiArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJTdHls
ZTsKK2NsYXNzIFRpbWluZ0Z1bmN0aW9uOwogCiBjbGFzcyBLZXlmcmFtZVZhbHVlIHsKIHB1Ymxp
YzoKQEAgLTU0LDYgKzU1LDggQEAgcHVibGljOgogICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IH0KICAgICB2b2lkIHNldFN0eWxlKFBh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlKSB7IG1fc3R5bGUgPSBzdHlsZTsgfQogCisgICAg
Y29uc3QgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24oY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBkb3VibGUgbV9rZXk7CiAg
ICAgSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiBtX3Byb3BlcnRpZXM7IC8vIFRoZSBwcm9wZXJ0aWVz
IHNwZWNpZmllZCBpbiB0aGlzIGtleWZyYW1lLgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTY3Mzg0KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTQtMDQtMTYgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CisK
KyAgICAgICAgTWFrZSBSZW5kZXJMYXllckJhY2tpbmcgZ2V0IHRoZSB0aW1pbmdGdW5jdGlvbiBv
ZiB0aGUgY29ycmVjdCBhbmltYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDA2MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIGFuIGVsZW1lbnQgb24gYSBjb21wb3NpdGluZyBsYXllciBo
YXMgbXVsdGlwbGUgYW5pbWF0aW9ucyB0aGF0IGhhdmUKKyAgICAgICAgZGlmZmVyZW50IHRpbWlu
Z0Z1bmN0aW9ucywgdGhlIHByb2dyZXNzIG9mIGVhY2ggYW5pbWF0aW9uIHNob3VsZCBiZQorICAg
ICAgICBjYWxjdWxhdGVkIHVzaW5nIGl0cyByZXNwZWN0aXZlIHRpbWluZ0Z1bmN0aW9uIGluIEFj
Y2VsZXJhdGVkCisgICAgICAgIENvbXBvc2l0aW5nLgorCisgICAgICAgICogYW5pbWF0aW9ucy9r
ZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1
bmN0aW9ucy10cmFuc2Zvcm0uaHRtbDogQWRkZWQuCisKIDIwMTQtMDQtMTYgIE9saXZlciBIdW50
ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGUgRVM2IGZlYXR1cmU6QXJyYXku
cHJvdG90eXBlLmZpbGwKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVs
dGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0
aW9ucy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3IEBACitQQVNTIC0gIndlYmtp
dFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRo
aW5nIGNsb3NlIHRvOiAxLDAsMCwxLDUwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9w
ZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAs
MCwxLDEwMCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3giIGVs
ZW1lbnQgYXQgMS41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE1MCwwCitQQVNT
IC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0
aGluZyBjbG9zZSB0bzogMQorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxl
bWVudCBhdCAwLjlzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEKK1BBU1MgLSAib3BhY2l0eSIg
cHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMS41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRv
OiAwLjUKKwpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10
aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0u
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVs
dGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQ0IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgI2JveCB7
CisgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgICAgICBoZWlnaHQ6IDEw
MHB4OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAgICAgbWFyZ2luOiAyMHB4
OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICAgICAgLXdlYmtp
dC1hbmltYXRpb246CisgICAgICAgICAgICAgICAgaG9yaXpvbnRhbCAycyBsaW5lYXIgMSBhbHRl
cm5hdGUsCisgICAgICAgICAgICAgICAgZmFkZSAycyBzdGVwcygyKSAxIGFsdGVybmF0ZTsKKyAg
ICAgICAgfQorCisgICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBob3Jpem9udGFsIHsKKyAgICAg
ICAgICAgIGZyb20geyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOyB9CisgICAg
ICAgICAgICB0byAgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwcHgpOyB9Cisg
ICAgICAgIH0KKworICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmFkZSB7CisgICAgICAgICAg
ICBmcm9tIHsgb3BhY2l0eTogMS4wOyB9CisgICAgICAgICAgICB0byB7IG9wYWNpdHk6IDAuMDsg
fQorICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Fu
aW1hdGlvbi10ZXN0LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0i
dXRmLTgiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFy
c2V0PSJ1dGYtOCI+CisgICAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAg
IC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVk
LXZhbHVlLCB0b2xlcmFuY2VdCisgICAgICAgICAgWyJob3Jpem9udGFsIiwgMC41LCAiYm94Iiwg
IndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCA1MCwwXSwgMjBdLAorICAgICAgICAgIFsiaG9y
aXpvbnRhbCIsIDEuMCwgImJveCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwxMDAsMF0s
IDIwXSwKKyAgICAgICAgICBbImhvcml6b250YWwiLCAxLjUsICJib3giLCAid2Via2l0VHJhbnNm
b3JtIiwgWzEsMCwwLDEsMTUwLDBdLCAyMF0sCisgICAgICAgICAgWyJmYWRlIiwgMC41LCAiYm94
IiwgIm9wYWNpdHkiLCAxLjAsIDAuMTVdLAorICAgICAgICAgIFsiZmFkZSIsIDAuOSwgImJveCIs
ICJvcGFjaXR5IiwgMS4wLCAwLjE1XSwKKyAgICAgICAgICBbImZhZGUiLCAxLjUsICJib3giLCAi
b3BhY2l0eSIsIDAuNSwgMC4xNV0sCisgICAgICAgIF07CisKKyAgICAgICAgcnVuQW5pbWF0aW9u
VGVzdChleHBlY3RlZFZhbHVlcyk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8ZGl2IGlkPSJib3giPjwvZGl2PgorICAgIDxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229509</attachid>
            <date>2014-04-16 17:56:00 -0700</date>
            <delta_ts>2014-04-17 14:05:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100632-20140416175538.patch</filename>
            <type>text/plain</type>
            <size>9639</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzM5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA0LTE2ICBIdWFuZyBE
b25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIE1ha2UgUmVuZGVy
TGF5ZXJCYWNraW5nIGdldCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGNvcnJlY3QgYW5pbWF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
NjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hl
biBhbiBlbGVtZW50IGhhcyBtdWx0aXBsZSBhbmltYXRpb25zIHRoYXQgaGF2ZSBkaWZmZXJlbnQg
dGltaW5nRnVuY3Rpb25zLAorICAgICAgICB0aGUgcHJvZ3Jlc3Mgb2YgZWFjaCBhbmltYXRpb24g
c2hvdWxkIGJlIGNhbGN1bGF0ZWQgdXNpbmcgaXRzIHJlc3BlY3RpdmUKKyAgICAgICAgdGltaW5n
RnVuY3Rpb24uIEJ1dCBhdCB0aGlzIHBvaW50LCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGZp
cnN0IGFuaW1hdGlvbiBpcworICAgICAgICBvbmx5IHVzZWQgaW4gUmVuZGVyTGF5ZXJCYWNraW5n
OjpzdGFydEFuaW1hdGlvbigpLCByZWdhcmRsZXNzIG9mIGhvdyBtYW55CisgICAgICAgIGFuaW1h
dGlvbnMgdGhlIGVsZW1lbnQgaGFzLgorCisgICAgICAgIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5
TmFtZSgpIHdhcyBpbnRyb2R1Y2VkIGluIHI4OTQ2MiBzbyB0aGF0IHRoZQorICAgICAgICB0aW1p
bmdGdW5jdGlvbiBvZiB0aGUgY29ycmVjdCBhbmltYXRpb24gc2VhcmNoZWQgYnkgaXRzIG5hbWUg
d291bGQgYmUKKyAgICAgICAgdXNlZC4gVGhpcyBwYXRjaCBtb3ZlcyB0aGUgZnVuY3Rpb24gdG8g
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24oKQorICAgICAgICBzbyB0aGF0IFJlbmRlckxh
eWVyQmFja2luZyByZXVzZXMgdGhpcyBtZXRob2QuCisKKyAgICAgICAgVGVzdDogYW5pbWF0aW9u
cy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCisKKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6ZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3Bl
cnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChLZXlmcmFtZVZhbHVlKToKKwogMjAxNC0wNC0xNiAgWm9sdGFuIEhvcnZhdGgg
IDx6b2x0YW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBWYW5pc2ggdW5uZWNlc3NhcnkgaW5jbHVk
ZXMgZnJvbSBTaGFwZXMue2h8Y3BwfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAkocmV2aXNpb24gMTY3Mzk3KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NSwxOSArNjUsNiBAQCBLZXlmcmFtZUFuaW1hdGlvbjo6fktleWZyYW1l
QW5pbWF0aW9uKCkKICAgICAgICAgZW5kQW5pbWF0aW9uKCk7CiB9CiAKLXN0YXRpYyBjb25zdCBB
bmltYXRpb24qIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5TmFtZShjb25zdCBSZW5kZXJTdHlsZSog
c3R5bGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKLXsKLSAgICBpZiAoIXN0eWxlLT5hbmlt
YXRpb25zKCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzdHlsZS0+YW5pbWF0aW9ucygpLT5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAobmFtZSA9
PSBzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSkubmFtZSgpKQotICAgICAgICAgICAg
cmV0dXJuICZzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSk7Ci0gICAgfQotCi0gICAg
cmV0dXJuIDA7Ci19Ci0KIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmZldGNoSW50ZXJ2YWxFbmRw
b2ludHNGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBjb25zdCBSZW5kZXJTdHls
ZSomIGZyb21TdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqJiB0b1N0eWxlLCBkb3VibGUmIHByb2cp
IGNvbnN0CiB7CiAgICAgLy8gRmluZCB0aGUgZmlyc3Qga2V5CkBAIC0xMzAsMTEgKzExNyw5IEBA
IHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmZldGNoSW50ZXJ2YWxFbmQKICAgICBvZmZzZXQgPSBw
cmV2S2V5ZnJhbWUua2V5KCk7CiAgICAgc2NhbGUgPSAxLjAgLyAobmV4dEtleWZyYW1lLmtleSgp
IC0gcHJldktleWZyYW1lLmtleSgpKTsKIAotICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1p
bmdGdW5jdGlvbiA9IDA7Ci0gICAgaWYgKGNvbnN0IEFuaW1hdGlvbiogbWF0Y2hlZEFuaW1hdGlv
biA9IGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5TmFtZShmcm9tU3R5bGUsIG5hbWUoKSkpCi0gICAg
ICAgIHRpbWluZ0Z1bmN0aW9uID0gbWF0Y2hlZEFuaW1hdGlvbi0+dGltaW5nRnVuY3Rpb24oKS5n
ZXQoKTsKKyAgICBjb25zdCBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uID0g
cHJldktleWZyYW1lLnRpbWluZ0Z1bmN0aW9uKG5hbWUoKSk7CiAKLSAgICBwcm9nID0gcHJvZ3Jl
c3Moc2NhbGUsIG9mZnNldCwgdGltaW5nRnVuY3Rpb24pOworICAgIHByb2cgPSBwcm9ncmVzcyhz
Y2FsZSwgb2Zmc2V0LCB0aW1pbmdGdW5jdGlvbi5nZXQoKSk7CiB9CiAKIHZvaWQgS2V5ZnJhbWVB
bmltYXRpb246OmFuaW1hdGUoQ29tcG9zaXRlQW5pbWF0aW9uKiBjb21wb3NpdGVBbmltYXRpb24s
IFJlbmRlckVsZW1lbnQqLCBjb25zdCBSZW5kZXJTdHlsZSosIFJlbmRlclN0eWxlKiB0YXJnZXRT
dHlsZSwgUmVmUHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRTdHlsZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCShyZXZpc2lvbiAx
NjczOTcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjM2Niw4ICsyMzY2LDcgQEAgYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OnN0YXJ0QW5pbWF0aW9uKAogICAgICAgICBpZiAoIWtleWZyYW1lU3R5bGUpCiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICAvLyBHZXQgdGltaW5nIGZ1
bmN0aW9uLgotICAgICAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRmID0ga2V5ZnJhbWVTdHls
ZS0+aGFzQW5pbWF0aW9ucygpID8gKCprZXlmcmFtZVN0eWxlLT5hbmltYXRpb25zKCkpLmFuaW1h
dGlvbigwKS50aW1pbmdGdW5jdGlvbigpIDogMDsKKyAgICAgICAgUmVmUHRyPFRpbWluZ0Z1bmN0
aW9uPiB0ZiA9IGN1cnJlbnRLZXlmcmFtZS50aW1pbmdGdW5jdGlvbihrZXlmcmFtZXMuYW5pbWF0
aW9uTmFtZSgpKTsKICAgICAgICAgCiAgICAgICAgIGJvb2wgaXNGaXJzdE9yTGFzdEtleWZyYW1l
ID0ga2V5ID09IDAgfHwga2V5ID09IDE7CiAgICAgICAgIGlmICgoaGFzVHJhbnNmb3JtICYmIGlz
Rmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtleWZyYW1lLmNvbnRhaW5zUHJvcGVydHko
Q1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAJKHJldmlzaW9uIDE2NzM5NykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMSwxMCArMjEsMjcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IktleWZyYW1lTGlzdC5oIgorCisjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY29uc3QgUGFzc1JlZlB0cjxU
aW1pbmdGdW5jdGlvbj4gS2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24oY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lKSBjb25zdAoreworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBrZXlmcmFtZVN0
eWxlID0gc3R5bGUoKTsKKyAgICBpZiAoIWtleWZyYW1lU3R5bGUgfHwgIWtleWZyYW1lU3R5bGUt
PmFuaW1hdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGtleWZyYW1lU3R5bGUtPmFuaW1hdGlvbnMoKS0+c2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgY29uc3QgQW5pbWF0aW9uJiBhbmltYXRpb24gPSBrZXlmcmFtZVN0eWxlLT5hbmlt
YXRpb25zKCktPmFuaW1hdGlvbihpKTsKKyAgICAgICAgaWYgKG5hbWUgPT0gYW5pbWF0aW9uLm5h
bWUoKSkKKyAgICAgICAgICAgIHJldHVybiBhbmltYXRpb24udGltaW5nRnVuY3Rpb24oKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogS2V5ZnJhbWVMaXN0Ojp+S2V5ZnJhbWVM
aXN0KCkKIHsKICAgICBjbGVhcigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0tleWZyYW1lTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9LZXlmcmFtZUxpc3QuaAkocmV2aXNpb24gMTY3Mzk3KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2
ICszNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlclN0eWxlOworY2xh
c3MgVGltaW5nRnVuY3Rpb247CiAKIGNsYXNzIEtleWZyYW1lVmFsdWUgewogcHVibGljOgpAQCAt
NTQsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKCkgY29u
c3QgeyByZXR1cm4gbV9zdHlsZS5nZXQoKTsgfQogICAgIHZvaWQgc2V0U3R5bGUoUGFzc1JlZlB0
cjxSZW5kZXJTdHlsZT4gc3R5bGUpIHsgbV9zdHlsZSA9IHN0eWxlOyB9CiAKKyAgICBjb25zdCBQ
YXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbihjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGRvdWJsZSBtX2tleTsKICAgICBIYXNo
U2V0PENTU1Byb3BlcnR5SUQ+IG1fcHJvcGVydGllczsgLy8gVGhlIHByb3BlcnRpZXMgc3BlY2lm
aWVkIGluIHRoaXMga2V5ZnJhbWUuCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjczOTcpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0w
NC0xNiAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KKworICAgICAg
ICBNYWtlIFJlbmRlckxheWVyQmFja2luZyBnZXQgdGhlIHRpbWluZ0Z1bmN0aW9uIG9mIHRoZSBj
b3JyZWN0IGFuaW1hdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMDYzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdoZW4gYW4gZWxlbWVudCBvbiBhIGNvbXBvc2l0aW5nIGxheWVyIGhhcyBtdWx0
aXBsZSBhbmltYXRpb25zIHRoYXQgaGF2ZQorICAgICAgICBkaWZmZXJlbnQgdGltaW5nRnVuY3Rp
b25zLCB0aGUgcHJvZ3Jlc3Mgb2YgZWFjaCBhbmltYXRpb24gc2hvdWxkIGJlCisgICAgICAgIGNh
bGN1bGF0ZWQgdXNpbmcgaXRzIHJlc3BlY3RpdmUgdGltaW5nRnVuY3Rpb24gaW4gQWNjZWxlcmF0
ZWQKKyAgICAgICAgQ29tcG9zaXRpbmcuCisKKyAgICAgICAgKiBhbmltYXRpb25zL2tleWZyYW1l
LW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25z
LXRyYW5zZm9ybS5odG1sOiBBZGRlZC4KKwogMjAxNC0wNC0xNiAgT2xpdmVyIEh1bnQgIDxvbGl2
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsZSBFUzYgZmVhdHVyZTpBcnJheS5wcm90b3R5
cGUuZmlsbApJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10
aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRy
YW5zZm9ybS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9hbmltYXRp
b25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNmb3JtLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKK1BBU1MgLSAid2Via2l0VHJhbnNm
b3JtIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAwLjVzIHNhdyBzb21ldGhpbmcgY2xv
c2UgdG86IDEsMCwwLDEsNTAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZv
ciAiYm94IiBlbGVtZW50IGF0IDFzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTAw
LDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBh
dCAxLjVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTUwLDAKK1BBU1MgLSAib3Bh
Y2l0eSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNs
b3NlIHRvOiAxCitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0
IDAuOXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMQorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0
eSBmb3IgImJveCIgZWxlbWVudCBhdCAxLjVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDAuNQor
CkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWluZy1m
dW5jdGlvbnMtdHJhbnNmb3JtLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10
aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NDQgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAjYm94IHsKKyAgICAg
ICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDIwcHg7CisgICAg
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAgICAtd2Via2l0LWFuaW1h
dGlvbjoKKyAgICAgICAgICAgICAgICBob3Jpem9udGFsIDJzIGxpbmVhciAxIGFsdGVybmF0ZSwK
KyAgICAgICAgICAgICAgICBmYWRlIDJzIHN0ZXBzKDIpIDEgYWx0ZXJuYXRlOworICAgICAgICB9
CisKKyAgICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGhvcml6b250YWwgeworICAgICAgICAgICAg
ZnJvbSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7IH0KKyAgICAgICAgICAg
IHRvICAgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCk7IH0KKyAgICAgICAg
fQorCisgICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBmYWRlIHsKKyAgICAgICAgICAgIGZyb20g
eyBvcGFjaXR5OiAxLjA7IH0KKyAgICAgICAgICAgIHRvIHsgb3BhY2l0eTogMC4wOyB9CisgICAg
ICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9u
LXRlc3QtaGVscGVycy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0
Zi04Ij4KKyAgICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAgICAgICAgLy8gW2Fu
aW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhwZWN0ZWQtdmFsdWUs
IHRvbGVyYW5jZV0KKyAgICAgICAgICBbImhvcml6b250YWwiLCAwLjUsICJib3giLCAid2Via2l0
VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDUwLDBdLCAyMF0sCisgICAgICAgICAgWyJob3Jpem9udGFs
IiwgMS4wLCAiYm94IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLDEwMCwwXSwgMjBdLAor
ICAgICAgICAgIFsiaG9yaXpvbnRhbCIsIDEuNSwgImJveCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBb
MSwwLDAsMSwxNTAsMF0sIDIwXSwKKyAgICAgICAgICBbImZhZGUiLCAwLjUsICJib3giLCAib3Bh
Y2l0eSIsIDEuMCwgMC4xNV0sCisgICAgICAgICAgWyJmYWRlIiwgMC45LCAiYm94IiwgIm9wYWNp
dHkiLCAxLjAsIDAuMTVdLAorICAgICAgICAgIFsiZmFkZSIsIDEuNSwgImJveCIsICJvcGFjaXR5
IiwgMC41LCAwLjE1XSwKKyAgICAgICAgXTsKKworICAgICAgICBydW5BbmltYXRpb25UZXN0KGV4
cGVjdGVkVmFsdWVzKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYg
aWQ9ImJveCI+PC9kaXY+CisgICAgPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229573</attachid>
            <date>2014-04-17 14:05:57 -0700</date>
            <delta_ts>2014-04-17 15:28:16 -0700</delta_ts>
            <desc>Includes Xcode settings. Whoops!</desc>
            <filename>bug-100632-20140417140536.patch</filename>
            <type>text/plain</type>
            <size>16177</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzQ0MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA0LTE2ICBIdWFuZyBE
b25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIE1ha2UgUmVuZGVy
TGF5ZXJCYWNraW5nIGdldCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGNvcnJlY3QgYW5pbWF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
NjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hl
biBhbiBlbGVtZW50IGhhcyBtdWx0aXBsZSBhbmltYXRpb25zIHRoYXQgaGF2ZSBkaWZmZXJlbnQg
dGltaW5nRnVuY3Rpb25zLAorICAgICAgICB0aGUgcHJvZ3Jlc3Mgb2YgZWFjaCBhbmltYXRpb24g
c2hvdWxkIGJlIGNhbGN1bGF0ZWQgdXNpbmcgaXRzIHJlc3BlY3RpdmUKKyAgICAgICAgdGltaW5n
RnVuY3Rpb24uIEJ1dCBhdCB0aGlzIHBvaW50LCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGZp
cnN0IGFuaW1hdGlvbiBpcworICAgICAgICBvbmx5IHVzZWQgaW4gUmVuZGVyTGF5ZXJCYWNraW5n
OjpzdGFydEFuaW1hdGlvbigpLCByZWdhcmRsZXNzIG9mIGhvdyBtYW55CisgICAgICAgIGFuaW1h
dGlvbnMgdGhlIGVsZW1lbnQgaGFzLgorCisgICAgICAgIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5
TmFtZSgpIHdhcyBpbnRyb2R1Y2VkIGluIHI4OTQ2MiBzbyB0aGF0IHRoZQorICAgICAgICB0aW1p
bmdGdW5jdGlvbiBvZiB0aGUgY29ycmVjdCBhbmltYXRpb24gc2VhcmNoZWQgYnkgaXRzIG5hbWUg
d291bGQgYmUKKyAgICAgICAgdXNlZC4gVGhpcyBwYXRjaCBtb3ZlcyB0aGUgZnVuY3Rpb24gdG8g
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24oKQorICAgICAgICBzbyB0aGF0IFJlbmRlckxh
eWVyQmFja2luZyByZXVzZXMgdGhpcyBtZXRob2QuCisKKyAgICAgICAgVGVzdDogYW5pbWF0aW9u
cy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCisKKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6ZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3Bl
cnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChLZXlmcmFtZVZhbHVlKToKKwogMjAxNC0wNC0xNiAgQnJlbnQgRnVsZ2hhbSAg
PGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBBIGZldyBmaW5hbCBjbGVhbnVw
cyB0byB0aGUgRGF0YU9iamVjdCBjbGFzc2VzLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAkocmV2aXNpb24gMTY3NDQz
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NSwxOSArNjUsNiBAQCBLZXlmcmFtZUFuaW1hdGlvbjo6fktl
eWZyYW1lQW5pbWF0aW9uKCkKICAgICAgICAgZW5kQW5pbWF0aW9uKCk7CiB9CiAKLXN0YXRpYyBj
b25zdCBBbmltYXRpb24qIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5TmFtZShjb25zdCBSZW5kZXJT
dHlsZSogc3R5bGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKLXsKLSAgICBpZiAoIXN0eWxl
LT5hbmltYXRpb25zKCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzdHlsZS0+YW5pbWF0aW9ucygpLT5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAo
bmFtZSA9PSBzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSkubmFtZSgpKQotICAgICAg
ICAgICAgcmV0dXJuICZzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSk7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmZldGNoSW50ZXJ2
YWxFbmRwb2ludHNGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBjb25zdCBSZW5k
ZXJTdHlsZSomIGZyb21TdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqJiB0b1N0eWxlLCBkb3VibGUm
IHByb2cpIGNvbnN0CiB7CiAgICAgLy8gRmluZCB0aGUgZmlyc3Qga2V5CkBAIC0xMzAsMTEgKzEx
Nyw3IEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmZldGNoSW50ZXJ2YWxFbmQKICAgICBvZmZz
ZXQgPSBwcmV2S2V5ZnJhbWUua2V5KCk7CiAgICAgc2NhbGUgPSAxLjAgLyAobmV4dEtleWZyYW1l
LmtleSgpIC0gcHJldktleWZyYW1lLmtleSgpKTsKIAotICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9u
KiB0aW1pbmdGdW5jdGlvbiA9IDA7Ci0gICAgaWYgKGNvbnN0IEFuaW1hdGlvbiogbWF0Y2hlZEFu
aW1hdGlvbiA9IGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5TmFtZShmcm9tU3R5bGUsIG5hbWUoKSkp
Ci0gICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gbWF0Y2hlZEFuaW1hdGlvbi0+dGltaW5nRnVuY3Rp
b24oKS5nZXQoKTsKLQotICAgIHByb2cgPSBwcm9ncmVzcyhzY2FsZSwgb2Zmc2V0LCB0aW1pbmdG
dW5jdGlvbik7CisgICAgcHJvZyA9IHByb2dyZXNzKHNjYWxlLCBvZmZzZXQsIHByZXZLZXlmcmFt
ZS50aW1pbmdGdW5jdGlvbihuYW1lKCkpKTsKIH0KIAogdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6
YW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24qIGNvbXBvc2l0ZUFuaW1hdGlvbiwgUmVuZGVyRWxl
bWVudCosIGNvbnN0IFJlbmRlclN0eWxlKiwgUmVuZGVyU3R5bGUqIHRhcmdldFN0eWxlLCBSZWZQ
dHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAkocmV2aXNpb24gMTY3NDQzKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC03OCwxMSArNzgsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFuaW1hdGlv
blZhbHVlKCkgeyB9CiAKICAgICBkb3VibGUga2V5VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5
VGltZTsgfQotICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fdGltaW5nRnVuY3Rpb24uZ2V0KCk7IH0KKyAgICBjb25zdCBUaW1pbmdGdW5j
dGlvbiogdGltaW5nRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0aW9uOyB9
CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0ID0g
MDsKIAogcHJvdGVjdGVkOgotICAgIEFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBQYXNz
UmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbiA9IDApCisgICAgQW5pbWF0aW9u
VmFsdWUoZG91YmxlIGtleVRpbWUsIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlv
biA9IG51bGxwdHIpCiAgICAgICAgIDogbV9rZXlUaW1lKGtleVRpbWUpCiAgICAgICAgICwgbV90
aW1pbmdGdW5jdGlvbih0aW1pbmdGdW5jdGlvbikKICAgICB7CkBAIC05MCwxNCArOTAsMTQgQEAg
cHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIGRvdWJsZSBtX2tleVRpbWU7Ci0gICAgUmVmUHRy
PFRpbWluZ0Z1bmN0aW9uPiBtX3RpbWluZ0Z1bmN0aW9uOworICAgIGNvbnN0IFRpbWluZ0Z1bmN0
aW9uKiBtX3RpbWluZ0Z1bmN0aW9uOwogfTsKIAogLy8gVXNlZCB0byBzdG9yZSBvbmUgZmxvYXQg
dmFsdWUgb2YgYW4gYW5pbWF0aW9uLgogLy8gRklYTUU6IFNob3VsZCBiZSBtb3ZlZCB0byBpdHMg
b3duIGhlYWRlciBmaWxlLgogY2xhc3MgRmxvYXRBbmltYXRpb25WYWx1ZSA6IHB1YmxpYyBBbmlt
YXRpb25WYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RmxvYXRBbmltYXRp
b25WYWx1ZT4gY3JlYXRlKGRvdWJsZSBrZXlUaW1lLCBmbG9hdCB2YWx1ZSwgUGFzc1JlZlB0cjxU
aW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24gPSAwKQorICAgIHN0YXRpYyBQYXNzT3duUHRy
PEZsb2F0QW5pbWF0aW9uVmFsdWU+IGNyZWF0ZShkb3VibGUga2V5VGltZSwgZmxvYXQgdmFsdWUs
IGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoa2V5VGltZSwg
dmFsdWUsIHRpbWluZ0Z1bmN0aW9uKSk7CiAgICAgfQpAQCAtMTEwLDcgKzExMCw3IEBAIHB1Ymxp
YzoKICAgICBmbG9hdCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogcHJpdmF0
ZToKLSAgICBGbG9hdEFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBmbG9hdCB2YWx1ZSwg
UGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24pCisgICAgRmxvYXRBbmlt
YXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgZmxvYXQgdmFsdWUsIGNvbnN0IFRpbWluZ0Z1bmN0
aW9uKiB0aW1pbmdGdW5jdGlvbikKICAgICAgICAgOiBBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB0
aW1pbmdGdW5jdGlvbikKICAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgIHsKQEAgLTEyMyw3
ICsxMjMsNyBAQCBwcml2YXRlOgogLy8gRklYTUU6IFNob3VsZCBiZSBtb3ZlZCB0byBpdHMgb3du
IGhlYWRlciBmaWxlLgogY2xhc3MgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgQW5p
bWF0aW9uVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFRyYW5zZm9ybUFu
aW1hdGlvblZhbHVlPiBjcmVhdGUoZG91YmxlIGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJh
dGlvbnMmIHZhbHVlLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbiA9
IDApCisgICAgc3RhdGljIFBhc3NPd25QdHI8VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU+IGNyZWF0
ZShkb3VibGUga2V5VGltZSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdmFsdWUsIGNvbnN0
IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCiAgICAgewogICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHZh
bHVlLCB0aW1pbmdGdW5jdGlvbikpOwogICAgIH0KQEAgLTEzNiw3ICsxMzYsNyBAQCBwdWJsaWM6
CiAgICAgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X3ZhbHVlOyB9CiAKIHByaXZhdGU6Ci0gICAgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoZG91Ymxl
IGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlLCBQYXNzUmVmUHRyPFRp
bWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbikKKyAgICBUcmFuc2Zvcm1BbmltYXRpb25WYWx1
ZShkb3VibGUga2V5VGltZSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdmFsdWUsIGNvbnN0
IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKICAgICAgICAgOiBBbmltYXRpb25WYWx1
ZShrZXlUaW1lLCB0aW1pbmdGdW5jdGlvbikKICAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAg
IHsKQEAgLTE1MCw3ICsxNTAsNyBAQCBwcml2YXRlOgogLy8gRklYTUU6IFNob3VsZCBiZSBtb3Zl
ZCB0byBpdHMgb3duIGhlYWRlciBmaWxlLgogY2xhc3MgRmlsdGVyQW5pbWF0aW9uVmFsdWUgOiBw
dWJsaWMgQW5pbWF0aW9uVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEZp
bHRlckFuaW1hdGlvblZhbHVlPiBjcmVhdGUoZG91YmxlIGtleVRpbWUsIGNvbnN0IEZpbHRlck9w
ZXJhdGlvbnMmIHZhbHVlLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlv
biA9IDApCisgICAgc3RhdGljIFBhc3NPd25QdHI8RmlsdGVyQW5pbWF0aW9uVmFsdWU+IGNyZWF0
ZShkb3VibGUga2V5VGltZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdmFsdWUsIGNvbnN0IFRp
bWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHZhbHVlLCB0
aW1pbmdGdW5jdGlvbikpOwogICAgIH0KQEAgLTE2Myw3ICsxNjMsNyBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9
CiAKIHByaXZhdGU6Ci0gICAgRmlsdGVyQW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmIHZhbHVlLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0
aW1pbmdGdW5jdGlvbikKKyAgICBGaWx0ZXJBbmltYXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwg
Y29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdmFsdWUsIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1p
bmdGdW5jdGlvbikKICAgICAgICAgOiBBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB0aW1pbmdGdW5j
dGlvbikKICAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCShyZXZpc2lvbiAxNjc0
NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjM2Niw4ICsyMzY2LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tp
bmc6OnN0YXJ0QW5pbWF0aW9uKAogICAgICAgICBpZiAoIWtleWZyYW1lU3R5bGUpCiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICAvLyBHZXQgdGltaW5nIGZ1bmN0
aW9uLgotICAgICAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRmID0ga2V5ZnJhbWVTdHlsZS0+
aGFzQW5pbWF0aW9ucygpID8gKCprZXlmcmFtZVN0eWxlLT5hbmltYXRpb25zKCkpLmFuaW1hdGlv
bigwKS50aW1pbmdGdW5jdGlvbigpIDogMDsKKyAgICAgICAgY29uc3QgVGltaW5nRnVuY3Rpb24q
IHRmID0gY3VycmVudEtleWZyYW1lLnRpbWluZ0Z1bmN0aW9uKGtleWZyYW1lcy5hbmltYXRpb25O
YW1lKCkpOwogICAgICAgICAKICAgICAgICAgYm9vbCBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUgPSBr
ZXkgPT0gMCB8fCBrZXkgPT0gMTsKICAgICAgICAgaWYgKChoYXNUcmFuc2Zvcm0gJiYgaXNGaXJz
dE9yTGFzdEtleWZyYW1lKSB8fCBjdXJyZW50S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQ
cm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvS2V5ZnJhbWVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNwcAkocmV2aXNpb24gMTY3NDQzKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDEwICsyMSwyNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiS2V5
ZnJhbWVMaXN0LmgiCisKKyNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJP
YmplY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjb25zdCBUaW1pbmdGdW5jdGlvbiog
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBj
b25zdAoreworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBrZXlmcmFtZVN0eWxlID0gc3R5bGUoKTsK
KyAgICBpZiAoIWtleWZyYW1lU3R5bGUgfHwgIWtleWZyYW1lU3R5bGUtPmFuaW1hdGlvbnMoKSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtl
eWZyYW1lU3R5bGUtPmFuaW1hdGlvbnMoKS0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3Qg
QW5pbWF0aW9uJiBhbmltYXRpb24gPSBrZXlmcmFtZVN0eWxlLT5hbmltYXRpb25zKCktPmFuaW1h
dGlvbihpKTsKKyAgICAgICAgaWYgKG5hbWUgPT0gYW5pbWF0aW9uLm5hbWUoKSkKKyAgICAgICAg
ICAgIHJldHVybiBhbmltYXRpb24udGltaW5nRnVuY3Rpb24oKS5nZXQoKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKwogS2V5ZnJhbWVMaXN0Ojp+S2V5ZnJhbWVMaXN0KCkKIHsK
ICAgICBjbGVhcigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZy
YW1lTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9L
ZXlmcmFtZUxpc3QuaAkocmV2aXNpb24gMTY3NDQzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlclN0eWxlOworY2xhc3MgVGltaW5n
RnVuY3Rpb247CiAKIGNsYXNzIEtleWZyYW1lVmFsdWUgewogcHVibGljOgpAQCAtNTQsNiArNTUs
OCBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKCkgY29uc3QgeyByZXR1
cm4gbV9zdHlsZS5nZXQoKTsgfQogICAgIHZvaWQgc2V0U3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gc3R5bGUpIHsgbV9zdHlsZSA9IHN0eWxlOyB9CiAKKyAgICBjb25zdCBUaW1pbmdGdW5j
dGlvbiogdGltaW5nRnVuY3Rpb24oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdDsKKwog
cHJpdmF0ZToKICAgICBkb3VibGUgbV9rZXk7CiAgICAgSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiBt
X3Byb3BlcnRpZXM7IC8vIFRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCBpbiB0aGlzIGtleWZyYW1l
LgpJbmRleDogV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNv
dXJjZS54Y3NjaGVtZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRk
YXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lCShyZXZpc2lvbiAxNjc0NDMpCisrKyBX
ZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2No
ZW1lCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsNiArMTMwLDE1IEBACiAgICAgICBidWlsZENvbmZp
Z3VyYXRpb24gPSAiRGVidWciPgogICAgICAgPFRlc3RhYmxlcz4KICAgICAgIDwvVGVzdGFibGVz
PgorICAgICAgPE1hY3JvRXhwYW5zaW9uPgorICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQor
ICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAgICAg
Qmx1ZXByaW50SWRlbnRpZmllciA9ICI4RDExMDcyNjA0ODZDRUI4MDBFNDcwOTAiCisgICAgICAg
ICAgICBCdWlsZGFibGVOYW1lID0gIk1pbmlCcm93c2VyLmFwcCIKKyAgICAgICAgICAgIEJsdWVw
cmludE5hbWUgPSAiTWluaUJyb3dzZXIiCisgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVy
ID0gImNvbnRhaW5lcjpUb29scy9NaW5pQnJvd3Nlci9NaW5pQnJvd3Nlci54Y29kZXByb2oiPgor
ICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CisgICAgICA8L01hY3JvRXhwYW5zaW9uPgog
ICAgPC9UZXN0QWN0aW9uPgogICAgPExhdW5jaEFjdGlvbgogICAgICAgc2VsZWN0ZWREZWJ1Z2dl
cklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxMREIiCkBA
IC0xNDAsMTAgKzE0OSw0MSBAQAogICAgICAgaWdub3Jlc1BlcnNpc3RlbnRTdGF0ZU9uTGF1bmNo
ID0gIllFUyIKICAgICAgIGRlYnVnRG9jdW1lbnRWZXJzaW9uaW5nID0gIllFUyIKICAgICAgIGFs
bG93TG9jYXRpb25TaW11bGF0aW9uID0gIllFUyI+Ci0gICAgICA8UGF0aFJ1bm5hYmxlCi0gICAg
ICAgICBGaWxlUGF0aCA9ICIvQXBwbGljYXRpb25zL1NhZmFyaS5hcHAvQ29udGVudHMvTWFjT1Mv
U2FmYXJpRm9yV2ViS2l0RGV2ZWxvcG1lbnQiPgotICAgICAgPC9QYXRoUnVubmFibGU+CisgICAg
ICA8QnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgorICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5j
ZQorICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAgICAgICAg
ICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICI4RDExMDcyNjA0ODZDRUI4MDBFNDcwOTAiCisgICAg
ICAgICAgICBCdWlsZGFibGVOYW1lID0gIk1pbmlCcm93c2VyLmFwcCIKKyAgICAgICAgICAgIEJs
dWVwcmludE5hbWUgPSAiTWluaUJyb3dzZXIiCisgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFp
bmVyID0gImNvbnRhaW5lcjpUb29scy9NaW5pQnJvd3Nlci9NaW5pQnJvd3Nlci54Y29kZXByb2oi
PgorICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CisgICAgICA8L0J1aWxkYWJsZVByb2R1
Y3RSdW5uYWJsZT4KICAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4KKyAgICAgICAgIDxBZGRpdGlv
bmFsT3B0aW9uCisgICAgICAgICAgICBrZXkgPSAiTWFsbG9jU2NyaWJibGUiCisgICAgICAgICAg
ICB2YWx1ZSA9ICIiCisgICAgICAgICAgICBpc0VuYWJsZWQgPSAiWUVTIj4KKyAgICAgICAgIDwv
QWRkaXRpb25hbE9wdGlvbj4KKyAgICAgICAgIDxBZGRpdGlvbmFsT3B0aW9uCisgICAgICAgICAg
ICBrZXkgPSAiRFlMRF9JTlNFUlRfTElCUkFSSUVTIgorICAgICAgICAgICAgdmFsdWUgPSAiL3Vz
ci9saWIvbGliZ21hbGxvYy5keWxpYiIKKyAgICAgICAgICAgIGlzRW5hYmxlZCA9ICJZRVMiPgor
ICAgICAgICAgPC9BZGRpdGlvbmFsT3B0aW9uPgorICAgICAgICAgPEFkZGl0aW9uYWxPcHRpb24K
KyAgICAgICAgICAgIGtleSA9ICJNYWxsb2NHdWFyZEVkZ2VzIgorICAgICAgICAgICAgdmFsdWUg
PSAiIgorICAgICAgICAgICAgaXNFbmFibGVkID0gIllFUyI+CisgICAgICAgICA8L0FkZGl0aW9u
YWxPcHRpb24+CisgICAgICAgICA8QWRkaXRpb25hbE9wdGlvbgorICAgICAgICAgICAga2V5ID0g
Ik1hbGxvY1N0YWNrTG9nZ2luZyIKKyAgICAgICAgICAgIHZhbHVlID0gIiIKKyAgICAgICAgICAg
IGlzRW5hYmxlZCA9ICJZRVMiPgorICAgICAgICAgPC9BZGRpdGlvbmFsT3B0aW9uPgorICAgICAg
ICAgPEFkZGl0aW9uYWxPcHRpb24KKyAgICAgICAgICAgIGtleSA9ICJOU1pvbWJpZUVuYWJsZWQi
CisgICAgICAgICAgICB2YWx1ZSA9ICJZRVMiCisgICAgICAgICAgICBpc0VuYWJsZWQgPSAiWUVT
Ij4KKyAgICAgICAgIDwvQWRkaXRpb25hbE9wdGlvbj4KICAgICAgIDwvQWRkaXRpb25hbE9wdGlv
bnM+CiAgICA8L0xhdW5jaEFjdGlvbj4KICAgIDxQcm9maWxlQWN0aW9uCkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNjc0NDMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxOCBAQAorMjAxNC0wNC0xNiAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21w
YW55MTAwLm5ldD4KKworICAgICAgICBNYWtlIFJlbmRlckxheWVyQmFja2luZyBnZXQgdGhlIHRp
bWluZ0Z1bmN0aW9uIG9mIHRoZSBjb3JyZWN0IGFuaW1hdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDYzMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYW4gZWxlbWVudCBvbiBhIGNvbXBv
c2l0aW5nIGxheWVyIGhhcyBtdWx0aXBsZSBhbmltYXRpb25zIHRoYXQgaGF2ZQorICAgICAgICBk
aWZmZXJlbnQgdGltaW5nRnVuY3Rpb25zLCB0aGUgcHJvZ3Jlc3Mgb2YgZWFjaCBhbmltYXRpb24g
c2hvdWxkIGJlCisgICAgICAgIGNhbGN1bGF0ZWQgdXNpbmcgaXRzIHJlc3BlY3RpdmUgdGltaW5n
RnVuY3Rpb24gaW4gQWNjZWxlcmF0ZWQKKyAgICAgICAgQ29tcG9zaXRpbmcuCisKKyAgICAgICAg
KiBhbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNmb3Jt
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0
aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sOiBBZGRlZC4KKwogMjAxNC0wNC0x
NiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBGdWxsc2NyZWVu
IG1lZGlhIGNvbnRyb2xzIGFyZSB1bnVzYWJsZSBpbiBwYWdpbmF0aW9uIG1vZGUKSW5kZXg6IExh
eW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10
cmFuc2Zvcm0tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlv
bnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0
aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw3IEBACitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9y
ICJib3giIGVsZW1lbnQgYXQgMC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDUw
LDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBh
dCAxcyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDEwMCwwCitQQVNTIC0gIndlYmtp
dFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMS41cyBzYXcgc29tZXRo
aW5nIGNsb3NlIHRvOiAxLDAsMCwxLDE1MCwwCitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZv
ciAiYm94IiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMQorUEFTUyAt
ICJvcGFjaXR5IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAwLjlzIHNhdyBzb21ldGhp
bmcgY2xvc2UgdG86IDEKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1l
bnQgYXQgMS41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAwLjUKKwpJbmRleDogTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9y
bS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVs
dGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0uaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10
cmFuc2Zvcm0uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgI2JveCB7CisgICAgICAgICAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOworICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246CisgICAgICAgICAg
ICAgICAgaG9yaXpvbnRhbCAycyBsaW5lYXIgMSBhbHRlcm5hdGUsCisgICAgICAgICAgICAgICAg
ZmFkZSAycyBzdGVwcygyKSAxIGFsdGVybmF0ZTsKKyAgICAgICAgfQorCisgICAgICAgIEAtd2Vi
a2l0LWtleWZyYW1lcyBob3Jpem9udGFsIHsKKyAgICAgICAgICAgIGZyb20geyAtd2Via2l0LXRy
YW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOyB9CisgICAgICAgICAgICB0byAgIHsgLXdlYmtpdC10
cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwcHgpOyB9CisgICAgICAgIH0KKworICAgICAgICBALXdl
YmtpdC1rZXlmcmFtZXMgZmFkZSB7CisgICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMS4wOyB9
CisgICAgICAgICAgICB0byB7IG9wYWNpdHk6IDAuMDsgfQorICAgICAgICB9CisgICAgPC9zdHls
ZT4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIGNv
bnN0IGV4cGVjdGVkVmFsdWVzID0gWworICAgICAgICAgIC8vIFthbmltYXRpb24tbmFtZSwgdGlt
ZSwgZWxlbWVudC1pZCwgcHJvcGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAg
ICAgICAgWyJob3Jpem9udGFsIiwgMC41LCAiYm94IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAs
MCwxLCA1MCwwXSwgMjBdLAorICAgICAgICAgIFsiaG9yaXpvbnRhbCIsIDEuMCwgImJveCIsICJ3
ZWJraXRUcmFuc2Zvcm0iLCBbMSwwLDAsMSwxMDAsMF0sIDIwXSwKKyAgICAgICAgICBbImhvcml6
b250YWwiLCAxLjUsICJib3giLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsMTUwLDBdLCAy
MF0sCisgICAgICAgICAgWyJmYWRlIiwgMC41LCAiYm94IiwgIm9wYWNpdHkiLCAxLjAsIDAuMTVd
LAorICAgICAgICAgIFsiZmFkZSIsIDAuOSwgImJveCIsICJvcGFjaXR5IiwgMS4wLCAwLjE1XSwK
KyAgICAgICAgICBbImZhZGUiLCAxLjUsICJib3giLCAib3BhY2l0eSIsIDAuNSwgMC4xNV0sCisg
ICAgICAgIF07CisKKyAgICAgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJib3giPjwvZGl2Pgor
ICAgIDxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229582</attachid>
            <date>2014-04-17 15:26:33 -0700</date>
            <delta_ts>2014-04-17 15:29:24 -0700</delta_ts>
            <desc>Ditto.</desc>
            <filename>bug-100632-20140417152611.patch</filename>
            <type>text/plain</type>
            <size>15677</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzQ0MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA0LTE2ICBIdWFuZyBE
b25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIE1ha2UgUmVuZGVy
TGF5ZXJCYWNraW5nIGdldCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGNvcnJlY3QgYW5pbWF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
NjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hl
biBhbiBlbGVtZW50IGhhcyBtdWx0aXBsZSBhbmltYXRpb25zIHRoYXQgaGF2ZSBkaWZmZXJlbnQg
dGltaW5nRnVuY3Rpb25zLAorICAgICAgICB0aGUgcHJvZ3Jlc3Mgb2YgZWFjaCBhbmltYXRpb24g
c2hvdWxkIGJlIGNhbGN1bGF0ZWQgdXNpbmcgaXRzIHJlc3BlY3RpdmUKKyAgICAgICAgdGltaW5n
RnVuY3Rpb24uIEJ1dCBhdCB0aGlzIHBvaW50LCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGZp
cnN0IGFuaW1hdGlvbiBpcworICAgICAgICBvbmx5IHVzZWQgaW4gUmVuZGVyTGF5ZXJCYWNraW5n
OjpzdGFydEFuaW1hdGlvbigpLCByZWdhcmRsZXNzIG9mIGhvdyBtYW55CisgICAgICAgIGFuaW1h
dGlvbnMgdGhlIGVsZW1lbnQgaGFzLgorCisgICAgICAgIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5
TmFtZSgpIHdhcyBpbnRyb2R1Y2VkIGluIHI4OTQ2MiBzbyB0aGF0IHRoZQorICAgICAgICB0aW1p
bmdGdW5jdGlvbiBvZiB0aGUgY29ycmVjdCBhbmltYXRpb24gc2VhcmNoZWQgYnkgaXRzIG5hbWUg
d291bGQgYmUKKyAgICAgICAgdXNlZC4gVGhpcyBwYXRjaCBtb3ZlcyB0aGUgZnVuY3Rpb24gdG8g
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24oKQorICAgICAgICBzbyB0aGF0IFJlbmRlckxh
eWVyQmFja2luZyByZXVzZXMgdGhpcyBtZXRob2QuCisKKyAgICAgICAgVGVzdDogYW5pbWF0aW9u
cy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCisKKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6ZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3Bl
cnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChLZXlmcmFtZVZhbHVlKToKKwogMjAxNC0wNC0xNiAgQnJlbnQgRnVsZ2hhbSAg
PGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBBIGZldyBmaW5hbCBjbGVhbnVw
cyB0byB0aGUgRGF0YU9iamVjdCBjbGFzc2VzLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAkocmV2aXNpb24gMTY3NDQz
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NSwxOSArNjUsNiBAQCBLZXlmcmFtZUFuaW1hdGlvbjo6fktl
eWZyYW1lQW5pbWF0aW9uKCkKICAgICAgICAgZW5kQW5pbWF0aW9uKCk7CiB9CiAKLXN0YXRpYyBj
b25zdCBBbmltYXRpb24qIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5TmFtZShjb25zdCBSZW5kZXJT
dHlsZSogc3R5bGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKLXsKLSAgICBpZiAoIXN0eWxl
LT5hbmltYXRpb25zKCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzdHlsZS0+YW5pbWF0aW9ucygpLT5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAo
bmFtZSA9PSBzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSkubmFtZSgpKQotICAgICAg
ICAgICAgcmV0dXJuICZzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSk7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmZldGNoSW50ZXJ2
YWxFbmRwb2ludHNGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBjb25zdCBSZW5k
ZXJTdHlsZSomIGZyb21TdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqJiB0b1N0eWxlLCBkb3VibGUm
IHByb2cpIGNvbnN0CiB7CiAgICAgLy8gRmluZCB0aGUgZmlyc3Qga2V5CkBAIC0xMzAsMTEgKzEx
Nyw3IEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmZldGNoSW50ZXJ2YWxFbmQKICAgICBvZmZz
ZXQgPSBwcmV2S2V5ZnJhbWUua2V5KCk7CiAgICAgc2NhbGUgPSAxLjAgLyAobmV4dEtleWZyYW1l
LmtleSgpIC0gcHJldktleWZyYW1lLmtleSgpKTsKIAotICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9u
KiB0aW1pbmdGdW5jdGlvbiA9IDA7Ci0gICAgaWYgKGNvbnN0IEFuaW1hdGlvbiogbWF0Y2hlZEFu
aW1hdGlvbiA9IGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5TmFtZShmcm9tU3R5bGUsIG5hbWUoKSkp
Ci0gICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gbWF0Y2hlZEFuaW1hdGlvbi0+dGltaW5nRnVuY3Rp
b24oKS5nZXQoKTsKLQotICAgIHByb2cgPSBwcm9ncmVzcyhzY2FsZSwgb2Zmc2V0LCB0aW1pbmdG
dW5jdGlvbik7CisgICAgcHJvZyA9IHByb2dyZXNzKHNjYWxlLCBvZmZzZXQsIHByZXZLZXlmcmFt
ZS50aW1pbmdGdW5jdGlvbihuYW1lKCkpKTsKIH0KIAogdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6
YW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24qIGNvbXBvc2l0ZUFuaW1hdGlvbiwgUmVuZGVyRWxl
bWVudCosIGNvbnN0IFJlbmRlclN0eWxlKiwgUmVuZGVyU3R5bGUqIHRhcmdldFN0eWxlLCBSZWZQ
dHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAkocmV2aXNpb24gMTY3NDQzKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8
QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQW5p
bWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRp
bWluZ0Z1bmN0aW9uID0gMCkKKyAgICBBbmltYXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgVGlt
aW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKICAgICAgICAgOiBtX2tleVRp
bWUoa2V5VGltZSkKICAgICAgICAgLCBtX3RpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKQog
ICAgIHsKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92
ZWQgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KIGNsYXNzIEZsb2F0QW5pbWF0aW9uVmFsdWUgOiBw
dWJsaWMgQW5pbWF0aW9uVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEZs
b2F0QW5pbWF0aW9uVmFsdWU+IGNyZWF0ZShkb3VibGUga2V5VGltZSwgZmxvYXQgdmFsdWUsIFBh
c3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uID0gMCkKKyAgICBzdGF0aWMg
UGFzc093blB0cjxGbG9hdEFuaW1hdGlvblZhbHVlPiBjcmVhdGUoZG91YmxlIGtleVRpbWUsIGZs
b2F0IHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKGtleVRp
bWUsIHZhbHVlLCB0aW1pbmdGdW5jdGlvbikpOwogICAgIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBw
dWJsaWM6CiAgICAgZmxvYXQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAKIHBy
aXZhdGU6Ci0gICAgRmxvYXRBbmltYXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgZmxvYXQgdmFs
dWUsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uKQorICAgIEZsb2F0
QW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGZsb2F0IHZhbHVlLCBUaW1pbmdGdW5jdGlv
biogdGltaW5nRnVuY3Rpb24pCiAgICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGlt
aW5nRnVuY3Rpb24pCiAgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CkBAIC0xMjMsNyAr
MTIzLDcgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92ZWQgdG8gaXRzIG93biBo
ZWFkZXIgZmlsZS4KIGNsYXNzIFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlIDogcHVibGljIEFuaW1h
dGlvblZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxUcmFuc2Zvcm1Bbmlt
YXRpb25WYWx1ZT4gY3JlYXRlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRp
b25zJiB2YWx1ZSwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24gPSAw
KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPiBjcmVhdGUo
ZG91YmxlIGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdG
dW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGlt
aW5nRnVuY3Rpb24pKTsKICAgICB9CkBAIC0xMzYsNyArMTM2LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsg
fQogCiBwcml2YXRlOgotICAgIFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1l
LCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB2YWx1ZSwgUGFzc1JlZlB0cjxUaW1pbmdGdW5j
dGlvbj4gdGltaW5nRnVuY3Rpb24pCisgICAgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoZG91Ymxl
IGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlv
biogdGltaW5nRnVuY3Rpb24pCiAgICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGlt
aW5nRnVuY3Rpb24pCiAgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CkBAIC0xNTAsNyAr
MTUwLDcgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92ZWQgdG8gaXRzIG93biBo
ZWFkZXIgZmlsZS4KIGNsYXNzIEZpbHRlckFuaW1hdGlvblZhbHVlIDogcHVibGljIEFuaW1hdGlv
blZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxGaWx0ZXJBbmltYXRpb25W
YWx1ZT4gY3JlYXRlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiB2YWx1
ZSwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24gPSAwKQorICAgIHN0
YXRpYyBQYXNzT3duUHRyPEZpbHRlckFuaW1hdGlvblZhbHVlPiBjcmVhdGUoZG91YmxlIGtleVRp
bWUsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5n
RnVuY3Rpb24gPSBudWxscHRyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBG
aWx0ZXJBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKICAg
ICB9CkBAIC0xNjMsNyArMTYzLDcgQEAgcHVibGljOgogICAgIGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCiBwcml2YXRlOgotICAgIEZp
bHRlckFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25z
JiB2YWx1ZSwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24pCisgICAg
RmlsdGVyQW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24pCiAgICAgICAgIDogQW5p
bWF0aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVuY3Rpb24pCiAgICAgICAgICwgbV92YWx1ZSh2
YWx1ZSkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAkocmV2aXNpb24gMTY3NDQzKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNjYsOCAr
MjM2Niw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbigKICAgICAg
ICAgaWYgKCFrZXlmcmFtZVN0eWxlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICAKLSAgICAgICAgLy8gR2V0IHRpbWluZyBmdW5jdGlvbi4KLSAgICAgICAgUmVmUHRyPFRpbWlu
Z0Z1bmN0aW9uPiB0ZiA9IGtleWZyYW1lU3R5bGUtPmhhc0FuaW1hdGlvbnMoKSA/ICgqa2V5ZnJh
bWVTdHlsZS0+YW5pbWF0aW9ucygpKS5hbmltYXRpb24oMCkudGltaW5nRnVuY3Rpb24oKSA6IDA7
CisgICAgICAgIFRpbWluZ0Z1bmN0aW9uKiB0ZiA9IGN1cnJlbnRLZXlmcmFtZS50aW1pbmdGdW5j
dGlvbihrZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKICAgICAgICAgCiAgICAgICAgIGJvb2wg
aXNGaXJzdE9yTGFzdEtleWZyYW1lID0ga2V5ID09IDAgfHwga2V5ID09IDE7CiAgICAgICAgIGlm
ICgoaGFzVHJhbnNmb3JtICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtleWZy
YW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAJKHJl
dmlzaW9uIDE2NzQ0MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFt
ZUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxMCArMjEsMjcgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIktleWZyYW1lTGlzdC5oIgorCisjaW5jbHVkZSAiQW5pbWF0
aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorVGltaW5nRnVuY3Rpb24qIEtleWZyYW1lVmFsdWU6OnRpbWluZ0Z1bmN0aW9uKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSkgY29uc3QKK3sKKyAgICBjb25zdCBSZW5kZXJTdHlsZSoga2V5ZnJh
bWVTdHlsZSA9IHN0eWxlKCk7CisgICAgaWYgKCFrZXlmcmFtZVN0eWxlIHx8ICFrZXlmcmFtZVN0
eWxlLT5hbmltYXRpb25zKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBrZXlmcmFtZVN0eWxlLT5hbmltYXRpb25zKCktPnNpemUoKTsgKytp
KSB7CisgICAgICAgIGNvbnN0IEFuaW1hdGlvbiYgYW5pbWF0aW9uID0ga2V5ZnJhbWVTdHlsZS0+
YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSk7CisgICAgICAgIGlmIChuYW1lID09IGFuaW1hdGlv
bi5uYW1lKCkpCisgICAgICAgICAgICByZXR1cm4gYW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9uKCku
Z2V0KCk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEtleWZyYW1lTGlzdDo6
fktleWZyYW1lTGlzdCgpCiB7CiAgICAgY2xlYXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmgJKHJldmlzaW9uIDE2NzQ0MykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNiArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJT
dHlsZTsKK2NsYXNzIFRpbWluZ0Z1bmN0aW9uOwogCiBjbGFzcyBLZXlmcmFtZVZhbHVlIHsKIHB1
YmxpYzoKQEAgLTU0LDYgKzU1LDggQEAgcHVibGljOgogICAgIGNvbnN0IFJlbmRlclN0eWxlKiBz
dHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IH0KICAgICB2b2lkIHNldFN0eWxl
KFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlKSB7IG1fc3R5bGUgPSBzdHlsZTsgfQogCisg
ICAgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZG91YmxlIG1fa2V5OwogICAgIEhhc2hTZXQ8Q1NT
UHJvcGVydHlJRD4gbV9wcm9wZXJ0aWVzOyAvLyBUaGUgcHJvcGVydGllcyBzcGVjaWZpZWQgaW4g
dGhpcyBrZXlmcmFtZS4KSW5kZXg6IFdlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNz
Y2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Lnhjd29ya3Nw
YWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQkocmV2aXNpb24g
MTY3NDQzKQorKysgV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxs
IFNvdXJjZS54Y3NjaGVtZQkod29ya2luZyBjb3B5KQpAQCAtMTMwLDYgKzEzMCwxNSBAQAogICAg
ICAgYnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVnIj4KICAgICAgIDxUZXN0YWJsZXM+CiAgICAg
ICA8L1Rlc3RhYmxlcz4KKyAgICAgIDxNYWNyb0V4cGFuc2lvbj4KKyAgICAgICAgIDxCdWlsZGFi
bGVSZWZlcmVuY2UKKyAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJpbWFyeSIK
KyAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiOEQxMTA3MjYwNDg2Q0VCODAwRTQ3
MDkwIgorICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJNaW5pQnJvd3Nlci5hcHAiCisgICAg
ICAgICAgICBCbHVlcHJpbnROYW1lID0gIk1pbmlCcm93c2VyIgorICAgICAgICAgICAgUmVmZXJl
bmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6VG9vbHMvTWluaUJyb3dzZXIvTWluaUJyb3dzZXIu
eGNvZGVwcm9qIj4KKyAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAgICAgPC9NYWNy
b0V4cGFuc2lvbj4KICAgIDwvVGVzdEFjdGlvbj4KICAgIDxMYXVuY2hBY3Rpb24KICAgICAgIHNl
bGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5EZWJ1
Z2dlci5MTERCIgpAQCAtMTQwLDEwICsxNDksNDEgQEAKICAgICAgIGlnbm9yZXNQZXJzaXN0ZW50
U3RhdGVPbkxhdW5jaCA9ICJZRVMiCiAgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZ
RVMiCiAgICAgICBhbGxvd0xvY2F0aW9uU2ltdWxhdGlvbiA9ICJZRVMiPgotICAgICAgPFBhdGhS
dW5uYWJsZQotICAgICAgICAgRmlsZVBhdGggPSAiL0FwcGxpY2F0aW9ucy9TYWZhcmkuYXBwL0Nv
bnRlbnRzL01hY09TL1NhZmFyaUZvcldlYktpdERldmVsb3BtZW50Ij4KLSAgICAgIDwvUGF0aFJ1
bm5hYmxlPgorICAgICAgPEJ1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZT4KKyAgICAgICAgIDxCdWls
ZGFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJpbWFy
eSIKKyAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiOEQxMTA3MjYwNDg2Q0VCODAw
RTQ3MDkwIgorICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJNaW5pQnJvd3Nlci5hcHAiCisg
ICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIk1pbmlCcm93c2VyIgorICAgICAgICAgICAgUmVm
ZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6VG9vbHMvTWluaUJyb3dzZXIvTWluaUJyb3dz
ZXIueGNvZGVwcm9qIj4KKyAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAgICAgPC9C
dWlsZGFibGVQcm9kdWN0UnVubmFibGU+CiAgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+CisgICAg
ICAgICA8QWRkaXRpb25hbE9wdGlvbgorICAgICAgICAgICAga2V5ID0gIk1hbGxvY1NjcmliYmxl
IgorICAgICAgICAgICAgdmFsdWUgPSAiIgorICAgICAgICAgICAgaXNFbmFibGVkID0gIllFUyI+
CisgICAgICAgICA8L0FkZGl0aW9uYWxPcHRpb24+CisgICAgICAgICA8QWRkaXRpb25hbE9wdGlv
bgorICAgICAgICAgICAga2V5ID0gIkRZTERfSU5TRVJUX0xJQlJBUklFUyIKKyAgICAgICAgICAg
IHZhbHVlID0gIi91c3IvbGliL2xpYmdtYWxsb2MuZHlsaWIiCisgICAgICAgICAgICBpc0VuYWJs
ZWQgPSAiWUVTIj4KKyAgICAgICAgIDwvQWRkaXRpb25hbE9wdGlvbj4KKyAgICAgICAgIDxBZGRp
dGlvbmFsT3B0aW9uCisgICAgICAgICAgICBrZXkgPSAiTWFsbG9jR3VhcmRFZGdlcyIKKyAgICAg
ICAgICAgIHZhbHVlID0gIiIKKyAgICAgICAgICAgIGlzRW5hYmxlZCA9ICJZRVMiPgorICAgICAg
ICAgPC9BZGRpdGlvbmFsT3B0aW9uPgorICAgICAgICAgPEFkZGl0aW9uYWxPcHRpb24KKyAgICAg
ICAgICAgIGtleSA9ICJNYWxsb2NTdGFja0xvZ2dpbmciCisgICAgICAgICAgICB2YWx1ZSA9ICIi
CisgICAgICAgICAgICBpc0VuYWJsZWQgPSAiWUVTIj4KKyAgICAgICAgIDwvQWRkaXRpb25hbE9w
dGlvbj4KKyAgICAgICAgIDxBZGRpdGlvbmFsT3B0aW9uCisgICAgICAgICAgICBrZXkgPSAiTlNa
b21iaWVFbmFibGVkIgorICAgICAgICAgICAgdmFsdWUgPSAiWUVTIgorICAgICAgICAgICAgaXNF
bmFibGVkID0gIllFUyI+CisgICAgICAgICA8L0FkZGl0aW9uYWxPcHRpb24+CiAgICAgICA8L0Fk
ZGl0aW9uYWxPcHRpb25zPgogICAgPC9MYXVuY2hBY3Rpb24+CiAgICA8UHJvZmlsZUFjdGlvbgpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMTY3NDQzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDQtMTYgIEh1YW5nIERvbmdzdW5nICA8
bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgTWFrZSBSZW5kZXJMYXllckJhY2tp
bmcgZ2V0IHRoZSB0aW1pbmdGdW5jdGlvbiBvZiB0aGUgY29ycmVjdCBhbmltYXRpb24uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA2MzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGFuIGVsZW1l
bnQgb24gYSBjb21wb3NpdGluZyBsYXllciBoYXMgbXVsdGlwbGUgYW5pbWF0aW9ucyB0aGF0IGhh
dmUKKyAgICAgICAgZGlmZmVyZW50IHRpbWluZ0Z1bmN0aW9ucywgdGhlIHByb2dyZXNzIG9mIGVh
Y2ggYW5pbWF0aW9uIHNob3VsZCBiZQorICAgICAgICBjYWxjdWxhdGVkIHVzaW5nIGl0cyByZXNw
ZWN0aXZlIHRpbWluZ0Z1bmN0aW9uIGluIEFjY2VsZXJhdGVkCisgICAgICAgIENvbXBvc2l0aW5n
LgorCisgICAgICAgICogYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rp
b25zLXRyYW5zZm9ybS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMv
a2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0uaHRtbDogQWRkZWQu
CisKIDIwMTQtMDQtMTYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgRnVsbHNjcmVlbiBtZWRpYSBjb250cm9scyBhcmUgdW51c2FibGUgaW4gcGFnaW5hdGlvbiBt
b2RlCkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWlu
Zy1mdW5jdGlvbnMtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNm
b3JtLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FuaW1hdGlvbnMv
a2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNyBAQAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0i
IHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0
bzogMSwwLDAsMSw1MCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJi
b3giIGVsZW1lbnQgYXQgMXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxMDAsMAor
UEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0iIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDEu
NXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMSwwLDAsMSwxNTAsMAorUEFTUyAtICJvcGFjaXR5
IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAwLjVzIHNhdyBzb21ldGhpbmcgY2xvc2Ug
dG86IDEKK1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC45
cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxCitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZv
ciAiYm94IiBlbGVtZW50IGF0IDEuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMC41CisKSW5k
ZXg6IExheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0
aW9ucy10cmFuc2Zvcm0uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hbmltYXRpb25z
L2tleWZyYW1lLW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNmb3JtLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWlu
Zy1mdW5jdGlvbnMtdHJhbnNmb3JtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NCBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgICNib3ggeworICAgICAgICAg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
ICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9u
OgorICAgICAgICAgICAgICAgIGhvcml6b250YWwgMnMgbGluZWFyIDEgYWx0ZXJuYXRlLAorICAg
ICAgICAgICAgICAgIGZhZGUgMnMgc3RlcHMoMikgMSBhbHRlcm5hdGU7CisgICAgICAgIH0KKwor
ICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgaG9yaXpvbnRhbCB7CisgICAgICAgICAgICBmcm9t
IHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsgfQorICAgICAgICAgICAgdG8g
ICB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMHB4KTsgfQorICAgICAgICB9CisK
KyAgICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZhZGUgeworICAgICAgICAgICAgZnJvbSB7IG9w
YWNpdHk6IDEuMDsgfQorICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAwLjA7IH0KKyAgICAgICAg
fQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVz
dC1oZWxwZXJzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgi
PgorICAgICAgICBjb25zdCBleHBlY3RlZFZhbHVlcyA9IFsKKyAgICAgICAgICAvLyBbYW5pbWF0
aW9uLW5hbWUsIHRpbWUsIGVsZW1lbnQtaWQsIHByb3BlcnR5LCBleHBlY3RlZC12YWx1ZSwgdG9s
ZXJhbmNlXQorICAgICAgICAgIFsiaG9yaXpvbnRhbCIsIDAuNSwgImJveCIsICJ3ZWJraXRUcmFu
c2Zvcm0iLCBbMSwwLDAsMSwgNTAsMF0sIDIwXSwKKyAgICAgICAgICBbImhvcml6b250YWwiLCAx
LjAsICJib3giLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsMTAwLDBdLCAyMF0sCisgICAg
ICAgICAgWyJob3Jpem9udGFsIiwgMS41LCAiYm94IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAs
MCwxLDE1MCwwXSwgMjBdLAorICAgICAgICAgIFsiZmFkZSIsIDAuNSwgImJveCIsICJvcGFjaXR5
IiwgMS4wLCAwLjE1XSwKKyAgICAgICAgICBbImZhZGUiLCAwLjksICJib3giLCAib3BhY2l0eSIs
IDEuMCwgMC4xNV0sCisgICAgICAgICAgWyJmYWRlIiwgMS41LCAiYm94IiwgIm9wYWNpdHkiLCAw
LjUsIDAuMTVdLAorICAgICAgICBdOworCisgICAgICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0
ZWRWYWx1ZXMpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0i
Ym94Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229583</attachid>
            <date>2014-04-17 15:28:52 -0700</date>
            <delta_ts>2014-04-17 17:31:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100632-20140417152831.patch</filename>
            <type>text/plain</type>
            <size>13185</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzQ0MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA0LTE2ICBIdWFuZyBE
b25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIE1ha2UgUmVuZGVy
TGF5ZXJCYWNraW5nIGdldCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGNvcnJlY3QgYW5pbWF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
NjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hl
biBhbiBlbGVtZW50IGhhcyBtdWx0aXBsZSBhbmltYXRpb25zIHRoYXQgaGF2ZSBkaWZmZXJlbnQg
dGltaW5nRnVuY3Rpb25zLAorICAgICAgICB0aGUgcHJvZ3Jlc3Mgb2YgZWFjaCBhbmltYXRpb24g
c2hvdWxkIGJlIGNhbGN1bGF0ZWQgdXNpbmcgaXRzIHJlc3BlY3RpdmUKKyAgICAgICAgdGltaW5n
RnVuY3Rpb24uIEJ1dCBhdCB0aGlzIHBvaW50LCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGZp
cnN0IGFuaW1hdGlvbiBpcworICAgICAgICBvbmx5IHVzZWQgaW4gUmVuZGVyTGF5ZXJCYWNraW5n
OjpzdGFydEFuaW1hdGlvbigpLCByZWdhcmRsZXNzIG9mIGhvdyBtYW55CisgICAgICAgIGFuaW1h
dGlvbnMgdGhlIGVsZW1lbnQgaGFzLgorCisgICAgICAgIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5
TmFtZSgpIHdhcyBpbnRyb2R1Y2VkIGluIHI4OTQ2MiBzbyB0aGF0IHRoZQorICAgICAgICB0aW1p
bmdGdW5jdGlvbiBvZiB0aGUgY29ycmVjdCBhbmltYXRpb24gc2VhcmNoZWQgYnkgaXRzIG5hbWUg
d291bGQgYmUKKyAgICAgICAgdXNlZC4gVGhpcyBwYXRjaCBtb3ZlcyB0aGUgZnVuY3Rpb24gdG8g
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24oKQorICAgICAgICBzbyB0aGF0IFJlbmRlckxh
eWVyQmFja2luZyByZXVzZXMgdGhpcyBtZXRob2QuCisKKyAgICAgICAgVGVzdDogYW5pbWF0aW9u
cy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCisKKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6ZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3Bl
cnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChLZXlmcmFtZVZhbHVlKToKKwogMjAxNC0wNC0xNiAgQnJlbnQgRnVsZ2hhbSAg
PGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBBIGZldyBmaW5hbCBjbGVhbnVw
cyB0byB0aGUgRGF0YU9iamVjdCBjbGFzc2VzLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAkocmV2aXNpb24gMTY3NDQz
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NSwxOSArNjUsNiBAQCBLZXlmcmFtZUFuaW1hdGlvbjo6fktl
eWZyYW1lQW5pbWF0aW9uKCkKICAgICAgICAgZW5kQW5pbWF0aW9uKCk7CiB9CiAKLXN0YXRpYyBj
b25zdCBBbmltYXRpb24qIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5TmFtZShjb25zdCBSZW5kZXJT
dHlsZSogc3R5bGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKLXsKLSAgICBpZiAoIXN0eWxl
LT5hbmltYXRpb25zKCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzdHlsZS0+YW5pbWF0aW9ucygpLT5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAo
bmFtZSA9PSBzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSkubmFtZSgpKQotICAgICAg
ICAgICAgcmV0dXJuICZzdHlsZS0+YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSk7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmZldGNoSW50ZXJ2
YWxFbmRwb2ludHNGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBjb25zdCBSZW5k
ZXJTdHlsZSomIGZyb21TdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqJiB0b1N0eWxlLCBkb3VibGUm
IHByb2cpIGNvbnN0CiB7CiAgICAgLy8gRmluZCB0aGUgZmlyc3Qga2V5CkBAIC0xMzAsMTEgKzEx
Nyw3IEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmZldGNoSW50ZXJ2YWxFbmQKICAgICBvZmZz
ZXQgPSBwcmV2S2V5ZnJhbWUua2V5KCk7CiAgICAgc2NhbGUgPSAxLjAgLyAobmV4dEtleWZyYW1l
LmtleSgpIC0gcHJldktleWZyYW1lLmtleSgpKTsKIAotICAgIGNvbnN0IFRpbWluZ0Z1bmN0aW9u
KiB0aW1pbmdGdW5jdGlvbiA9IDA7Ci0gICAgaWYgKGNvbnN0IEFuaW1hdGlvbiogbWF0Y2hlZEFu
aW1hdGlvbiA9IGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5TmFtZShmcm9tU3R5bGUsIG5hbWUoKSkp
Ci0gICAgICAgIHRpbWluZ0Z1bmN0aW9uID0gbWF0Y2hlZEFuaW1hdGlvbi0+dGltaW5nRnVuY3Rp
b24oKS5nZXQoKTsKLQotICAgIHByb2cgPSBwcm9ncmVzcyhzY2FsZSwgb2Zmc2V0LCB0aW1pbmdG
dW5jdGlvbik7CisgICAgcHJvZyA9IHByb2dyZXNzKHNjYWxlLCBvZmZzZXQsIHByZXZLZXlmcmFt
ZS50aW1pbmdGdW5jdGlvbihuYW1lKCkpKTsKIH0KIAogdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6
YW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24qIGNvbXBvc2l0ZUFuaW1hdGlvbiwgUmVuZGVyRWxl
bWVudCosIGNvbnN0IFJlbmRlclN0eWxlKiwgUmVuZGVyU3R5bGUqIHRhcmdldFN0eWxlLCBSZWZQ
dHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAkocmV2aXNpb24gMTY3NDQzKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8
QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0gICAgQW5p
bWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRp
bWluZ0Z1bmN0aW9uID0gMCkKKyAgICBBbmltYXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgVGlt
aW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKICAgICAgICAgOiBtX2tleVRp
bWUoa2V5VGltZSkKICAgICAgICAgLCBtX3RpbWluZ0Z1bmN0aW9uKHRpbWluZ0Z1bmN0aW9uKQog
ICAgIHsKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92
ZWQgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KIGNsYXNzIEZsb2F0QW5pbWF0aW9uVmFsdWUgOiBw
dWJsaWMgQW5pbWF0aW9uVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEZs
b2F0QW5pbWF0aW9uVmFsdWU+IGNyZWF0ZShkb3VibGUga2V5VGltZSwgZmxvYXQgdmFsdWUsIFBh
c3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uID0gMCkKKyAgICBzdGF0aWMg
UGFzc093blB0cjxGbG9hdEFuaW1hdGlvblZhbHVlPiBjcmVhdGUoZG91YmxlIGtleVRpbWUsIGZs
b2F0IHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKGtleVRp
bWUsIHZhbHVlLCB0aW1pbmdGdW5jdGlvbikpOwogICAgIH0KQEAgLTExMCw3ICsxMTAsNyBAQCBw
dWJsaWM6CiAgICAgZmxvYXQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAKIHBy
aXZhdGU6Ci0gICAgRmxvYXRBbmltYXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgZmxvYXQgdmFs
dWUsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uKQorICAgIEZsb2F0
QW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGZsb2F0IHZhbHVlLCBUaW1pbmdGdW5jdGlv
biogdGltaW5nRnVuY3Rpb24pCiAgICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGlt
aW5nRnVuY3Rpb24pCiAgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CkBAIC0xMjMsNyAr
MTIzLDcgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92ZWQgdG8gaXRzIG93biBo
ZWFkZXIgZmlsZS4KIGNsYXNzIFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlIDogcHVibGljIEFuaW1h
dGlvblZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxUcmFuc2Zvcm1Bbmlt
YXRpb25WYWx1ZT4gY3JlYXRlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRp
b25zJiB2YWx1ZSwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24gPSAw
KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPiBjcmVhdGUo
ZG91YmxlIGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdG
dW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGlt
aW5nRnVuY3Rpb24pKTsKICAgICB9CkBAIC0xMzYsNyArMTM2LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsg
fQogCiBwcml2YXRlOgotICAgIFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1l
LCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB2YWx1ZSwgUGFzc1JlZlB0cjxUaW1pbmdGdW5j
dGlvbj4gdGltaW5nRnVuY3Rpb24pCisgICAgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoZG91Ymxl
IGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlv
biogdGltaW5nRnVuY3Rpb24pCiAgICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGlt
aW5nRnVuY3Rpb24pCiAgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CkBAIC0xNTAsNyAr
MTUwLDcgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92ZWQgdG8gaXRzIG93biBo
ZWFkZXIgZmlsZS4KIGNsYXNzIEZpbHRlckFuaW1hdGlvblZhbHVlIDogcHVibGljIEFuaW1hdGlv
blZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxGaWx0ZXJBbmltYXRpb25W
YWx1ZT4gY3JlYXRlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiB2YWx1
ZSwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24gPSAwKQorICAgIHN0
YXRpYyBQYXNzT3duUHRyPEZpbHRlckFuaW1hdGlvblZhbHVlPiBjcmVhdGUoZG91YmxlIGtleVRp
bWUsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5n
RnVuY3Rpb24gPSBudWxscHRyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBG
aWx0ZXJBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKICAg
ICB9CkBAIC0xNjMsNyArMTYzLDcgQEAgcHVibGljOgogICAgIGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCiBwcml2YXRlOgotICAgIEZp
bHRlckFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25z
JiB2YWx1ZSwgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGltaW5nRnVuY3Rpb24pCisgICAg
RmlsdGVyQW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24pCiAgICAgICAgIDogQW5p
bWF0aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVuY3Rpb24pCiAgICAgICAgICwgbV92YWx1ZSh2
YWx1ZSkKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAkocmV2aXNpb24gMTY3NDQzKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNjYsOCAr
MjM2Niw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydEFuaW1hdGlvbigKICAgICAg
ICAgaWYgKCFrZXlmcmFtZVN0eWxlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICAKLSAgICAgICAgLy8gR2V0IHRpbWluZyBmdW5jdGlvbi4KLSAgICAgICAgUmVmUHRyPFRpbWlu
Z0Z1bmN0aW9uPiB0ZiA9IGtleWZyYW1lU3R5bGUtPmhhc0FuaW1hdGlvbnMoKSA/ICgqa2V5ZnJh
bWVTdHlsZS0+YW5pbWF0aW9ucygpKS5hbmltYXRpb24oMCkudGltaW5nRnVuY3Rpb24oKSA6IDA7
CisgICAgICAgIFRpbWluZ0Z1bmN0aW9uKiB0ZiA9IGN1cnJlbnRLZXlmcmFtZS50aW1pbmdGdW5j
dGlvbihrZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKICAgICAgICAgCiAgICAgICAgIGJvb2wg
aXNGaXJzdE9yTGFzdEtleWZyYW1lID0ga2V5ID09IDAgfHwga2V5ID09IDE7CiAgICAgICAgIGlm
ICgoaGFzVHJhbnNmb3JtICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtleWZy
YW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAJKHJl
dmlzaW9uIDE2NzQ0MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFt
ZUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxMCArMjEsMjcgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIktleWZyYW1lTGlzdC5oIgorCisjaW5jbHVkZSAiQW5pbWF0
aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorVGltaW5nRnVuY3Rpb24qIEtleWZyYW1lVmFsdWU6OnRpbWluZ0Z1bmN0aW9uKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSkgY29uc3QKK3sKKyAgICBjb25zdCBSZW5kZXJTdHlsZSoga2V5ZnJh
bWVTdHlsZSA9IHN0eWxlKCk7CisgICAgaWYgKCFrZXlmcmFtZVN0eWxlIHx8ICFrZXlmcmFtZVN0
eWxlLT5hbmltYXRpb25zKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBrZXlmcmFtZVN0eWxlLT5hbmltYXRpb25zKCktPnNpemUoKTsgKytp
KSB7CisgICAgICAgIGNvbnN0IEFuaW1hdGlvbiYgYW5pbWF0aW9uID0ga2V5ZnJhbWVTdHlsZS0+
YW5pbWF0aW9ucygpLT5hbmltYXRpb24oaSk7CisgICAgICAgIGlmIChuYW1lID09IGFuaW1hdGlv
bi5uYW1lKCkpCisgICAgICAgICAgICByZXR1cm4gYW5pbWF0aW9uLnRpbWluZ0Z1bmN0aW9uKCku
Z2V0KCk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIEtleWZyYW1lTGlzdDo6
fktleWZyYW1lTGlzdCgpCiB7CiAgICAgY2xlYXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmgJKHJldmlzaW9uIDE2NzQ0MykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNiArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJT
dHlsZTsKK2NsYXNzIFRpbWluZ0Z1bmN0aW9uOwogCiBjbGFzcyBLZXlmcmFtZVZhbHVlIHsKIHB1
YmxpYzoKQEAgLTU0LDYgKzU1LDggQEAgcHVibGljOgogICAgIGNvbnN0IFJlbmRlclN0eWxlKiBz
dHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IH0KICAgICB2b2lkIHNldFN0eWxl
KFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlKSB7IG1fc3R5bGUgPSBzdHlsZTsgfQogCisg
ICAgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZG91YmxlIG1fa2V5OwogICAgIEhhc2hTZXQ8Q1NT
UHJvcGVydHlJRD4gbV9wcm9wZXJ0aWVzOyAvLyBUaGUgcHJvcGVydGllcyBzcGVjaWZpZWQgaW4g
dGhpcyBrZXlmcmFtZS4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzQ0MykKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE0LTA0LTE2ICBI
dWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIE1ha2Ug
UmVuZGVyTGF5ZXJCYWNraW5nIGdldCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGNvcnJlY3Qg
YW5pbWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAwNjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2hlbiBhbiBlbGVtZW50IG9uIGEgY29tcG9zaXRpbmcgbGF5ZXIgaGFzIG11bHRpcGxlIGFu
aW1hdGlvbnMgdGhhdCBoYXZlCisgICAgICAgIGRpZmZlcmVudCB0aW1pbmdGdW5jdGlvbnMsIHRo
ZSBwcm9ncmVzcyBvZiBlYWNoIGFuaW1hdGlvbiBzaG91bGQgYmUKKyAgICAgICAgY2FsY3VsYXRl
ZCB1c2luZyBpdHMgcmVzcGVjdGl2ZSB0aW1pbmdGdW5jdGlvbiBpbiBBY2NlbGVyYXRlZAorICAg
ICAgICBDb21wb3NpdGluZy4KKworICAgICAgICAqIGFuaW1hdGlvbnMva2V5ZnJhbWUtbXVsdGlw
bGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBhbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNm
b3JtLmh0bWw6IEFkZGVkLgorCiAyMDE0LTA0LTE2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIEZ1bGxzY3JlZW4gbWVkaWEgY29udHJvbHMgYXJlIHVudXNhYmxl
IGluIHBhZ2luYXRpb24gbW9kZQpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFt
ZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmct
ZnVuY3Rpb25zLXRyYW5zZm9ybS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNm
b3JtLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKK1BBU1MgLSAi
d2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAwLjVzIHNhdyBz
b21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsNTAsMAorUEFTUyAtICJ3ZWJraXRUcmFuc2Zvcm0i
IHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0IDFzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86
IDEsMCwwLDEsMTAwLDAKK1BBU1MgLSAid2Via2l0VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJv
eCIgZWxlbWVudCBhdCAxLjVzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEsMCwwLDEsMTUwLDAK
K1BBU1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMC41cyBzYXcg
c29tZXRoaW5nIGNsb3NlIHRvOiAxCitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94
IiBlbGVtZW50IGF0IDAuOXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMQorUEFTUyAtICJvcGFj
aXR5IiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAxLjVzIHNhdyBzb21ldGhpbmcgY2xv
c2UgdG86IDAuNQorCkluZGV4OiBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2tleWZyYW1lLW11bHRp
cGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNmb3JtLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5z
Zm9ybS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFt
ZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNDQgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAj
Ym94IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBtYXJnaW46
IDIwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgICAgICAgICAgICAt
d2Via2l0LWFuaW1hdGlvbjoKKyAgICAgICAgICAgICAgICBob3Jpem9udGFsIDJzIGxpbmVhciAx
IGFsdGVybmF0ZSwKKyAgICAgICAgICAgICAgICBmYWRlIDJzIHN0ZXBzKDIpIDEgYWx0ZXJuYXRl
OworICAgICAgICB9CisKKyAgICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGhvcml6b250YWwgewor
ICAgICAgICAgICAgZnJvbSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7IH0K
KyAgICAgICAgICAgIHRvICAgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDBweCk7
IH0KKyAgICAgICAgfQorCisgICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBmYWRlIHsKKyAgICAg
ICAgICAgIGZyb20geyBvcGFjaXR5OiAxLjA7IH0KKyAgICAgICAgICAgIHRvIHsgb3BhY2l0eTog
MC4wOyB9CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFy
c2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZXMgPSBbCisgICAg
ICAgICAgLy8gW2FuaW1hdGlvbi1uYW1lLCB0aW1lLCBlbGVtZW50LWlkLCBwcm9wZXJ0eSwgZXhw
ZWN0ZWQtdmFsdWUsIHRvbGVyYW5jZV0KKyAgICAgICAgICBbImhvcml6b250YWwiLCAwLjUsICJi
b3giLCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsIDUwLDBdLCAyMF0sCisgICAgICAgICAg
WyJob3Jpem9udGFsIiwgMS4wLCAiYm94IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLDEw
MCwwXSwgMjBdLAorICAgICAgICAgIFsiaG9yaXpvbnRhbCIsIDEuNSwgImJveCIsICJ3ZWJraXRU
cmFuc2Zvcm0iLCBbMSwwLDAsMSwxNTAsMF0sIDIwXSwKKyAgICAgICAgICBbImZhZGUiLCAwLjUs
ICJib3giLCAib3BhY2l0eSIsIDEuMCwgMC4xNV0sCisgICAgICAgICAgWyJmYWRlIiwgMC45LCAi
Ym94IiwgIm9wYWNpdHkiLCAxLjAsIDAuMTVdLAorICAgICAgICAgIFsiZmFkZSIsIDEuNSwgImJv
eCIsICJvcGFjaXR5IiwgMC41LCAwLjE1XSwKKyAgICAgICAgXTsKKworICAgICAgICBydW5Bbmlt
YXRpb25UZXN0KGV4cGVjdGVkVmFsdWVzKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxkaXYgaWQ9ImJveCI+PC9kaXY+CisgICAgPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229600</attachid>
            <date>2014-04-17 17:31:55 -0700</date>
            <delta_ts>2014-04-17 17:39:27 -0700</delta_ts>
            <desc>Add build fix for EFL</desc>
            <filename>bug-100632-20140417173133.patch</filename>
            <type>text/plain</type>
            <size>15589</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzQ2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE0LTA0LTE2ICBIdWFuZyBE
b25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIE1ha2UgUmVuZGVy
TGF5ZXJCYWNraW5nIGdldCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGNvcnJlY3QgYW5pbWF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
NjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hl
biBhbiBlbGVtZW50IGhhcyBtdWx0aXBsZSBhbmltYXRpb25zIHRoYXQgaGF2ZSBkaWZmZXJlbnQg
dGltaW5nRnVuY3Rpb25zLAorICAgICAgICB0aGUgcHJvZ3Jlc3Mgb2YgZWFjaCBhbmltYXRpb24g
c2hvdWxkIGJlIGNhbGN1bGF0ZWQgdXNpbmcgaXRzIHJlc3BlY3RpdmUKKyAgICAgICAgdGltaW5n
RnVuY3Rpb24uIEJ1dCBhdCB0aGlzIHBvaW50LCB0aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGZp
cnN0IGFuaW1hdGlvbiBpcworICAgICAgICBvbmx5IHVzZWQgaW4gUmVuZGVyTGF5ZXJCYWNraW5n
OjpzdGFydEFuaW1hdGlvbigpLCByZWdhcmRsZXNzIG9mIGhvdyBtYW55CisgICAgICAgIGFuaW1h
dGlvbnMgdGhlIGVsZW1lbnQgaGFzLgorCisgICAgICAgIGdldEFuaW1hdGlvbkZyb21TdHlsZUJ5
TmFtZSgpIHdhcyBpbnRyb2R1Y2VkIGluIHI4OTQ2MiBzbyB0aGF0IHRoZQorICAgICAgICB0aW1p
bmdGdW5jdGlvbiBvZiB0aGUgY29ycmVjdCBhbmltYXRpb24gc2VhcmNoZWQgYnkgaXRzIG5hbWUg
d291bGQgYmUKKyAgICAgICAgdXNlZC4gVGhpcyBwYXRjaCBtb3ZlcyB0aGUgZnVuY3Rpb24gdG8g
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24oKQorICAgICAgICBzbyB0aGF0IFJlbmRlckxh
eWVyQmFja2luZyByZXVzZXMgdGhpcyBtZXRob2QuCisKKyAgICAgICAgVGVzdDogYW5pbWF0aW9u
cy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCisKKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpLZXlmcmFtZUFuaW1hdGlvbjo6ZmV0Y2hJbnRlcnZhbEVuZHBvaW50c0ZvclByb3Bl
cnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
S2V5ZnJhbWVWYWx1ZTo6dGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChLZXlmcmFtZVZhbHVlKToKKwogMjAxNC0wNC0xNyAgQmV0aCBEYWtpbiAgPGJk
YWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgSGl0LXRlc3RpbmcgaXMgaW5jb3JyZWN0IGZvciBw
bHVnaW5zIGluc2lkZSBpZnJhbWVzIHdoZW4gdGhlcmUgaXMgYSAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAJKHJldmlz
aW9uIDE2NzQ2MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5p
bWF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsMTkgKzY1LDYgQEAgS2V5ZnJhbWVBbmlt
YXRpb246On5LZXlmcmFtZUFuaW1hdGlvbigpCiAgICAgICAgIGVuZEFuaW1hdGlvbigpOwogfQog
Ci1zdGF0aWMgY29uc3QgQW5pbWF0aW9uKiBnZXRBbmltYXRpb25Gcm9tU3R5bGVCeU5hbWUoY29u
c3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCi17Ci0gICAg
aWYgKCFzdHlsZS0+YW5pbWF0aW9ucygpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc3R5bGUtPmFuaW1hdGlvbnMoKS0+c2l6ZSgpOyBpKyspIHsKLSAg
ICAgICAgaWYgKG5hbWUgPT0gc3R5bGUtPmFuaW1hdGlvbnMoKS0+YW5pbWF0aW9uKGkpLm5hbWUo
KSkKLSAgICAgICAgICAgIHJldHVybiAmc3R5bGUtPmFuaW1hdGlvbnMoKS0+YW5pbWF0aW9uKGkp
OwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCiB2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpm
ZXRjaEludGVydmFsRW5kcG9pbnRzRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwg
Y29uc3QgUmVuZGVyU3R5bGUqJiBmcm9tU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiYgdG9TdHls
ZSwgZG91YmxlJiBwcm9nKSBjb25zdAogewogICAgIC8vIEZpbmQgdGhlIGZpcnN0IGtleQpAQCAt
MTMwLDExICsxMTcsNyBAQCB2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpmZXRjaEludGVydmFsRW5k
CiAgICAgb2Zmc2V0ID0gcHJldktleWZyYW1lLmtleSgpOwogICAgIHNjYWxlID0gMS4wIC8gKG5l
eHRLZXlmcmFtZS5rZXkoKSAtIHByZXZLZXlmcmFtZS5rZXkoKSk7CiAKLSAgICBjb25zdCBUaW1p
bmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSAwOwotICAgIGlmIChjb25zdCBBbmltYXRpb24q
IG1hdGNoZWRBbmltYXRpb24gPSBnZXRBbmltYXRpb25Gcm9tU3R5bGVCeU5hbWUoZnJvbVN0eWxl
LCBuYW1lKCkpKQotICAgICAgICB0aW1pbmdGdW5jdGlvbiA9IG1hdGNoZWRBbmltYXRpb24tPnRp
bWluZ0Z1bmN0aW9uKCkuZ2V0KCk7Ci0KLSAgICBwcm9nID0gcHJvZ3Jlc3Moc2NhbGUsIG9mZnNl
dCwgdGltaW5nRnVuY3Rpb24pOworICAgIHByb2cgPSBwcm9ncmVzcyhzY2FsZSwgb2Zmc2V0LCBw
cmV2S2V5ZnJhbWUudGltaW5nRnVuY3Rpb24obmFtZSgpKSk7CiB9CiAKIHZvaWQgS2V5ZnJhbWVB
bmltYXRpb246OmFuaW1hdGUoQ29tcG9zaXRlQW5pbWF0aW9uKiBjb21wb3NpdGVBbmltYXRpb24s
IFJlbmRlckVsZW1lbnQqLCBjb25zdCBSZW5kZXJTdHlsZSosIFJlbmRlclN0eWxlKiB0YXJnZXRT
dHlsZSwgUmVmUHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRTdHlsZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgJKHJldmlzaW9u
IDE2NzQ2MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQ
YXNzT3duUHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0ID0gMDsKIAogcHJvdGVjdGVk
OgotICAgIEFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBQYXNzUmVmUHRyPFRpbWluZ0Z1
bmN0aW9uPiB0aW1pbmdGdW5jdGlvbiA9IDApCisgICAgQW5pbWF0aW9uVmFsdWUoZG91YmxlIGtl
eVRpbWUsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCiAgICAgICAg
IDogbV9rZXlUaW1lKGtleVRpbWUpCiAgICAgICAgICwgbV90aW1pbmdGdW5jdGlvbih0aW1pbmdG
dW5jdGlvbikKICAgICB7CkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogU2hv
dWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCiBjbGFzcyBGbG9hdEFuaW1hdGlv
blZhbHVlIDogcHVibGljIEFuaW1hdGlvblZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c093blB0cjxGbG9hdEFuaW1hdGlvblZhbHVlPiBjcmVhdGUoZG91YmxlIGtleVRpbWUsIGZsb2F0
IHZhbHVlLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbiA9IDApCisg
ICAgc3RhdGljIFBhc3NPd25QdHI8RmxvYXRBbmltYXRpb25WYWx1ZT4gY3JlYXRlKGRvdWJsZSBr
ZXlUaW1lLCBmbG9hdCB2YWx1ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVs
bHB0cikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmxvYXRBbmltYXRpb25W
YWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKICAgICB9CkBAIC0xMTAsNyAr
MTEwLDcgQEAgcHVibGljOgogICAgIGZsb2F0IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1
ZTsgfQogCiBwcml2YXRlOgotICAgIEZsb2F0QW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUs
IGZsb2F0IHZhbHVlLCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1pbmdGdW5jdGlvbikK
KyAgICBGbG9hdEFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBmbG9hdCB2YWx1ZSwgVGlt
aW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQogICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtl
eVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQogICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewpA
QCAtMTIzLDcgKzEyMyw3IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogU2hvdWxkIGJlIG1vdmVkIHRv
IGl0cyBvd24gaGVhZGVyIGZpbGUuCiBjbGFzcyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSA6IHB1
YmxpYyBBbmltYXRpb25WYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8VHJh
bnNmb3JtQW5pbWF0aW9uVmFsdWU+IGNyZWF0ZShkb3VibGUga2V5VGltZSwgY29uc3QgVHJhbnNm
b3JtT3BlcmF0aW9ucyYgdmFsdWUsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1
bmN0aW9uID0gMCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxUcmFuc2Zvcm1BbmltYXRpb25WYWx1
ZT4gY3JlYXRlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB2YWx1
ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwg
dmFsdWUsIHRpbWluZ0Z1bmN0aW9uKSk7CiAgICAgfQpAQCAtMTM2LDcgKzEzNiw3IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdmFsdWU7IH0KIAogcHJpdmF0ZToKLSAgICBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZShkb3Vi
bGUga2V5VGltZSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdmFsdWUsIFBhc3NSZWZQdHI8
VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uKQorICAgIFRyYW5zZm9ybUFuaW1hdGlvblZh
bHVlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB2YWx1ZSwgVGlt
aW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQogICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtl
eVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQogICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewpA
QCAtMTUwLDcgKzE1MCw3IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogU2hvdWxkIGJlIG1vdmVkIHRv
IGl0cyBvd24gaGVhZGVyIGZpbGUuCiBjbGFzcyBGaWx0ZXJBbmltYXRpb25WYWx1ZSA6IHB1Ymxp
YyBBbmltYXRpb25WYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RmlsdGVy
QW5pbWF0aW9uVmFsdWU+IGNyZWF0ZShkb3VibGUga2V5VGltZSwgY29uc3QgRmlsdGVyT3BlcmF0
aW9ucyYgdmFsdWUsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uID0g
MCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxGaWx0ZXJBbmltYXRpb25WYWx1ZT4gY3JlYXRlKGRv
dWJsZSBrZXlUaW1lLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiB2YWx1ZSwgVGltaW5nRnVuY3Rp
b24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgRmlsdGVyQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdmFsdWUsIHRpbWluZ0Z1bmN0
aW9uKSk7CiAgICAgfQpAQCAtMTYzLDcgKzE2Myw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBGaWx0
ZXJPcGVyYXRpb25zJiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogcHJpdmF0
ZToKLSAgICBGaWx0ZXJBbmltYXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYgdmFsdWUsIFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0
aW9uKQorICAgIEZpbHRlckFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBGaWx0
ZXJPcGVyYXRpb25zJiB2YWx1ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQogICAg
ICAgICA6IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQogICAgICAgICAs
IG1fdmFsdWUodmFsdWUpCiAgICAgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHJldmlzaW9uIDE2NzQ2MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMzY2LDggKzIzNjYsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRp
b24oCiAgICAgICAgIGlmICgha2V5ZnJhbWVTdHlsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgCi0gICAgICAgIC8vIEdldCB0aW1pbmcgZnVuY3Rpb24uCi0gICAgICAgIFJl
ZlB0cjxUaW1pbmdGdW5jdGlvbj4gdGYgPSBrZXlmcmFtZVN0eWxlLT5oYXNBbmltYXRpb25zKCkg
PyAoKmtleWZyYW1lU3R5bGUtPmFuaW1hdGlvbnMoKSkuYW5pbWF0aW9uKDApLnRpbWluZ0Z1bmN0
aW9uKCkgOiAwOworICAgICAgICBUaW1pbmdGdW5jdGlvbiogdGYgPSBjdXJyZW50S2V5ZnJhbWUu
dGltaW5nRnVuY3Rpb24oa2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7CiAgICAgICAgIAogICAg
ICAgICBib29sIGlzRmlyc3RPckxhc3RLZXlmcmFtZSA9IGtleSA9PSAwIHx8IGtleSA9PSAxOwog
ICAgICAgICBpZiAoKGhhc1RyYW5zZm9ybSAmJiBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUpIHx8IGN1
cnJlbnRLZXlmcmFtZS5jb250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3Jt
KSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxp
c3QuY3BwCShyZXZpc2lvbiAxNjc0NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvS2V5ZnJhbWVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTAgKzIxLDI3IEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJLZXlmcmFtZUxpc3QuaCIKKworI2luY2x1
ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK1RpbWluZ0Z1bmN0aW9uKiBLZXlmcmFtZVZhbHVlOjp0aW1pbmdGdW5jdGlv
bihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0Cit7CisgICAgY29uc3QgUmVuZGVyU3R5
bGUqIGtleWZyYW1lU3R5bGUgPSBzdHlsZSgpOworICAgIGlmICgha2V5ZnJhbWVTdHlsZSB8fCAh
a2V5ZnJhbWVTdHlsZS0+YW5pbWF0aW9ucygpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5ZnJhbWVTdHlsZS0+YW5pbWF0aW9ucygpLT5z
aXplKCk7ICsraSkgeworICAgICAgICBjb25zdCBBbmltYXRpb24mIGFuaW1hdGlvbiA9IGtleWZy
YW1lU3R5bGUtPmFuaW1hdGlvbnMoKS0+YW5pbWF0aW9uKGkpOworICAgICAgICBpZiAobmFtZSA9
PSBhbmltYXRpb24ubmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGlvbi50aW1pbmdG
dW5jdGlvbigpLmdldCgpOworICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCiBLZXlm
cmFtZUxpc3Q6On5LZXlmcmFtZUxpc3QoKQogewogICAgIGNsZWFyKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oCShyZXZpc2lvbiAxNjc0
NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgUmVuZGVyU3R5bGU7CitjbGFzcyBUaW1pbmdGdW5jdGlvbjsKIAogY2xhc3MgS2V5ZnJhbWVW
YWx1ZSB7CiBwdWJsaWM6CkBAIC01NCw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW5k
ZXJTdHlsZSogc3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlLmdldCgpOyB9CiAgICAgdm9p
ZCBzZXRTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHlsZSkgeyBtX3N0eWxlID0gc3R5
bGU7IH0KIAorICAgIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbihjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGRvdWJsZSBtX2tleTsKICAgICBI
YXNoU2V0PENTU1Byb3BlcnR5SUQ+IG1fcHJvcGVydGllczsgLy8gVGhlIHByb3BlcnRpZXMgc3Bl
Y2lmaWVkIGluIHRoaXMga2V5ZnJhbWUuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjc0Njkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxNC0wNC0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKwor
ICAgICAgICBNYWtlIFJlbmRlckxheWVyQmFja2luZyBnZXQgdGhlIHRpbWluZ0Z1bmN0aW9uIG9m
IHRoZSBjb3JyZWN0IGFuaW1hdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMDYzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxH
cmFwaGljc0xheWVyQW5pbWF0aW9uPjo6ZGVjb2RlKTogVXBkYXRlIGZvciBuZXcgc2lnbmF0dXJl
cyBmb3IKKyAgICAgICAgRmxvYXRBbmltYXRpb25WYWx1ZSwgVHJhbnNmb3JtQW5pbWF0aW9uVmFs
dWUsIGV0Yy4KKwogMjAxNC0wNC0xNyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1MgV2ViS2l0Ml0gc3VwcG9ydCByZXBsYWNlbWVudHMgZm9yIG1pc3Nw
ZWxsZWQgd29yZHMuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NBcmd1bWVudENvZGVycy5jcHAJKHJldmlzaW9uIDE2NzQ2MikKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVu
dENvZGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxOCwxNCArNTE4LDE0IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxHcmFwaGljc0xheWVyQW5pbWF0aW8KICAgICAgICAgICAgIGZsb2F0IHZhbHVl
OwogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChGbG9hdEFuaW1h
dGlvblZhbHVlOjpjcmVhdGUoa2V5VGltZSwgdmFsdWUsIHRpbWluZ0Z1bmN0aW9uKSk7CisgICAg
ICAgICAgICBrZXlmcmFtZXMuaW5zZXJ0KEZsb2F0QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShrZXlU
aW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybTog
ewogICAgICAgICAgICAgVHJhbnNmb3JtT3BlcmF0aW9ucyB0cmFuc2Zvcm07CiAgICAgICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChUcmFuc2Zvcm1BbmltYXRpb25W
YWx1ZTo6Y3JlYXRlKGtleVRpbWUsIHRyYW5zZm9ybSwgdGltaW5nRnVuY3Rpb24pKTsKKyAgICAg
ICAgICAgIGtleWZyYW1lcy5pbnNlcnQoVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShr
ZXlUaW1lLCB0cmFuc2Zvcm0sIHRpbWluZ0Z1bmN0aW9uLmdldCgpKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKQEAgLTUzMyw3ICs1MzMs
NyBAQCBib29sIEFyZ3VtZW50Q29kZXI8R3JhcGhpY3NMYXllckFuaW1hdGlvCiAgICAgICAgICAg
ICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlcjsKICAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoZmlsdGVyKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBr
ZXlmcmFtZXMuaW5zZXJ0KEZpbHRlckFuaW1hdGlvblZhbHVlOjpjcmVhdGUoa2V5VGltZSwgZmls
dGVyLCB0aW1pbmdGdW5jdGlvbikpOworICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChGaWx0
ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtleVRpbWUsIGZpbHRlciwgdGltaW5nRnVuY3Rpb24u
Z2V0KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAjZW5kaWYKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE2NzQ2MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE4IEBACisyMDE0LTA0LTE2ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxh
QGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIE1ha2UgUmVuZGVyTGF5ZXJCYWNraW5nIGdldCB0
aGUgdGltaW5nRnVuY3Rpb24gb2YgdGhlIGNvcnJlY3QgYW5pbWF0aW9uLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwNjMyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhbiBlbGVtZW50IG9uIGEg
Y29tcG9zaXRpbmcgbGF5ZXIgaGFzIG11bHRpcGxlIGFuaW1hdGlvbnMgdGhhdCBoYXZlCisgICAg
ICAgIGRpZmZlcmVudCB0aW1pbmdGdW5jdGlvbnMsIHRoZSBwcm9ncmVzcyBvZiBlYWNoIGFuaW1h
dGlvbiBzaG91bGQgYmUKKyAgICAgICAgY2FsY3VsYXRlZCB1c2luZyBpdHMgcmVzcGVjdGl2ZSB0
aW1pbmdGdW5jdGlvbiBpbiBBY2NlbGVyYXRlZAorICAgICAgICBDb21wb3NpdGluZy4KKworICAg
ICAgICAqIGFuaW1hdGlvbnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFu
c2Zvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL2tleWZyYW1l
LW11bHRpcGxlLXRpbWluZy1mdW5jdGlvbnMtdHJhbnNmb3JtLmh0bWw6IEFkZGVkLgorCiAyMDE0
LTA0LTE3ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBhZG9iZS5jb20+CiAKICAgICAgICAgW0NT
UyBCbGVuZGluZ10gUmVtb3ZlIHRoZSAtd2Via2l0LSBwcmVmaXggZm9yIG1peC1ibGVuZC1tb2Rl
IGFuZCBpc29sYXRpb24gQ1NTIHByb3BlcnRpZXMKSW5kZXg6IExheW91dFRlc3RzL2FuaW1hdGlv
bnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0tZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVsdGlw
bGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlmcmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rp
b25zLXRyYW5zZm9ybS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3IEBA
CitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQg
MC41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAsMCwxLDUwLDAKK1BBU1MgLSAid2Via2l0
VHJhbnNmb3JtIiBwcm9wZXJ0eSBmb3IgImJveCIgZWxlbWVudCBhdCAxcyBzYXcgc29tZXRoaW5n
IGNsb3NlIHRvOiAxLDAsMCwxLDEwMCwwCitQQVNTIC0gIndlYmtpdFRyYW5zZm9ybSIgcHJvcGVy
dHkgZm9yICJib3giIGVsZW1lbnQgYXQgMS41cyBzYXcgc29tZXRoaW5nIGNsb3NlIHRvOiAxLDAs
MCwxLDE1MCwwCitQQVNTIC0gIm9wYWNpdHkiIHByb3BlcnR5IGZvciAiYm94IiBlbGVtZW50IGF0
IDAuNXMgc2F3IHNvbWV0aGluZyBjbG9zZSB0bzogMQorUEFTUyAtICJvcGFjaXR5IiBwcm9wZXJ0
eSBmb3IgImJveCIgZWxlbWVudCBhdCAwLjlzIHNhdyBzb21ldGhpbmcgY2xvc2UgdG86IDEKK1BB
U1MgLSAib3BhY2l0eSIgcHJvcGVydHkgZm9yICJib3giIGVsZW1lbnQgYXQgMS41cyBzYXcgc29t
ZXRoaW5nIGNsb3NlIHRvOiAwLjUKKwpJbmRleDogTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9rZXlm
cmFtZS1tdWx0aXBsZS10aW1pbmctZnVuY3Rpb25zLXRyYW5zZm9ybS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2FuaW1hdGlvbnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0
aW9ucy10cmFuc2Zvcm0uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FuaW1hdGlv
bnMva2V5ZnJhbWUtbXVsdGlwbGUtdGltaW5nLWZ1bmN0aW9ucy10cmFuc2Zvcm0uaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4K
KyAgICAgICAgI2JveCB7CisgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAg
ICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICAg
ICAgbWFyZ2luOiAyMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAg
ICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246CisgICAgICAgICAgICAgICAgaG9yaXpvbnRhbCAy
cyBsaW5lYXIgMSBhbHRlcm5hdGUsCisgICAgICAgICAgICAgICAgZmFkZSAycyBzdGVwcygyKSAx
IGFsdGVybmF0ZTsKKyAgICAgICAgfQorCisgICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBob3Jp
em9udGFsIHsKKyAgICAgICAgICAgIGZyb20geyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRl
WCgwcHgpOyB9CisgICAgICAgICAgICB0byAgIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZVgoMjAwcHgpOyB9CisgICAgICAgIH0KKworICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmFk
ZSB7CisgICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMS4wOyB9CisgICAgICAgICAgICB0byB7
IG9wYWNpdHk6IDAuMDsgfQorICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVz
ID0gWworICAgICAgICAgIC8vIFthbmltYXRpb24tbmFtZSwgdGltZSwgZWxlbWVudC1pZCwgcHJv
cGVydHksIGV4cGVjdGVkLXZhbHVlLCB0b2xlcmFuY2VdCisgICAgICAgICAgWyJob3Jpem9udGFs
IiwgMC41LCAiYm94IiwgIndlYmtpdFRyYW5zZm9ybSIsIFsxLDAsMCwxLCA1MCwwXSwgMjBdLAor
ICAgICAgICAgIFsiaG9yaXpvbnRhbCIsIDEuMCwgImJveCIsICJ3ZWJraXRUcmFuc2Zvcm0iLCBb
MSwwLDAsMSwxMDAsMF0sIDIwXSwKKyAgICAgICAgICBbImhvcml6b250YWwiLCAxLjUsICJib3gi
LCAid2Via2l0VHJhbnNmb3JtIiwgWzEsMCwwLDEsMTUwLDBdLCAyMF0sCisgICAgICAgICAgWyJm
YWRlIiwgMC41LCAiYm94IiwgIm9wYWNpdHkiLCAxLjAsIDAuMTVdLAorICAgICAgICAgIFsiZmFk
ZSIsIDAuOSwgImJveCIsICJvcGFjaXR5IiwgMS4wLCAwLjE1XSwKKyAgICAgICAgICBbImZhZGUi
LCAxLjUsICJib3giLCAib3BhY2l0eSIsIDAuNSwgMC4xNV0sCisgICAgICAgIF07CisKKyAgICAg
ICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcyk7CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJib3giPjwvZGl2PgorICAgIDxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="253977"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>