<?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>100344</bug_id>
          
          <creation_ts>2012-10-25 00:28:48 -0700</creation_ts>
          <short_desc>[chromium] remove remaining usages of webkit_support from the TestRunner library</short_desc>
          <delta_ts>2012-10-29 03:50:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100486</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>750480</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-10-25 00:28:48 -0700</bug_when>
    <thetext>[chromium] remove remaining usages of webkit_support from the TestRunner library</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750482</commentid>
    <comment_count>1</comment_count>
      <attachid>170570</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 00:29:54 -0700</bug_when>
    <thetext>Created attachment 170570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750493</commentid>
    <comment_count>2</comment_count>
      <attachid>170570</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-25 00:39:45 -0700</bug_when>
    <thetext>Comment on attachment 170570
Patch

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

&gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebEventSender.h:67
&gt; +    enum {
&gt; +        VKEY_RETURN   = 0x0D,
&gt; +        VKEY_PRIOR    = 0x21,
&gt; +        VKEY_NEXT     = 0x22,
&gt; +        VKEY_END      = 0x23,
&gt; +        VKEY_HOME     = 0x24,
&gt; +        VKEY_LEFT     = 0x25,
&gt; +        VKEY_UP       = 0x26,
&gt; +        VKEY_RIGHT    = 0x27,
&gt; +        VKEY_DOWN     = 0x28,
&gt; +        VKEY_SNAPSHOT = 0x2C,
&gt; +        VKEY_INSERT   = 0x2D,
&gt; +        VKEY_DELETE   = 0x2E,
&gt; +        VKEY_APPS     = 0x5D,
&gt; +        VKEY_F1       = 0x70,
&gt; +        VKEY_LSHIFT   = 0xA0,
&gt; +        VKEY_RSHIFT   = 0xA1,
&gt; +        VKEY_LCONTROL = 0xA2,
&gt; +        VKEY_RCONTROL = 0xA3,
&gt; +        VKEY_LMENU    = 0xA4,
&gt; +        VKEY_RMENU    = 0xA5,
&gt; +    };

Do these need to be declared in the public header rather than in the implementation somewhere?  I guess you&apos;re going to COMPILE_ASSERT them on the Chromium side or something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750499</commentid>
    <comment_count>3</comment_count>
      <attachid>170570</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 00:43:50 -0700</bug_when>
    <thetext>Comment on attachment 170570
Patch

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

&gt;&gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebEventSender.h:67
&gt;&gt; +    };
&gt; 
&gt; Do these need to be declared in the public header rather than in the implementation somewhere?  I guess you&apos;re going to COMPILE_ASSERT them on the Chromium side or something?

yes, that was my intention.

OTOH these values are from the windows API which I think is unlikely to change, so we could just move it to EventSender.cpp, wdyt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750507</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-25 00:47:03 -0700</bug_when>
    <thetext>&gt; OTOH these values are from the windows API which I think is unlikely to change, so we could just move it to EventSender.cpp, wdyt?

Your plan sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750512</commentid>
    <comment_count>5</comment_count>
      <attachid>170575</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 00:54:30 -0700</bug_when>
    <thetext>Created attachment 170575
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750697</commentid>
    <comment_count>6</comment_count>
      <attachid>170575</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-25 05:02:35 -0700</bug_when>
    <thetext>Comment on attachment 170575
Patch for landing

Rejecting attachment 170575 from commit-queue.

New failing tests:
plugins/keyboard-events.html
Full output: http://queues.webkit.org/results/14543646</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750967</commentid>
    <comment_count>7</comment_count>
      <attachid>170682</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 10:20:00 -0700</bug_when>
    <thetext>Created attachment 170682
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750969</commentid>
    <comment_count>8</comment_count>
      <attachid>170682</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 10:20:57 -0700</bug_when>
    <thetext>Comment on attachment 170682
Patch for landing

It turns out that it&apos;s not enough to translate the windows keysyms to gdk/x11 keysyms, but they need to be translated to hardware keycodes.

Adam, still ok?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750972</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-25 10:23:32 -0700</bug_when>
    <thetext>Attachment 170682 did not pass style-queue:

Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:285:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:286:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:287:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:288:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:289:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:290:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:291:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:292:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:293:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:294:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:295:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:296:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:297:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:298:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:299:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:300:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:301:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:302:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:303:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:304:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:305:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:306:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:307:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:308:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:309:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:310:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:313:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:314:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:315:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:316:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:317:  One space before end of line comments  [whitespace/comments] [5]
ToolFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/DumpRenderTree/c...&quot; exit_code: 1
s/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:318:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:319:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:320:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:321:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:322:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:326:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:328:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 38 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750987</commentid>
    <comment_count>10</comment_count>
      <attachid>170688</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 10:37:21 -0700</bug_when>
    <thetext>Created attachment 170688
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750992</commentid>
    <comment_count>11</comment_count>
      <attachid>170689</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 10:39:07 -0700</bug_when>
    <thetext>Created attachment 170689
Patch for landing, for realz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751000</commentid>
    <comment_count>12</comment_count>
      <attachid>170689</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 10:47:41 -0700</bug_when>
    <thetext>Comment on attachment 170689
Patch for landing, for realz

hum, not good yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751002</commentid>
    <comment_count>13</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-10-25 10:51:03 -0700</bug_when>
    <thetext>e.g. third_party/WebKit/LayoutTests/editing/input/reveal-caret-of-multiline-input.html sends a &apos;&gt;&apos;.

I guess I&apos;ll just add a table for all US-ASCII chars.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751112</commentid>
    <comment_count>14</comment_count>
      <attachid>170710</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 12:27:38 -0700</bug_when>
    <thetext>Created attachment 170710
Patch for landing, for realz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751114</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-25 12:30:20 -0700</bug_when>
    <thetext>Attachment 170710 did not pass style-queue:

Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:281:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:282:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:283:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:284:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:285:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:286:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:287:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:288:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:291:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:292:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:293:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:295:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:296:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:302:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:303:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:304:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:305:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:306:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:307:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:308:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:309:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:310:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:311:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:312:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:314:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:315:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:316:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:317:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:318:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:319:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:320:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:321:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:322:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:323:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:324:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:325:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:326:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:327:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:328:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:339:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:340:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:341:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:342:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:343:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:344:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:345:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:372:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:373:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:374:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/sFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/DumpRenderTree/c...&quot; exit_code: 1
rc/EventSender.cpp:375:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:405:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:406:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:407:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:408:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 56 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751119</commentid>
    <comment_count>16</comment_count>
      <attachid>170712</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 12:35:31 -0700</bug_when>
    <thetext>Created attachment 170712
Patch for landing, for realz</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751128</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-25 12:43:57 -0700</bug_when>
    <thetext>Attachment 170712 did not pass style-queue:

Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:313:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:322:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:324:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:325:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:329:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:330:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:331:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:332:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:333:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:334:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:335:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:336:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:337:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:338:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:339:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:340:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:341:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:342:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:343:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:344:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:345:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:346:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:347:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:348:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:349:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:350:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:351:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:352:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:353:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:354:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:355:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:356:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:357:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:358:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:359:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:360:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:361:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:362:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:363:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:364:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:365:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:366:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:367:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:368:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:369:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:370:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:371:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:375:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:376:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:377:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:378:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:379:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:380:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:381:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:382:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:383:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:384:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:385:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:386:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:387:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:388:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:389:  One space before end of line comments  [whitespace/comments] [5]
Tools/DuFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/DumpRenderTree/c...&quot; exit_code: 1
mpRenderTree/chromium/TestRunner/src/EventSender.cpp:390:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:391:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:392:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:393:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:394:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:395:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:396:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:397:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:398:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:399:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:400:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:401:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:402:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:403:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:404:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:405:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:406:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:407:  One space before end of line comments  [whitespace/comments] [5]
Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:408:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 81 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751129</commentid>
    <comment_count>18</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-10-25 12:45:48 -0700</bug_when>
    <thetext>the formatting the style bot wants looks just ugly :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751161</commentid>
    <comment_count>19</comment_count>
      <attachid>170712</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-25 13:28:35 -0700</bug_when>
    <thetext>Comment on attachment 170712
Patch for landing, for realz

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

&gt; Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:282
&gt; +#if OS(LINUX) &amp;&amp; USE(GTK)
&gt; +int NativeKeyCodeForWindowsKeyCode(int keysym)
&gt; +{
&gt; +    // See /usr/share/X11/xkb/keycodes/*
&gt; +    static const int asciiToKeyCode[] = {
&gt; +        0,
&gt; +        0,

Can we put this table in a separate .h and .cpp file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751247</commentid>
    <comment_count>20</comment_count>
      <attachid>170737</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 15:00:30 -0700</bug_when>
    <thetext>Created attachment 170737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751255</commentid>
    <comment_count>21</comment_count>
      <attachid>170737</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-25 15:07:19 -0700</bug_when>
    <thetext>Comment on attachment 170737
Patch

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

&gt; Tools/DumpRenderTree/chromium/TestRunner/src/KeyCodeMapping.cpp:242
&gt; +    return 0;

You probably need an UNUSED_PARAM(keysym) for this to compile on Mac clang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751267</commentid>
    <comment_count>22</comment_count>
      <attachid>170742</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-25 15:18:45 -0700</bug_when>
    <thetext>Created attachment 170742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751426</commentid>
    <comment_count>23</comment_count>
      <attachid>170742</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-25 18:51:17 -0700</bug_when>
    <thetext>Comment on attachment 170742
Patch

Clearing flags on attachment: 170742

Committed r132552: &lt;http://trac.webkit.org/changeset/132552&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751427</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-25 18:51:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751740</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 02:44:48 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 100486</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753207</commentid>
    <comment_count>26</comment_count>
      <attachid>171186</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-29 02:55:53 -0700</bug_when>
    <thetext>Created attachment 171186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753240</commentid>
    <comment_count>27</comment_count>
      <attachid>171186</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-29 03:50:47 -0700</bug_when>
    <thetext>Comment on attachment 171186
Patch

Clearing flags on attachment: 171186

Committed r132781: &lt;http://trac.webkit.org/changeset/132781&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753241</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-29 03:50:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170570</attachid>
            <date>2012-10-25 00:29:54 -0700</date>
            <delta_ts>2012-10-25 00:54:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100344-20121025092828.patch</filename>
            <type>text/plain</type>
            <size>28086</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uOGQ4ZjljYjQ0NzJmNDc5YmZmMTQzM2M2YTljY2YwNTE3ZDFlYjNhZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUy
IEBACisyMDEyLTEwLTI1ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHJlbWFpbmluZyB1c2FnZXMgb2Ygd2Via2l0X3N1
cHBvcnQgZnJvbSB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbW9zdCBpbXBvcnRhbnQgcGFydCBpcyB0byBu
b3QgcmVseSBvbiBjYWxsaW5nIG91dCB0byBnZGsvWDExIHRvCisgICAgICAgIHRyYW5zbGF0ZSBr
ZXljb2RlcyB0byBuYXRpdmUga2V5Y29kZXMsIGFzIHRoaXMgaXMgbm90IHBvc3NpYmxlIGluc2lk
ZQorICAgICAgICB0aGUgc2FuZGJveC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0RSVFRlc3RSdW5uZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICh3ZWJraXRf
c3VwcG9ydCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9w
dWJsaWMvV2ViRXZlbnRTZW5kZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaDoKKyAgICAgICAgKFdlYlRlc3RE
ZWxlZ2F0ZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvQ3BwVmFyaWFudC5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmRvRHJhZ0Ryb3ApOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OnVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b24pOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Om1vdXNlRG93bik6CisgICAgICAg
IChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6bW91c2VVcCk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpFdmVudFNlbmRlcjo6bW91c2VNb3ZlVG8pOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6RXZlbnRTZW5kZXI6OmtleURvd24pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRT
ZW5kZXI6OnJlcGxheVNhdmVkRXZlbnRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50
U2VuZGVyOjpjb250ZXh0Q2xpY2spOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5k
ZXI6OmJlZ2luRHJhZ1dpdGhGaWxlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNl
bmRlcjo6c2VuZEN1cnJlbnRUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2
ZW50U2VuZGVyOjpoYW5kbGVNb3VzZVdoZWVsKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2
ZW50U2VuZGVyOjpnZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRT
ZW5kZXI6Omdlc3R1cmVGbGluZ0NhbmNlbCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVu
dFNlbmRlcjo6Z2VzdHVyZUZsaW5nU3RhcnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oOgorICAgICAgICAoVGVzdERlbGVn
YXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwOgorICAgICAgICAoV2ViVGVzdElu
dGVyZmFjZXM6OkludGVybmFsKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRl
cmZhY2VzOjpJbnRlcm5hbDo6Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKToKKyAgICAgICAg
KFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFj
ZXM6OkludGVybmFsOjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aCk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2Vi
Vmlld0hvc3Q6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCk6CisgICAgICAgIChXZWJWaWV3
SG9zdDo6Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdCk6
CisKIDIwMTItMTAtMjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgbnJ3dDogdHJ1bmNhdGUgbWV0ZXIgbGluZXMgcHJvcGVybHkgb24gd2luZG93cwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCmluZGV4IGVjNDc3
OGZkNWM0NmY4ZjMyODc1OGExNTdhMzI4MjE0NTRiNWIyMjEuLmNjZGZjNDM5NGRmNmRkYzllMDRi
ZjE1M2Y1OTU3MDdjMWI3NmYwYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0RSVFRlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmgKQEAgLTQzLDcgKzQzLDIzIEBACiAjZGVmaW5lIERSVFRlc3RSdW5u
ZXJfaAogCiAjaW5jbHVkZSAiVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIgorI2luY2x1ZGUg
IldlYkRlbGl2ZXJlZEludGVudENsaWVudC5oIgogI2luY2x1ZGUgIldlYlRhc2suaCIKKyNpbmNs
dWRlICJXZWJUZXh0RGlyZWN0aW9uLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViQXJyYXlCdWZm
ZXJWaWV3LmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAicGxh
dGZvcm0vV2ViVVJMLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL093
blB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkdlb2xvY2F0aW9uQ2xpZW50
TW9jazsKK30KKworbmFtZXNwYWNlIHdlYmtpdF9zdXBwb3J0IHsKK2NsYXNzIFNjb3BlZFRlbXBE
aXJlY3Rvcnk7Cit9CisKIAogY2xhc3MgVGVzdFNoZWxsOwogCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJFdmVudFNlbmRlci5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViRXZl
bnRTZW5kZXIuaAppbmRleCA0N2M1OWVmZTY5ZTVkM2JhMjQ1YzM1NWNiYWYwYmViNDUyNWI0MzFl
Li42ZTk5MWRhMDczMDRkMDE2YjAzMjlmYTQ0Yzk3YjgxNjllNmEwODNkIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJFdmVudFNl
bmRlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYkV2ZW50U2VuZGVyLmgKQEAgLTQzLDYgKzQzLDI5IEBAIGNsYXNzIEV2ZW50U2VuZGVy
OwogCiBjbGFzcyBXZWJFdmVudFNlbmRlciB7CiBwdWJsaWM6CisgICAgZW51bSB7CisgICAgICAg
IFZLRVlfUkVUVVJOICAgPSAweDBELAorICAgICAgICBWS0VZX1BSSU9SICAgID0gMHgyMSwKKyAg
ICAgICAgVktFWV9ORVhUICAgICA9IDB4MjIsCisgICAgICAgIFZLRVlfRU5EICAgICAgPSAweDIz
LAorICAgICAgICBWS0VZX0hPTUUgICAgID0gMHgyNCwKKyAgICAgICAgVktFWV9MRUZUICAgICA9
IDB4MjUsCisgICAgICAgIFZLRVlfVVAgICAgICAgPSAweDI2LAorICAgICAgICBWS0VZX1JJR0hU
ICAgID0gMHgyNywKKyAgICAgICAgVktFWV9ET1dOICAgICA9IDB4MjgsCisgICAgICAgIFZLRVlf
U05BUFNIT1QgPSAweDJDLAorICAgICAgICBWS0VZX0lOU0VSVCAgID0gMHgyRCwKKyAgICAgICAg
VktFWV9ERUxFVEUgICA9IDB4MkUsCisgICAgICAgIFZLRVlfQVBQUyAgICAgPSAweDVELAorICAg
ICAgICBWS0VZX0YxICAgICAgID0gMHg3MCwKKyAgICAgICAgVktFWV9MU0hJRlQgICA9IDB4QTAs
CisgICAgICAgIFZLRVlfUlNISUZUICAgPSAweEExLAorICAgICAgICBWS0VZX0xDT05UUk9MID0g
MHhBMiwKKyAgICAgICAgVktFWV9SQ09OVFJPTCA9IDB4QTMsCisgICAgICAgIFZLRVlfTE1FTlUg
ICAgPSAweEE0LAorICAgICAgICBWS0VZX1JNRU5VICAgID0gMHhBNSwKKyAgICB9OworCiAjaWYg
V0VCVEVTVFJVTk5FUl9JTVBMRU1FTlRBVElPTgogICAgIGV4cGxpY2l0IFdlYkV2ZW50U2VuZGVy
KEV2ZW50U2VuZGVyKik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgK
aW5kZXggNmUyMTg4MTA3YmE5NzQ1YmU2ZDk1MzM4OTJlNGE3NGY3ZjNlNjAwNS4uYWI0N2Q0Zjlk
Y2VhNmQ3ZWM5MThiZGQxZTJlZjRkZWYyYzU4MmUwZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVz
dERlbGVnYXRlLmgKQEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBw
b3N0RGVsYXllZFRhc2soV2ViVGFzayosIGxvbmcgbG9uZyBtcykgPSAwOwogCiAgICAgdmlydHVh
bCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJL
aXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSA9IDA7
CisgICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgPSAw
OworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9t
VVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlh
bnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZh
cmlhbnQuaAppbmRleCA2MGNjNjI3MWVjZmFkOWVkNjhiZGU0Mjg4NTE1Mzg0MjZkNmI4NDAzLi40
N2ZkNDY2YWZmMzJkNzljZWNiNDcwNjZhNzNiN2E1ZWM1Y2MwMGI5IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50LmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFu
dC5oCkBAIC00Myw3ICs0Myw2IEBACiAjZGVmaW5lIENwcFZhcmlhbnRfaAogCiAjaW5jbHVkZSAi
V2ViQmluZGluZ3MuaCIKLSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5o
IgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2Vu
ZGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2
ZW50U2VuZGVyLmNwcAppbmRleCAyZjRhMDU1NGM1YzM2ZDNlZmI2OTBmNDdlOGMyZjg5M2NiZmFm
OTNlLi40ZTVmMzU5YzNiM2JjNmZhZGZkZWY1MjA3YmQzMTE0YjcwNmZmYzU4IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRl
ci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
RXZlbnRTZW5kZXIuY3BwCkBAIC00NiwxMyArNDYsMTMgQEAKICNpbmNsdWRlICJUZXN0RGVsZWdh
dGUuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJEcmFn
T3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKICNpbmNsdWRlICJXZWJU
b3VjaFBvaW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dl
YkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViUG9pbnQuaCIKICNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJTdHJpbmcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJWZWN0b3IuaCIKLSNp
bmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIApAQCAtNjAsNiArNjAsMTAg
QEAKICNpbmNsdWRlICJ3aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuaCIKICNlbmRpZgogCisjaWYg
T1MoTElOVVgpICYmIFVTRShHVEspCisjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMuaD4KKyNlbmRp
ZgorCiAvLyBGSVhNRTogbGF5b3V0IGJlZm9yZSBlYWNoIGV2ZW50PwogCiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwpAQCAtMTI1LDkgKzEyOSw5IEBAIGlubGluZSBib29sIG91dHNpZGVNdWx0aUNsaWNr
UmFkaXVzKGNvbnN0IFdlYlBvaW50JiBhLCBjb25zdCBXZWJQb2ludCYgYikKIC8vIGRlcGVuZGVu
dCAoZS5nLiwgZHJhZ2dpbmcgaGFzIGEgdGltZW91dCB2cyBzZWxlY3Rpb24pLgogdWludDMyIHRp
bWVPZmZzZXRNcyA9IDA7CiAKLWRvdWJsZSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCkKK2RvdWJs
ZSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCiB7Ci0gICAg
cmV0dXJuICh3ZWJraXRfc3VwcG9ydDo6R2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgKyB0
aW1lT2Zmc2V0TXMpIC8gMTAwMC4wOworICAgIHJldHVybiAoZGVsZWdhdGUtPmdldEN1cnJlbnRU
aW1lSW5NaWxsaXNlY29uZCgpICsgdGltZU9mZnNldE1zKSAvIDEwMDAuMDsKIH0KIAogdm9pZCBh
ZHZhbmNlRXZlbnRUaW1lKGludDMyX3QgZGVsdGFNcykKQEAgLTEzNSw3ICsxMzksNyBAQCB2b2lk
IGFkdmFuY2VFdmVudFRpbWUoaW50MzJfdCBkZWx0YU1zKQogICAgIHRpbWVPZmZzZXRNcyArPSBk
ZWx0YU1zOwogfQogCi12b2lkIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5cGUgdCwg
V2ViTW91c2VFdmVudDo6QnV0dG9uIGIsIGNvbnN0IFdlYlBvaW50JiBwb3MsIFdlYk1vdXNlRXZl
bnQqIGUpCit2b2lkIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5cGUgdCwgV2ViTW91
c2VFdmVudDo6QnV0dG9uIGIsIGNvbnN0IFdlYlBvaW50JiBwb3MsIFdlYk1vdXNlRXZlbnQqIGUs
IGRvdWJsZSB0cykKIHsKICAgICBlLT50eXBlID0gdDsKICAgICBlLT5idXR0b24gPSBiOwpAQCAt
MTQ0LDcgKzE0OCw3IEBAIHZvaWQgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6VHlwZSB0
LCBXZWJNb3VzZUV2ZW50OjpCdXR0b24gYiwgY29uc3QgV2ViUG9pCiAgICAgZS0+eSA9IHBvcy55
OwogICAgIGUtPmdsb2JhbFggPSBwb3MueDsKICAgICBlLT5nbG9iYWxZID0gcG9zLnk7Ci0gICAg
ZS0+dGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICBlLT50
aW1lU3RhbXBTZWNvbmRzID0gdHM7CiAgICAgZS0+Y2xpY2tDb3VudCA9IGNsaWNrQ291bnQ7CiB9
CiAKQEAgLTIxNCwxNiArMjE4LDE2IEBAIGJvb2wgZ2V0RWRpdENvbW1hbmQoY29uc3QgV2ViS2V5
Ym9hcmRFdmVudCYgZXZlbnQsIHN0cmluZyogbmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgc3dpdGNoIChldmVudC53aW5kb3dzS2V5Q29kZSkgewotICAgIGNhc2Ugd2Via2l0X3N1
cHBvcnQ6OlZLRVlfTEVGVDoKKyAgICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpWS0VZX0xFRlQ6CiAg
ICAgICAgICpuYW1lID0gIk1vdmVUb0JlZ2lubmluZ09mTGluZSI7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2Ugd2Via2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ6CisgICAgY2FzZSBXZWJFdmVudFNl
bmRlcjo6VktFWV9SSUdIVDoKICAgICAgICAgKm5hbWUgPSAiTW92ZVRvRW5kT2ZMaW5lIjsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSB3ZWJraXRfc3VwcG9ydDo6VktFWV9VUDoKKyAgICBjYXNl
IFdlYkV2ZW50U2VuZGVyOjpWS0VZX1VQOgogICAgICAgICAqbmFtZSA9ICJNb3ZlVG9CZWdpbm5p
bmdPZkRvY3VtZW50IjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSB3ZWJraXRfc3VwcG9ydDo6
VktFWV9ET1dOOgorICAgIGNhc2UgV2ViRXZlbnRTZW5kZXI6OlZLRVlfRE9XTjoKICAgICAgICAg
Km5hbWUgPSAiTW92ZVRvRW5kT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CkBAIC0yNDgsNiArMjUyLDY2IEBAIGVudW0gS2V5TG9jYXRpb25Db2RlIHsKICAgICBET01L
ZXlMb2NhdGlvbk51bXBhZCAgICAgICAgPSAweDAzCiB9OwogCisjaWYgT1MoTElOVVgpICYmIFVT
RShHVEspCitpbnQgTmF0aXZlS2V5Q29kZUZvcldpbmRvd3NLZXlDb2RlKGludCBrZXljb2RlKQor
eworICAgIHN3aXRjaCAoa2V5Y29kZSkgeworICAgIGNhc2UgV2ViRXZlbnRTZW5kZXI6OlZLRVlf
UFJJT1I6CisgICAgICAgIHJldHVybiBHREtfUHJpb3I7CisgICAgY2FzZSBXZWJFdmVudFNlbmRl
cjo6VktFWV9ORVhUOgorICAgICAgICByZXR1cm4gR0RLX05leHQ7CisgICAgY2FzZSBXZWJFdmVu
dFNlbmRlcjo6VktFWV9FTkQ6CisgICAgICAgIHJldHVybiBHREtfRW5kOworICAgIGNhc2UgV2Vi
RXZlbnRTZW5kZXI6OlZLRVlfSE9NRToKKyAgICAgICAgcmV0dXJuIEdES19Ib21lOworICAgIGNh
c2UgV2ViRXZlbnRTZW5kZXI6OlZLRVlfTEVGVDoKKyAgICAgICAgcmV0dXJuIEdES19MZWZ0Owor
ICAgIGNhc2UgV2ViRXZlbnRTZW5kZXI6OlZLRVlfVVA6CisgICAgICAgIHJldHVybiBHREtfVXA7
CisgICAgY2FzZSBXZWJFdmVudFNlbmRlcjo6VktFWV9SSUdIVDoKKyAgICAgICAgcmV0dXJuIEdE
S19SaWdodDsKKyAgICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpWS0VZX0RPV046CisgICAgICAgIHJl
dHVybiBHREtfRG93bjsKKyAgICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpWS0VZX1NOQVBTSE9UOgor
ICAgICAgICByZXR1cm4gR0RLX1ByaW50OworICAgIGNhc2UgV2ViRXZlbnRTZW5kZXI6OlZLRVlf
SU5TRVJUOgorICAgICAgICByZXR1cm4gR0RLX0luc2VydDsKKyAgICBjYXNlIFdlYkV2ZW50U2Vu
ZGVyOjpWS0VZX0RFTEVURToKKyAgICAgICAgcmV0dXJuIEdES19EZWxldGU7CisgICAgY2FzZSBX
ZWJFdmVudFNlbmRlcjo6VktFWV9BUFBTOgorICAgICAgICByZXR1cm4gR0RLX01lbnU7CisgICAg
Y2FzZSBXZWJFdmVudFNlbmRlcjo6VktFWV9GMToKKyAgICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpW
S0VZX0YxICsgMToKKyAgICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpWS0VZX0YxICsgMjoKKyAgICBj
YXNlIFdlYkV2ZW50U2VuZGVyOjpWS0VZX0YxICsgMzoKKyAgICBjYXNlIFdlYkV2ZW50U2VuZGVy
OjpWS0VZX0YxICsgNDoKKyAgICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpWS0VZX0YxICsgNToKKyAg
ICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpWS0VZX0YxICsgNjoKKyAgICBjYXNlIFdlYkV2ZW50U2Vu
ZGVyOjpWS0VZX0YxICsgNzoKKyAgICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpWS0VZX0YxICsgODoK
KyAgICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpWS0VZX0YxICsgOToKKyAgICBjYXNlIFdlYkV2ZW50
U2VuZGVyOjpWS0VZX0YxICsgMTA6CisgICAgICAgIHJldHVybiBHREtfRjEgKyAoa2V5Y29kZSAt
IFdlYkV2ZW50U2VuZGVyOjpWS0VZX0YxKTsKKyAgICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpWS0VZ
X0xTSElGVDoKKyAgICAgICAgcmV0dXJuIEdES19TaGlmdF9MOworICAgIGNhc2UgV2ViRXZlbnRT
ZW5kZXI6OlZLRVlfUlNISUZUOgorICAgICAgICByZXR1cm4gR0RLX1NoaWZ0X1I7CisgICAgY2Fz
ZSBXZWJFdmVudFNlbmRlcjo6VktFWV9MQ09OVFJPTDoKKyAgICAgICAgcmV0dXJuIEdES19Db250
cm9sX0w7CisgICAgY2FzZSBXZWJFdmVudFNlbmRlcjo6VktFWV9SQ09OVFJPTDoKKyAgICAgICAg
cmV0dXJuIEdES19Db250cm9sX1I7CisgICAgY2FzZSBXZWJFdmVudFNlbmRlcjo6VktFWV9MTUVO
VToKKyAgICAgICAgcmV0dXJuIEdES19BbHRfTDsKKyAgICBjYXNlIFdlYkV2ZW50U2VuZGVyOjpW
S0VZX1JNRU5VOgorICAgICAgICByZXR1cm4gR0RLX0FsdF9SOworCisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30K
KyNlbmRpZgorCiB9CiAKIEV2ZW50U2VuZGVyOjpFdmVudFNlbmRlcigpCkBAIC0zNDksNyArNDEz
LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVzZXQoKQogdm9pZCBFdmVudFNlbmRlcjo6ZG9EcmFn
RHJvcChjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsIFdlYkRyYWdPcGVyYXRpb25zTWFzayBt
YXNrKQogewogICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgaW5pdE1vdXNlRXZlbnQoV2Vi
SW5wdXRFdmVudDo6TW91c2VEb3duLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVu
dCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBwcmVzc2Vk
QnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2Rl
bGVnYXRlKSk7CiAgICAgV2ViUG9pbnQgY2xpZW50UG9pbnQoZXZlbnQueCwgZXZlbnQueSk7CiAg
ICAgV2ViUG9pbnQgc2NyZWVuUG9pbnQoZXZlbnQuZ2xvYmFsWCwgZXZlbnQuZ2xvYmFsWSk7CiAg
ICAgY3VycmVudERyYWdEYXRhID0gZHJhZ0RhdGE7CkBAIC0zOTIsNyArNDU2LDcgQEAgaW50IEV2
ZW50U2VuZGVyOjpnZXRCdXR0b25OdW1iZXJGcm9tU2luZ2xlQXJnKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzKQogCiB2b2lkIEV2ZW50U2VuZGVyOjp1cGRhdGVDbGlja0NvdW50Rm9y
QnV0dG9uKFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b25UeXBlKQogewotICAgIGlmICgoZ2V0
Q3VycmVudEV2ZW50VGltZVNlYygpIC0gbGFzdENsaWNrVGltZVNlYyA8IG11bHRpcGxlQ2xpY2tU
aW1lU2VjKQorICAgIGlmICgoZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSAtIGxh
c3RDbGlja1RpbWVTZWMgPCBtdWx0aXBsZUNsaWNrVGltZVNlYykKICAgICAgICAgJiYgKCFvdXRz
aWRlTXVsdGlDbGlja1JhZGl1cyhsYXN0TW91c2VQb3MsIGxhc3RDbGlja1BvcykpCiAgICAgICAg
ICYmIChidXR0b25UeXBlID09IGxhc3RCdXR0b25UeXBlKSkKICAgICAgICAgKytjbGlja0NvdW50
OwpAQCAtNDIyLDcgKzQ4Niw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Om1vdXNlRG93bihjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0CiAKICAgICBXZWJN
b3VzZUV2ZW50IGV2ZW50OwogICAgIHByZXNzZWRCdXR0b24gPSBidXR0b25UeXBlOwotICAgIGlu
aXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93biwgYnV0dG9uVHlwZSwgbGFzdE1v
dXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNl
RG93biwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRp
bWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID49IDIgJiYgKGFy
Z3VtZW50c1sxXS5pc09iamVjdCgpIHx8IGFyZ3VtZW50c1sxXS5pc1N0cmluZygpKSkKICAgICAg
ICAgYXBwbHlLZXlNb2RpZmllcnMoJihhcmd1bWVudHNbMV0pLCAmZXZlbnQpOwogICAgIHdlYnZp
ZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CkBAIC00NDgsNyArNTEyLDcgQEAgdm9pZCBF
dmVudFNlbmRlcjo6bW91c2VVcChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3Bw
VmFyaWFudCogcmVzdWx0KQogICAgICAgICByZXBsYXlTYXZlZEV2ZW50cygpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgIGluaXRNb3VzZUV2ZW50
KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGJ1dHRvblR5cGUsIGxhc3RNb3VzZVBvcywgJmV2ZW50
KTsKKyAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VVcCwgYnV0dG9u
VHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxl
Z2F0ZSkpOwogICAgICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAyICYmIChhcmd1bWVudHNb
MV0uaXNPYmplY3QoKSB8fCBhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkpCiAgICAgICAgICAgICBh
cHBseUtleU1vZGlmaWVycygmKGFyZ3VtZW50c1sxXSksICZldmVudCk7CiAgICAgICAgIGRvTW91
c2VVcChldmVudCk7CkBAIC00OTcsNyArNTYxLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6bW91c2VN
b3ZlVG8oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3UK
ICAgICAgICAgbW91c2VFdmVudFF1ZXVlLmFwcGVuZChzYXZlZEV2ZW50KTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICBpbml0TW91c2VFdmVudChX
ZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIG1vdXNlUG9zLCAmZXZlbnQp
OworICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNz
ZWRCdXR0b24sIG1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxl
Z2F0ZSkpOwogICAgICAgICBkb01vdXNlTW92ZShldmVudCk7CiAgICAgfQogfQpAQCAtNTM1LDUw
ICs1OTksNDMgQEAgdm9pZCBFdmVudFNlbmRlcjo6a2V5RG93bihjb25zdCBDcHBBcmd1bWVudExp
c3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgIGJvb2wgbmVlZHNTaGlmdEtl
eU1vZGlmaWVyID0gZmFsc2U7CiAgICAgaWYgKCJcbiIgPT0gY29kZVN0cikgewogICAgICAgICBn
ZW5lcmF0ZUNoYXIgPSB0cnVlOwotICAgICAgICB0ZXh0ID0gY29kZSA9IHdlYmtpdF9zdXBwb3J0
OjpWS0VZX1JFVFVSTjsKKyAgICAgICAgdGV4dCA9IGNvZGUgPSBXZWJFdmVudFNlbmRlcjo6VktF
WV9SRVRVUk47CiAgICAgfSBlbHNlIGlmICgicmlnaHRBcnJvdyIgPT0gY29kZVN0cikKLSAgICAg
ICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JJR0hUOworICAgICAgICBjb2RlID0gV2Vi
RXZlbnRTZW5kZXI6OlZLRVlfUklHSFQ7CiAgICAgZWxzZSBpZiAoImRvd25BcnJvdyIgPT0gY29k
ZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0RPV047CisgICAgICAg
IGNvZGUgPSBXZWJFdmVudFNlbmRlcjo6VktFWV9ET1dOOwogICAgIGVsc2UgaWYgKCJsZWZ0QXJy
b3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9MRUZU
OworICAgICAgICBjb2RlID0gV2ViRXZlbnRTZW5kZXI6OlZLRVlfTEVGVDsKICAgICBlbHNlIGlm
ICgidXBBcnJvdyIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpW
S0VZX1VQOworICAgICAgICBjb2RlID0gV2ViRXZlbnRTZW5kZXI6OlZLRVlfVVA7CiAgICAgZWxz
ZSBpZiAoImluc2VydCIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0
OjpWS0VZX0lOU0VSVDsKKyAgICAgICAgY29kZSA9IFdlYkV2ZW50U2VuZGVyOjpWS0VZX0lOU0VS
VDsKICAgICBlbHNlIGlmICgiZGVsZXRlIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Vi
a2l0X3N1cHBvcnQ6OlZLRVlfREVMRVRFOworICAgICAgICBjb2RlID0gV2ViRXZlbnRTZW5kZXI6
OlZLRVlfREVMRVRFOwogICAgIGVsc2UgaWYgKCJwYWdlVXAiID09IGNvZGVTdHIpCi0gICAgICAg
IGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9QUklPUjsKKyAgICAgICAgY29kZSA9IFdlYkV2
ZW50U2VuZGVyOjpWS0VZX1BSSU9SOwogICAgIGVsc2UgaWYgKCJwYWdlRG93biIgPT0gY29kZVN0
cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX05FWFQ7CisgICAgICAgIGNv
ZGUgPSBXZWJFdmVudFNlbmRlcjo6VktFWV9ORVhUOwogICAgIGVsc2UgaWYgKCJob21lIiA9PSBj
b2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfSE9NRTsKKyAgICAg
ICAgY29kZSA9IFdlYkV2ZW50U2VuZGVyOjpWS0VZX0hPTUU7CiAgICAgZWxzZSBpZiAoImVuZCIg
PT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0VORDsKKyAg
ICAgICAgY29kZSA9IFdlYkV2ZW50U2VuZGVyOjpWS0VZX0VORDsKICAgICBlbHNlIGlmICgicHJp
bnRTY3JlZW4iID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktF
WV9TTkFQU0hPVDsKKyAgICAgICAgY29kZSA9IFdlYkV2ZW50U2VuZGVyOjpWS0VZX1NOQVBTSE9U
OwogICAgIGVsc2UgaWYgKCJtZW51IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hh
bmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfQVBQUy4KLSAgICAgICAgY29kZSA9IDB4
NUQ7CisgICAgICAgIGNvZGUgPSBXZWJFdmVudFNlbmRlcjo6VktFWV9BUFBTOwogICAgIGVsc2Ug
aWYgKCJsZWZ0Q29udHJvbCIgPT0gY29kZVN0cikKLSAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0
aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZX0xDT05UUk9MLgotICAgICAgICBjb2RlID0gMHhB
MjsKKyAgICAgICAgY29kZSA9IFdlYkV2ZW50U2VuZGVyOjpWS0VZX0xDT05UUk9MOwogICAgIGVs
c2UgaWYgKCJyaWdodENvbnRyb2wiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFu
Z2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9SQ09OVFJPTC4KLSAgICAgICAgY29kZSA9
IDB4QTM7CisgICAgICAgIGNvZGUgPSBXZWJFdmVudFNlbmRlcjo6VktFWV9SQ09OVFJPTDsKICAg
ICBlbHNlIGlmICgibGVmdFNoaWZ0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hh
bmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTFNISUZULgotICAgICAgICBjb2RlID0g
MHhBMDsKKyAgICAgICAgY29kZSA9IFdlYkV2ZW50U2VuZGVyOjpWS0VZX0xTSElGVDsKICAgICBl
bHNlIGlmICgicmlnaHRTaGlmdCIgPT0gY29kZVN0cikKLSAgICAgICAgLy8gRklYTUU6IENoYW5n
ZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JTSElGVC4KLSAgICAgICAgY29kZSA9IDB4
QTE7CisgICAgICAgIGNvZGUgPSBXZWJFdmVudFNlbmRlcjo6VktFWV9SU0hJRlQ7CiAgICAgZWxz
ZSBpZiAoImxlZnRBbHQiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhp
cyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MTUVOVS4KLSAgICAgICAgY29kZSA9IDB4QTQ7Cisg
ICAgICAgIGNvZGUgPSBXZWJFdmVudFNlbmRlcjo6VktFWV9MTUVOVTsKICAgICBlbHNlIGlmICgi
cmlnaHRBbHQiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3
ZWJraXRfc3VwcG9ydDo6VktFWV9STUVOVS4KLSAgICAgICAgY29kZSA9IDB4QTU7CisgICAgICAg
IGNvZGUgPSBXZWJFdmVudFNlbmRlcjo6VktFWV9STUVOVTsKICAgICBlbHNlIHsKICAgICAgICAg
Ly8gQ29tcGFyZSB0aGUgaW5wdXQgc3RyaW5nIHdpdGggdGhlIGZ1bmN0aW9uLWtleSBuYW1lcyBk
ZWZpbmVkIGJ5IHRoZQogICAgICAgICAvLyBET00gc3BlYyAoaS5lLiAiRjEiLC4uLiwiRjI0Iiku
IElmIHRoZSBpbnB1dCBzdHJpbmcgaXMgYSBmdW5jdGlvbi1rZXkKQEAgLTU4OCw3ICs2NDUsNyBA
QCB2b2lkIEV2ZW50U2VuZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiAgICAgICAgICAgICBzbnByaW50ZihmdW5jdGlvbkNo
YXJzLCAxMCwgIkYlZCIsIGkpOwogICAgICAgICAgICAgc3RyaW5nIGZ1bmN0aW9uS2V5TmFtZShm
dW5jdGlvbkNoYXJzKTsKICAgICAgICAgICAgIGlmIChmdW5jdGlvbktleU5hbWUgPT0gY29kZVN0
cikgewotICAgICAgICAgICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9GMSArIChp
IC0gMSk7CisgICAgICAgICAgICAgICAgY29kZSA9IFdlYkV2ZW50U2VuZGVyOjpWS0VZX0YxICsg
KGkgLSAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtNjEzLDcgKzY3MCwxMCBAQCB2b2lkIEV2ZW50U2VuZGVyOjprZXlEb3duKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiAgICAgZXZlbnRE
b3duLm1vZGlmaWVycyA9IDA7CiAgICAgZXZlbnREb3duLndpbmRvd3NLZXlDb2RlID0gY29kZTsK
ICNpZiBPUyhMSU5VWCkgJiYgVVNFKEdUSykKLSAgICBldmVudERvd24ubmF0aXZlS2V5Q29kZSA9
IHdlYmtpdF9zdXBwb3J0OjpOYXRpdmVLZXlDb2RlRm9yV2luZG93c0tleUNvZGUoY29kZSwgbmVl
ZHNTaGlmdEtleU1vZGlmaWVyKTsKKyAgICBpZiAoZ2VuZXJhdGVDaGFyKQorICAgICAgICBldmVu
dERvd24ubmF0aXZlS2V5Q29kZSA9IHRleHQ7CisgICAgZWxzZQorICAgICAgICBldmVudERvd24u
bmF0aXZlS2V5Q29kZSA9IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29kZShjb2RlKTsKICNl
bmRpZgogCiAgICAgaWYgKGdlbmVyYXRlQ2hhcikgewpAQCAtNzc1LDcgKzgzNSw3IEBAIHZvaWQg
RXZlbnRTZW5kZXI6OnJlcGxheVNhdmVkRXZlbnRzKCkKICAgICAgICAgc3dpdGNoIChlLnR5cGUp
IHsKICAgICAgICAgY2FzZSBTYXZlZEV2ZW50OjpNb3VzZU1vdmU6IHsKICAgICAgICAgICAgIFdl
Yk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2
ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIGUucG9zLCAmZXZlbnQpOworICAgICAgICAg
ICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VNb3ZlLCBwcmVzc2VkQnV0dG9u
LCBlLnBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAg
ICAgICAgICAgIGRvTW91c2VNb3ZlKGV2ZW50KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CkBAIC03ODQsNyArODQ0LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVwbGF5U2F2ZWRFdmVu
dHMoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU2F2ZWRFdmVudDo6TW91c2VV
cDogewogICAgICAgICAgICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAgICAgICAgICAgIGluaXRN
b3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGUuYnV0dG9uVHlwZSwgbGFzdE1vdXNl
UG9zLCAmZXZlbnQpOworICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6
TW91c2VVcCwgZS5idXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2
ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgICAgICAgICBkb01vdXNlVXAoZXZlbnQpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg0MywxMCArOTAzLDEwIEBAIHZvaWQg
RXZlbnRTZW5kZXI6OmNvbnRleHRDbGljayhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQ3BwVmFyaWFudCogcmVzCiAgICAgLy8gR2VuZXJhdGUgcmlnaHQgbW91c2UgZG93biBhbmQg
dXAuCiAgICAgV2ViTW91c2VFdmVudCBldmVudDsKICAgICBwcmVzc2VkQnV0dG9uID0gV2ViTW91
c2VFdmVudDo6QnV0dG9uUmlnaHQ7Ci0gICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6
TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZl
bnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93biwgV2ViTW91
c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZl
bnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQo
ZXZlbnQpOwogCi0gICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VVcCwgV2Vi
TW91c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50KTsKKyAgICBpbml0
TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25S
aWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxl
Z2F0ZSkpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiAKICAgICBw
cmVzc2VkQnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uTm9uZTsKQEAgLTkwNiw3ICs5NjYs
NyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpiZWdpbkRyYWdXaXRoRmlsZXMoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
ZmlsZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgV2ViRHJhZ0RhdGE6Okl0ZW0gaXRlbTsKICAg
ICAgICAgaXRlbS5zdG9yYWdlVHlwZSA9IFdlYkRyYWdEYXRhOjpJdGVtOjpTdG9yYWdlVHlwZUZp
bGVuYW1lOwotICAgICAgICBpdGVtLmZpbGVuYW1lRGF0YSA9IHdlYmtpdF9zdXBwb3J0OjpHZXRB
YnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChmaWxlc1tpXSk7CisgICAgICAgIGl0ZW0uZmls
ZW5hbWVEYXRhID0gbV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgo
ZmlsZXNbaV0pOwogICAgICAgICBjdXJyZW50RHJhZ0RhdGEuYWRkSXRlbShpdGVtKTsKICAgICAg
ICAgYWJzb2x1dGVGaWxlbmFtZXNbaV0gPSBpdGVtLmZpbGVuYW1lRGF0YTsKICAgICB9CkBAIC0x
MDE0LDcgKzEwNzQsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpzZW5kQ3VycmVudFRvdWNoRXZlbnQo
Y29uc3QgV2ViSW5wdXRFdmVudDo6VHlwZSB0eXBlKQogICAgIFdlYlRvdWNoRXZlbnQgdG91Y2hF
dmVudDsKICAgICB0b3VjaEV2ZW50LnR5cGUgPSB0eXBlOwogICAgIHRvdWNoRXZlbnQubW9kaWZp
ZXJzID0gdG91Y2hNb2RpZmllcnM7Ci0gICAgdG91Y2hFdmVudC50aW1lU3RhbXBTZWNvbmRzID0g
Z2V0Q3VycmVudEV2ZW50VGltZVNlYygpOworICAgIHRvdWNoRXZlbnQudGltZVN0YW1wU2Vjb25k
cyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAgICAgdG91Y2hFdmVudC50
b3VjaGVzTGVuZ3RoID0gdG91Y2hQb2ludHMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCB0b3VjaFBvaW50cy5zaXplKCk7ICsraSkKICAgICAgICAgdG91Y2hFdmVudC50b3Vj
aGVzW2ldID0gdG91Y2hQb2ludHNbaV07CkBAIC0xMDU0LDcgKzExMTQsNyBAQCB2b2lkIEV2ZW50
U2VuZGVyOjpoYW5kbGVNb3VzZVdoZWVsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRz
LCBDcHBWYXJpYW50KgogICAgICAgICBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzID0gYXJndW1l
bnRzWzNdLnRvQm9vbGVhbigpOwogCiAgICAgV2ViTW91c2VXaGVlbEV2ZW50IGV2ZW50OwotICAg
IGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWwsIHByZXNzZWRCdXR0b24s
IGxhc3RNb3VzZVBvcywgJmV2ZW50KTsKKyAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50
OjpNb3VzZVdoZWVsLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3Vy
cmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgZXZlbnQud2hlZWxUaWNrc1ggPSBz
dGF0aWNfY2FzdDxmbG9hdD4oaG9yaXpvbnRhbCk7CiAgICAgZXZlbnQud2hlZWxUaWNrc1kgPSBz
dGF0aWNfY2FzdDxmbG9hdD4odmVydGljYWwpOwogICAgIGV2ZW50LmRlbHRhWCA9IGV2ZW50Lndo
ZWVsVGlja3NYOwpAQCAtMTIxNyw3ICsxMjc3LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2VzdHVy
ZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSwgY29uc3QgQ3BwQXJndW1lbnRMaXN0Jgog
CiAgICAgZXZlbnQuZ2xvYmFsWCA9IGV2ZW50Lng7CiAgICAgZXZlbnQuZ2xvYmFsWSA9IGV2ZW50
Lnk7Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMo
KTsKKyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYyht
X2RlbGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOwogfQog
CkBAIC0xMjI5LDcgKzEyODksNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlRmxpbmdDYW5j
ZWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbgogCiAgICAgV2Vi
R2VzdHVyZUV2ZW50IGV2ZW50OwogICAgIGV2ZW50LnR5cGUgPSBXZWJJbnB1dEV2ZW50OjpHZXN0
dXJlRmxpbmdDYW5jZWw7Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRF
dmVudFRpbWVTZWMoKTsKKyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2
ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQo
ZXZlbnQpOwogfQogCkBAIC0xMjUzLDcgKzEzMTMsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0
dXJlRmxpbmdTdGFydChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dAogCiAgICAgZXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WCA9IHN0YXRpY19jYXN0PGZs
b2F0Pihhcmd1bWVudHNbMl0udG9Eb3VibGUoKSk7CiAgICAgZXZlbnQuZGF0YS5mbGluZ1N0YXJ0
LnZlbG9jaXR5WSA9IHN0YXRpY19jYXN0PGZsb2F0Pihhcmd1bWVudHNbM10udG9Eb3VibGUoKSk7
Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsK
KyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2Rl
bGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOwogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0RGVsZWdhdGUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3REZWxlZ2F0ZS5oCmluZGV4IGU2MjZlY2NkMDFlMjA2MDk3MzcyMmMwNDc4M2MzYjEz
ZTMxYzA4MjMuLjA0OThmY2IzZjNmMTM2NDk2MzNkNTJlMTZhYTE4ZmEyMzlhMjA3NTIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RE
ZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3REZWxlZ2F0ZS5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcG9zdFRhc2soV2ViVGVzdFJ1bm5lcjo6V2ViVGFzayopID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqLCBsb25nIGxvbmcg
bXMpID0gMDsKICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRG
aWxlU3lzdGVtKGNvbnN0IFdlYktpdDo6V2ViVmVjdG9yPFdlYktpdDo6V2ViU3RyaW5nPiYgYWJz
b2x1dGVGaWxlbmFtZXMpID0gMDsKKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBnZXRDdXJyZW50VGlt
ZUluTWlsbGlzZWNvbmQoKSA9IDA7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyBnZXRB
YnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkgPSAw
OwogfTsKIAogI2VuZGlmIC8vIFRlc3REZWxlZ2F0ZV9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmlu
ZGV4IGU2ZWFkMTU1MTU3YTFiMDM1MWVmOTE1MjRmYjc0ZmFhODRlNWU1YmUuLmYwZGE3OTgzMTE3
ZWMzODEyNzZiNWE3OGE1NWU0OGVhZGRkNzFlMjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBA
IC0zMiw1MSArMzIsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RSdW5u
ZXIuaCIKIAotI2luY2x1ZGUgIldlYkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJX
ZWJCaW5kaW5ncy5oIgotI2luY2x1ZGUgIldlYkNvbnNvbGVNZXNzYWdlLmgiCi0jaW5jbHVkZSAi
V2ViRGV2aWNlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvbkNs
aWVudE1vY2suaCIKLSNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgotI2luY2x1ZGUgIldlYkVsZW1l
bnQuaCIKLSNpbmNsdWRlICJXZWJGaW5kT3B0aW9ucy5oIgotI2luY2x1ZGUgIldlYkZyYW1lLmgi
Ci0jaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCi0jaW5jbHVkZSAiV2ViSURC
RmFjdG9yeS5oIgotI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgotI2luY2x1ZGUgIldlYklu
dGVudC5oIgotI2luY2x1ZGUgIldlYkludGVudFJlcXVlc3QuaCIKLSNpbmNsdWRlICJXZWJLaXQu
aCIKLSNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKLSNpbmNsdWRlICJXZWJQ
cmludFBhcmFtcy5oIgotI2luY2x1ZGUgIldlYlNjcmlwdFNvdXJjZS5oIgotI2luY2x1ZGUgIldl
YlNlY3VyaXR5UG9saWN5LmgiCi0jaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJX
ZWJTdXJyb3VuZGluZ1RleHQuaCIKLSNpbmNsdWRlICJXZWJWaWV3LmgiCi0jaW5jbHVkZSAiV2Vi
V29ya2VySW5mby5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRhdGEuaCIKLSNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJTaXplLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0jaW5jbHVkZSAidjgvaW5j
bHVkZS92OC5oIgotI2luY2x1ZGUgIndlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0LmgiCi0j
aW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPGNsb2NhbGU+Ci0jaW5jbHVkZSA8Y3N0ZGxp
Yj4KLSNpbmNsdWRlIDxsaW1pdHM+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDx3dGYv
T3duQXJyYXlQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIE9T
KExJTlVYKSB8fCBPUyhBTkRST0lEKQotI2luY2x1ZGUgImxpbnV4L1dlYkZvbnRSZW5kZXJpbmcu
aCIKLSNlbmRpZgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7Ci11c2luZyBuYW1lc3BhY2Ugc3RkOwotCiBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkK
IHsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAppbmRleCAzOWUxOWQ1NzM2NWQwM2M2Njg0MWY4N2YyNmFj
ZjQ1NDFlZTA3ZDdhLi41MDMyNzFiNWQ5YjVjZWUwOTk4YmNhODUyYzNjYTA5Mzc1MGE2NWUyIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvVGVzdFJ1bm5lci5oCkBAIC0zMywyMSArMzMsNiBAQAogI2RlZmluZSBUZXN0UnVubmVy
X2gKIAogI2luY2x1ZGUgIkNwcEJvdW5kQ2xhc3MuaCIKLSNpbmNsdWRlICJXZWJEZWxpdmVyZWRJ
bnRlbnRDbGllbnQuaCIKLSNpbmNsdWRlICJXZWJUZXh0RGlyZWN0aW9uLmgiCi0jaW5jbHVkZSAi
cGxhdGZvcm0vV2ViQXJyYXlCdWZmZXJWaWV3LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU3Ry
aW5nLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0jaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNz
IFdlYkdlb2xvY2F0aW9uQ2xpZW50TW9jazsKLX0KLQotbmFtZXNwYWNlIHdlYmtpdF9zdXBwb3J0
IHsKLWNsYXNzIFNjb3BlZFRlbXBEaXJlY3Rvcnk7Ci19CiAKIGNsYXNzIFRlc3RSdW5uZXIgOiBw
dWJsaWMgQ3BwQm91bmRDbGFzcyB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJm
YWNlcy5jcHAKaW5kZXggZjdkYjE3MTk4ZTY3ZjhhOGQ4MzIwZGU2NWVhNGI0MDliNjE5MGIzZi4u
OWE4Njk1M2MzY2I4NTM3NDBlYWE3OGJhZmZhMTg4YzRiNzI3MjhmOCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFj
ZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1dlYlRlc3RJbnRlcmZhY2VzLmNwcApAQCAtNjcsNiArNjcsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHBvc3RUYXNrKFdlYlRhc2sqKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdERlbGF5
ZWRUYXNrKFdlYlRhc2sqLCBsb25nIGxvbmcgbXMpOwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHJl
Z2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYnNv
bHV0ZUZpbGVuYW1lcyk7CisgICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1p
bGxpc2Vjb25kKCk7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdl
YlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCk7CiAKIHByaXZhdGU6
CiAgICAgVGVzdEludGVyZmFjZXMgbV9pbnRlcmZhY2VzOwpAQCAtMTQ3LDYgKzE0OSwxNiBAQCBX
ZWJTdHJpbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpyZWdpc3Rlcklzb2xhdGVkRmls
ZVN5c3RlbShjb25zdCBXZWJWZWN0bwogICAgIHJldHVybiBtX2RlbGVnYXRlLT5yZWdpc3Rlcklz
b2xhdGVkRmlsZVN5c3RlbShhYnNvbHV0ZUZpbGVuYW1lcyk7CiB9CiAKK2xvbmcgbG9uZyBXZWJU
ZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpCit7
CisgICAgcmV0dXJuIG1fZGVsZWdhdGUtPmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpOwor
fQorCitXZWJLaXQ6OldlYlN0cmluZyBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OmdldEFi
c29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKQorewor
ICAgIHJldHVybiBtX2RlbGVnYXRlLT5nZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChw
YXRoKTsKK30KKwogV2ViVGVzdEludGVyZmFjZXM6OldlYlRlc3RJbnRlcmZhY2VzKCkKIHsKICAg
ICBtX2ludGVybmFsID0gbmV3IEludGVybmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IGQzNzYyMmRiOTk1ODhmNzkxNWIyNDRlZjljYjdk
MDVlMjEyZmM3MzEuLjg3ZWIyNTA4YmM0NDM2NWY2MzE2YjI3ZjUyMDlhZjg0OTExZDc5MzkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE1
MDAsNiArMTUwMCwxNiBAQCBXZWJTdHJpbmcgV2ViVmlld0hvc3Q6OnJlZ2lzdGVySXNvbGF0ZWRG
aWxlU3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYgogICAgIHJldHVybiB3ZWJr
aXRfc3VwcG9ydDo6UmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1dGVGaWxlbmFtZXMp
OwogfQogCitsb25nIGxvbmcgV2ViVmlld0hvc3Q6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29u
ZCgpCit7CisgICAgcmV0dXJuIHdlYmtpdF9zdXBwb3J0OjpHZXRDdXJyZW50VGltZUluTWlsbGlz
ZWNvbmQoKTsKK30KKworV2ViS2l0OjpXZWJTdHJpbmcgV2ViVmlld0hvc3Q6OmdldEFic29sdXRl
V2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKQoreworICAgIHJl
dHVybiB3ZWJraXRfc3VwcG9ydDo6R2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgocGF0
aCk7Cit9CisKIC8vIFB1YmxpYyBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogV2ViVmlld0hvc3Q6OldlYlZpZXdI
b3N0KFRlc3RTaGVsbCogc2hlbGwpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuaAppbmRleCA5YWY0N2UwNzhmNzZhZjA3YzQ0MDA4NzZmYTk3YWI5YTg1NGQ5NTI3
Li44NjAwNzE5NGIwNDM1NjcyYzAxNDk5OWQ1ODYwNTNlY2ZmNWY4YjRmIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTEzOSw2ICsxMzksOCBAQCBj
bGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1YmxpYyBX
ZWJLaXQ6OldlYkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhXZWJUZXN0
UnVubmVyOjpXZWJUYXNrKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBvc3REZWxheWVk
VGFzayhXZWJUZXN0UnVubmVyOjpXZWJUYXNrKiwgbG9uZyBsb25nIG1zKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNv
bnN0IFdlYktpdDo6V2ViVmVjdG9yPFdlYktpdDo6V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFt
ZXMpIE9WRVJSSURFOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxs
aXNlY29uZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJz
b2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpIE9WRVJS
SURFOwogCiAgICAgLy8gTmF2aWdhdGlvbkhvc3QKICAgICB2aXJ0dWFsIGJvb2wgbmF2aWdhdGUo
Y29uc3QgVGVzdE5hdmlnYXRpb25FbnRyeSYsIGJvb2wgcmVsb2FkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170575</attachid>
            <date>2012-10-25 00:54:30 -0700</date>
            <delta_ts>2012-10-25 10:19:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-100344-20121025095303.patch</filename>
            <type>text/plain</type>
            <size>26852</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uNmEzYzg5ODc0YmMyZmE0OTYwZDkzZjNkZjBmYjM1OWFmNWZhZTkyOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDEyLTEwLTI1ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHJlbWFpbmluZyB1c2FnZXMgb2Ygd2Via2l0X3N1
cHBvcnQgZnJvbSB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBtb3N0IGltcG9ydGFudCBwYXJ0IGlzIHRvIG5vdCBy
ZWx5IG9uIGNhbGxpbmcgb3V0IHRvIGdkay9YMTEgdG8KKyAgICAgICAgdHJhbnNsYXRlIGtleWNv
ZGVzIHRvIG5hdGl2ZSBrZXljb2RlcywgYXMgdGhpcyBpcyBub3QgcG9zc2libGUgaW5zaWRlCisg
ICAgICAgIHRoZSBzYW5kYm94LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
RFJUVGVzdFJ1bm5lci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKHdlYmtpdF9zdXBw
b3J0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1Ymxp
Yy9XZWJUZXN0RGVsZWdhdGUuaDoKKyAgICAgICAgKFdlYlRlc3REZWxlZ2F0ZSk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2Vu
ZGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6RXZlbnRTZW5kZXI6OmRvRHJhZ0Ryb3ApOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZl
bnRTZW5kZXI6OnVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b24pOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6RXZlbnRTZW5kZXI6Om1vdXNlRG93bik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpF
dmVudFNlbmRlcjo6bW91c2VVcCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRl
cjo6bW91c2VNb3ZlVG8pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omtl
eURvd24pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OnJlcGxheVNhdmVk
RXZlbnRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpjb250ZXh0Q2xp
Y2spOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmJlZ2luRHJhZ1dpdGhG
aWxlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6c2VuZEN1cnJlbnRU
b3VjaEV2ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpoYW5kbGVN
b3VzZVdoZWVsKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpnZXN0dXJl
RXZlbnQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omdlc3R1cmVGbGlu
Z0NhbmNlbCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Z2VzdHVyZUZs
aW5nU3RhcnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3REZWxlZ2F0ZS5oOgorICAgICAgICAoVGVzdERlbGVnYXRlKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2Vi
VGVzdEludGVyZmFjZXMuY3BwOgorICAgICAgICAoV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6
Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRB
YnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmdldEN1cnJl
bnRUaW1lSW5NaWxsaXNlY29uZCk6CisgICAgICAgIChXZWJWaWV3SG9zdDo6Z2V0QWJzb2x1dGVX
ZWJTdHJpbmdGcm9tVVRGOFBhdGgpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdCk6CisKIDIwMTItMTAtMjQgIERp
cmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgbnJ3dDogdHJ1bmNh
dGUgbWV0ZXIgbGluZXMgcHJvcGVybHkgb24gd2luZG93cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCmluZGV4IGVjNDc3OGZkNWM0NmY4ZjMyODc1OGEx
NTdhMzI4MjE0NTRiNWIyMjEuLmNjZGZjNDM5NGRmNmRkYzllMDRiZjE1M2Y1OTU3MDdjMWI3NmYw
YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5u
ZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgK
QEAgLTQzLDcgKzQzLDIzIEBACiAjZGVmaW5lIERSVFRlc3RSdW5uZXJfaAogCiAjaW5jbHVkZSAi
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIgorI2luY2x1ZGUgIldlYkRlbGl2ZXJlZEludGVu
dENsaWVudC5oIgogI2luY2x1ZGUgIldlYlRhc2suaCIKKyNpbmNsdWRlICJXZWJUZXh0RGlyZWN0
aW9uLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViQXJyYXlCdWZmZXJWaWV3LmgiCisjaW5jbHVk
ZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCisj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKK2NsYXNzIFdlYkdlb2xvY2F0aW9uQ2xpZW50TW9jazsKK30KKworbmFtZXNw
YWNlIHdlYmtpdF9zdXBwb3J0IHsKK2NsYXNzIFNjb3BlZFRlbXBEaXJlY3Rvcnk7Cit9CisKIAog
Y2xhc3MgVGVzdFNoZWxsOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oCmluZGV4
IDZlMjE4ODEwN2JhOTc0NWJlNmQ5NTMzODkyZTRhNzRmN2YzZTYwMDUuLmFiNDdkNGY5ZGNlYTZk
N2VjOTE4YmRkMWUyZWY0ZGVmMmM1ODJlMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxl
Z2F0ZS5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9zdERl
bGF5ZWRUYXNrKFdlYlRhc2sqLCBsb25nIGxvbmcgbXMpID0gMDsKIAogICAgIHZpcnR1YWwgV2Vi
S2l0OjpXZWJTdHJpbmcgcmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViS2l0OjpX
ZWJWZWN0b3I8V2ViS2l0OjpXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykgPSAwOworICAg
IHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpID0gMDsKKyAg
ICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQ
YXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50Lmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50
LmgKaW5kZXggNjBjYzYyNzFlY2ZhZDllZDY4YmRlNDI4ODUxNTM4NDI2ZDZiODQwMy4uNDdmZDQ2
NmFmZjMyZDc5Y2VjYjQ3MDY2YTczYjdhNWVjNWNjMDBiOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuaApA
QCAtNDMsNyArNDMsNiBAQAogI2RlZmluZSBDcHBWYXJpYW50X2gKIAogI2luY2x1ZGUgIldlYkJp
bmRpbmdzLmgiCi0jaW5jbHVkZSAid2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaCIKICNp
bmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNl
bmRlci5jcHAKaW5kZXggMmY0YTA1NTRjNWMzNmQzZWZiNjkwZjQ3ZThjMmY4OTNjYmZhZjkzZS4u
ZWY3ZTdhNmM0YzkxMzc3M2NlMTM1YTAzNGYzNTlkYTIxZDVhMzUyNyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50
U2VuZGVyLmNwcApAQCAtNDYsMTMgKzQ2LDEzIEBACiAjaW5jbHVkZSAiVGVzdERlbGVnYXRlLmgi
CiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ09wZXJh
dGlvbi5oIgorI2luY2x1ZGUgIldlYkV2ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hQ
b2ludC5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJEcmFn
RGF0YS5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlBvaW50LmgiCiAjaW5jbHVkZSAicGxhdGZv
cm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViVmVjdG9yLmgiCi0jaW5jbHVk
ZSAid2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAKQEAgLTYwLDYgKzYwLDEwIEBACiAj
aW5jbHVkZSAid2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmgiCiAjZW5kaWYKIAorI2lmIE9TKExJ
TlVYKSAmJiBVU0UoR1RLKQorI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1zLmg+CisjZW5kaWYKKwog
Ly8gRklYTUU6IGxheW91dCBiZWZvcmUgZWFjaCBldmVudD8KIAogdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKQEAgLTczLDYgKzc3LDMxIEBAIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBFdmVudFNlbmRlcjo6
bGFzdEJ1dHRvblR5cGUgPSBXZWJNb3VzZUV2ZW50OjpCdXR0b25Ob25lOwogCiBuYW1lc3BhY2Ug
ewogCisvLyBUaGUga2V5Y29kZXMgbWF0Y2ggdGhlIHZhbHVlcyBvZiB0aGUgdmlydHVhbCBrZXlj
b2RlcyBmb3VuZCBoZXJlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93
aW5kb3dzL2Rlc2t0b3AvZGQzNzU3MzEodj12cy44NSkuYXNweAorZW51bSB7CisgICAgVktFWV9S
RVRVUk4gICA9IDB4MEQsCisgICAgVktFWV9QUklPUiAgICA9IDB4MjEsCisgICAgVktFWV9ORVhU
ICAgICA9IDB4MjIsCisgICAgVktFWV9FTkQgICAgICA9IDB4MjMsCisgICAgVktFWV9IT01FICAg
ICA9IDB4MjQsCisgICAgVktFWV9MRUZUICAgICA9IDB4MjUsCisgICAgVktFWV9VUCAgICAgICA9
IDB4MjYsCisgICAgVktFWV9SSUdIVCAgICA9IDB4MjcsCisgICAgVktFWV9ET1dOICAgICA9IDB4
MjgsCisgICAgVktFWV9TTkFQU0hPVCA9IDB4MkMsCisgICAgVktFWV9JTlNFUlQgICA9IDB4MkQs
CisgICAgVktFWV9ERUxFVEUgICA9IDB4MkUsCisgICAgVktFWV9BUFBTICAgICA9IDB4NUQsCisg
ICAgVktFWV9GMSAgICAgICA9IDB4NzAsCisgICAgVktFWV9MU0hJRlQgICA9IDB4QTAsCisgICAg
VktFWV9SU0hJRlQgICA9IDB4QTEsCisgICAgVktFWV9MQ09OVFJPTCA9IDB4QTIsCisgICAgVktF
WV9SQ09OVFJPTCA9IDB4QTMsCisgICAgVktFWV9MTUVOVSAgICA9IDB4QTQsCisgICAgVktFWV9S
TUVOVSAgICA9IDB4QTUsCit9OworCisKIHN0cnVjdCBTYXZlZEV2ZW50IHsKICAgICBlbnVtIFNh
dmVkRXZlbnRUeXBlIHsKICAgICAgICAgVW5zcGVjaWZpZWQsCkBAIC0xMjUsOSArMTU0LDkgQEAg
aW5saW5lIGJvb2wgb3V0c2lkZU11bHRpQ2xpY2tSYWRpdXMoY29uc3QgV2ViUG9pbnQmIGEsIGNv
bnN0IFdlYlBvaW50JiBiKQogLy8gZGVwZW5kZW50IChlLmcuLCBkcmFnZ2luZyBoYXMgYSB0aW1l
b3V0IHZzIHNlbGVjdGlvbikuCiB1aW50MzIgdGltZU9mZnNldE1zID0gMDsKIAotZG91YmxlIGdl
dEN1cnJlbnRFdmVudFRpbWVTZWMoKQorZG91YmxlIGdldEN1cnJlbnRFdmVudFRpbWVTZWMoVGVz
dERlbGVnYXRlKiBkZWxlZ2F0ZSkKIHsKLSAgICByZXR1cm4gKHdlYmtpdF9zdXBwb3J0OjpHZXRD
dXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSArIHRpbWVPZmZzZXRNcykgLyAxMDAwLjA7CisgICAg
cmV0dXJuIChkZWxlZ2F0ZS0+Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgKyB0aW1lT2Zm
c2V0TXMpIC8gMTAwMC4wOwogfQogCiB2b2lkIGFkdmFuY2VFdmVudFRpbWUoaW50MzJfdCBkZWx0
YU1zKQpAQCAtMTM1LDcgKzE2NCw3IEBAIHZvaWQgYWR2YW5jZUV2ZW50VGltZShpbnQzMl90IGRl
bHRhTXMpCiAgICAgdGltZU9mZnNldE1zICs9IGRlbHRhTXM7CiB9CiAKLXZvaWQgaW5pdE1vdXNl
RXZlbnQoV2ViSW5wdXRFdmVudDo6VHlwZSB0LCBXZWJNb3VzZUV2ZW50OjpCdXR0b24gYiwgY29u
c3QgV2ViUG9pbnQmIHBvcywgV2ViTW91c2VFdmVudCogZSkKK3ZvaWQgaW5pdE1vdXNlRXZlbnQo
V2ViSW5wdXRFdmVudDo6VHlwZSB0LCBXZWJNb3VzZUV2ZW50OjpCdXR0b24gYiwgY29uc3QgV2Vi
UG9pbnQmIHBvcywgV2ViTW91c2VFdmVudCogZSwgZG91YmxlIHRzKQogewogICAgIGUtPnR5cGUg
PSB0OwogICAgIGUtPmJ1dHRvbiA9IGI7CkBAIC0xNDQsNyArMTczLDcgQEAgdm9pZCBpbml0TW91
c2VFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHQsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBj
b25zdCBXZWJQb2kKICAgICBlLT55ID0gcG9zLnk7CiAgICAgZS0+Z2xvYmFsWCA9IHBvcy54Owog
ICAgIGUtPmdsb2JhbFkgPSBwb3MueTsKLSAgICBlLT50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3Vy
cmVudEV2ZW50VGltZVNlYygpOworICAgIGUtPnRpbWVTdGFtcFNlY29uZHMgPSB0czsKICAgICBl
LT5jbGlja0NvdW50ID0gY2xpY2tDb3VudDsKIH0KIApAQCAtMjE0LDE2ICsyNDMsMTYgQEAgYm9v
bCBnZXRFZGl0Q29tbWFuZChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCwgc3RyaW5nKiBu
YW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKGV2ZW50LndpbmRvd3NL
ZXlDb2RlKSB7Ci0gICAgY2FzZSB3ZWJraXRfc3VwcG9ydDo6VktFWV9MRUZUOgorICAgIGNhc2Ug
VktFWV9MRUZUOgogICAgICAgICAqbmFtZSA9ICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmUiOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JJR0hUOgorICAgIGNh
c2UgVktFWV9SSUdIVDoKICAgICAgICAgKm5hbWUgPSAiTW92ZVRvRW5kT2ZMaW5lIjsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSB3ZWJraXRfc3VwcG9ydDo6VktFWV9VUDoKKyAgICBjYXNlIFZL
RVlfVVA6CiAgICAgICAgICpuYW1lID0gIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIHdlYmtpdF9zdXBwb3J0OjpWS0VZX0RPV046CisgICAgY2Fz
ZSBWS0VZX0RPV046CiAgICAgICAgICpuYW1lID0gIk1vdmVUb0VuZE9mRG9jdW1lbnQiOwogICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAtMjQ4LDYgKzI3Nyw2NiBAQCBlbnVtIEtleUxv
Y2F0aW9uQ29kZSB7CiAgICAgRE9NS2V5TG9jYXRpb25OdW1wYWQgICAgICAgID0gMHgwMwogfTsK
IAorI2lmIE9TKExJTlVYKSAmJiBVU0UoR1RLKQoraW50IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dz
S2V5Q29kZShpbnQga2V5Y29kZSkKK3sKKyAgICBzd2l0Y2ggKGtleWNvZGUpIHsKKyAgICBjYXNl
IFZLRVlfUFJJT1I6CisgICAgICAgIHJldHVybiBHREtfUHJpb3I7CisgICAgY2FzZSBWS0VZX05F
WFQ6CisgICAgICAgIHJldHVybiBHREtfTmV4dDsKKyAgICBjYXNlIFZLRVlfRU5EOgorICAgICAg
ICByZXR1cm4gR0RLX0VuZDsKKyAgICBjYXNlIFZLRVlfSE9NRToKKyAgICAgICAgcmV0dXJuIEdE
S19Ib21lOworICAgIGNhc2UgVktFWV9MRUZUOgorICAgICAgICByZXR1cm4gR0RLX0xlZnQ7Cisg
ICAgY2FzZSBWS0VZX1VQOgorICAgICAgICByZXR1cm4gR0RLX1VwOworICAgIGNhc2UgVktFWV9S
SUdIVDoKKyAgICAgICAgcmV0dXJuIEdES19SaWdodDsKKyAgICBjYXNlIFZLRVlfRE9XTjoKKyAg
ICAgICAgcmV0dXJuIEdES19Eb3duOworICAgIGNhc2UgVktFWV9TTkFQU0hPVDoKKyAgICAgICAg
cmV0dXJuIEdES19QcmludDsKKyAgICBjYXNlIFZLRVlfSU5TRVJUOgorICAgICAgICByZXR1cm4g
R0RLX0luc2VydDsKKyAgICBjYXNlIFZLRVlfREVMRVRFOgorICAgICAgICByZXR1cm4gR0RLX0Rl
bGV0ZTsKKyAgICBjYXNlIFZLRVlfQVBQUzoKKyAgICAgICAgcmV0dXJuIEdES19NZW51OworICAg
IGNhc2UgVktFWV9GMToKKyAgICBjYXNlIFZLRVlfRjEgKyAxOgorICAgIGNhc2UgVktFWV9GMSAr
IDI6CisgICAgY2FzZSBWS0VZX0YxICsgMzoKKyAgICBjYXNlIFZLRVlfRjEgKyA0OgorICAgIGNh
c2UgVktFWV9GMSArIDU6CisgICAgY2FzZSBWS0VZX0YxICsgNjoKKyAgICBjYXNlIFZLRVlfRjEg
KyA3OgorICAgIGNhc2UgVktFWV9GMSArIDg6CisgICAgY2FzZSBWS0VZX0YxICsgOToKKyAgICBj
YXNlIFZLRVlfRjEgKyAxMDoKKyAgICAgICAgcmV0dXJuIEdES19GMSArIChrZXljb2RlIC0gVktF
WV9GMSk7CisgICAgY2FzZSBWS0VZX0xTSElGVDoKKyAgICAgICAgcmV0dXJuIEdES19TaGlmdF9M
OworICAgIGNhc2UgVktFWV9SU0hJRlQ6CisgICAgICAgIHJldHVybiBHREtfU2hpZnRfUjsKKyAg
ICBjYXNlIFZLRVlfTENPTlRST0w6CisgICAgICAgIHJldHVybiBHREtfQ29udHJvbF9MOworICAg
IGNhc2UgVktFWV9SQ09OVFJPTDoKKyAgICAgICAgcmV0dXJuIEdES19Db250cm9sX1I7CisgICAg
Y2FzZSBWS0VZX0xNRU5VOgorICAgICAgICByZXR1cm4gR0RLX0FsdF9MOworICAgIGNhc2UgVktF
WV9STUVOVToKKyAgICAgICAgcmV0dXJuIEdES19BbHRfUjsKKworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9Cisj
ZW5kaWYKKwogfQogCiBFdmVudFNlbmRlcjo6RXZlbnRTZW5kZXIoKQpAQCAtMzQ5LDcgKzQzOCw3
IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnJlc2V0KCkKIHZvaWQgRXZlbnRTZW5kZXI6OmRvRHJhZ0Ry
b3AoY29uc3QgV2ViRHJhZ0RhdGEmIGRyYWdEYXRhLCBXZWJEcmFnT3BlcmF0aW9uc01hc2sgbWFz
aykKIHsKICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgIGluaXRNb3VzZUV2ZW50KFdlYklu
cHV0RXZlbnQ6Ok1vdXNlRG93biwgcHJlc3NlZEJ1dHRvbiwgbGFzdE1vdXNlUG9zLCAmZXZlbnQp
OworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93biwgcHJlc3NlZEJ1
dHRvbiwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxl
Z2F0ZSkpOwogICAgIFdlYlBvaW50IGNsaWVudFBvaW50KGV2ZW50LngsIGV2ZW50LnkpOwogICAg
IFdlYlBvaW50IHNjcmVlblBvaW50KGV2ZW50Lmdsb2JhbFgsIGV2ZW50Lmdsb2JhbFkpOwogICAg
IGN1cnJlbnREcmFnRGF0YSA9IGRyYWdEYXRhOwpAQCAtMzkyLDcgKzQ4MSw3IEBAIGludCBFdmVu
dFNlbmRlcjo6Z2V0QnV0dG9uTnVtYmVyRnJvbVNpbmdsZUFyZyhjb25zdCBDcHBBcmd1bWVudExp
c3QmIGFyZ3VtZW50cykKIAogdm9pZCBFdmVudFNlbmRlcjo6dXBkYXRlQ2xpY2tDb3VudEZvckJ1
dHRvbihXZWJNb3VzZUV2ZW50OjpCdXR0b24gYnV0dG9uVHlwZSkKIHsKLSAgICBpZiAoKGdldEN1
cnJlbnRFdmVudFRpbWVTZWMoKSAtIGxhc3RDbGlja1RpbWVTZWMgPCBtdWx0aXBsZUNsaWNrVGlt
ZVNlYykKKyAgICBpZiAoKGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkgLSBsYXN0
Q2xpY2tUaW1lU2VjIDwgbXVsdGlwbGVDbGlja1RpbWVTZWMpCiAgICAgICAgICYmICghb3V0c2lk
ZU11bHRpQ2xpY2tSYWRpdXMobGFzdE1vdXNlUG9zLCBsYXN0Q2xpY2tQb3MpKQogICAgICAgICAm
JiAoYnV0dG9uVHlwZSA9PSBsYXN0QnV0dG9uVHlwZSkpCiAgICAgICAgICsrY2xpY2tDb3VudDsK
QEAgLTQyMiw3ICs1MTEsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjptb3VzZURvd24oY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdAogCiAgICAgV2ViTW91
c2VFdmVudCBldmVudDsKICAgICBwcmVzc2VkQnV0dG9uID0gYnV0dG9uVHlwZTsKLSAgICBpbml0
TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZURvd24sIGJ1dHRvblR5cGUsIGxhc3RNb3Vz
ZVBvcywgJmV2ZW50KTsKKyAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZURv
d24sIGJ1dHRvblR5cGUsIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1l
U2VjKG1fZGVsZWdhdGUpKTsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAyICYmIChhcmd1
bWVudHNbMV0uaXNPYmplY3QoKSB8fCBhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkpCiAgICAgICAg
IGFwcGx5S2V5TW9kaWZpZXJzKCYoYXJndW1lbnRzWzFdKSwgJmV2ZW50KTsKICAgICB3ZWJ2aWV3
KCktPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOwpAQCAtNDQ4LDcgKzUzNyw3IEBAIHZvaWQgRXZl
bnRTZW5kZXI6Om1vdXNlVXAoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbnQqIHJlc3VsdCkKICAgICAgICAgcmVwbGF5U2F2ZWRFdmVudHMoKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICBpbml0TW91c2VFdmVudChX
ZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBidXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVudCk7
CisgICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGJ1dHRvblR5
cGUsIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdh
dGUpKTsKICAgICAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPj0gMiAmJiAoYXJndW1lbnRzWzFd
LmlzT2JqZWN0KCkgfHwgYXJndW1lbnRzWzFdLmlzU3RyaW5nKCkpKQogICAgICAgICAgICAgYXBw
bHlLZXlNb2RpZmllcnMoJihhcmd1bWVudHNbMV0pLCAmZXZlbnQpOwogICAgICAgICBkb01vdXNl
VXAoZXZlbnQpOwpAQCAtNDk3LDcgKzU4Niw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Om1vdXNlTW92
ZVRvKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1CiAg
ICAgICAgIG1vdXNlRXZlbnRRdWV1ZS5hcHBlbmQoc2F2ZWRFdmVudCk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2Vi
SW5wdXRFdmVudDo6TW91c2VNb3ZlLCBwcmVzc2VkQnV0dG9uLCBtb3VzZVBvcywgJmV2ZW50KTsK
KyAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VNb3ZlLCBwcmVzc2Vk
QnV0dG9uLCBtb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdh
dGUpKTsKICAgICAgICAgZG9Nb3VzZU1vdmUoZXZlbnQpOwogICAgIH0KIH0KQEAgLTUzNSw1MCAr
NjI0LDQzIEBAIHZvaWQgRXZlbnRTZW5kZXI6OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKICAgICBib29sIG5lZWRzU2hpZnRLZXlN
b2RpZmllciA9IGZhbHNlOwogICAgIGlmICgiXG4iID09IGNvZGVTdHIpIHsKICAgICAgICAgZ2Vu
ZXJhdGVDaGFyID0gdHJ1ZTsKLSAgICAgICAgdGV4dCA9IGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6
VktFWV9SRVRVUk47CisgICAgICAgIHRleHQgPSBjb2RlID0gVktFWV9SRVRVUk47CiAgICAgfSBl
bHNlIGlmICgicmlnaHRBcnJvdyIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9z
dXBwb3J0OjpWS0VZX1JJR0hUOworICAgICAgICBjb2RlID0gVktFWV9SSUdIVDsKICAgICBlbHNl
IGlmICgiZG93bkFycm93IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBv
cnQ6OlZLRVlfRE9XTjsKKyAgICAgICAgY29kZSA9IFZLRVlfRE9XTjsKICAgICBlbHNlIGlmICgi
bGVmdEFycm93IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZL
RVlfTEVGVDsKKyAgICAgICAgY29kZSA9IFZLRVlfTEVGVDsKICAgICBlbHNlIGlmICgidXBBcnJv
dyIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX1VQOwor
ICAgICAgICBjb2RlID0gVktFWV9VUDsKICAgICBlbHNlIGlmICgiaW5zZXJ0IiA9PSBjb2RlU3Ry
KQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfSU5TRVJUOworICAgICAgICBj
b2RlID0gVktFWV9JTlNFUlQ7CiAgICAgZWxzZSBpZiAoImRlbGV0ZSIgPT0gY29kZVN0cikKLSAg
ICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0RFTEVURTsKKyAgICAgICAgY29kZSA9
IFZLRVlfREVMRVRFOwogICAgIGVsc2UgaWYgKCJwYWdlVXAiID09IGNvZGVTdHIpCi0gICAgICAg
IGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9QUklPUjsKKyAgICAgICAgY29kZSA9IFZLRVlf
UFJJT1I7CiAgICAgZWxzZSBpZiAoInBhZ2VEb3duIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2Rl
ID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTkVYVDsKKyAgICAgICAgY29kZSA9IFZLRVlfTkVYVDsK
ICAgICBlbHNlIGlmICgiaG9tZSIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9z
dXBwb3J0OjpWS0VZX0hPTUU7CisgICAgICAgIGNvZGUgPSBWS0VZX0hPTUU7CiAgICAgZWxzZSBp
ZiAoImVuZCIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZ
X0VORDsKKyAgICAgICAgY29kZSA9IFZLRVlfRU5EOwogICAgIGVsc2UgaWYgKCJwcmludFNjcmVl
biIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX1NOQVBT
SE9UOworICAgICAgICBjb2RlID0gVktFWV9TTkFQU0hPVDsKICAgICBlbHNlIGlmICgibWVudSIg
PT0gY29kZVN0cikKLSAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBw
b3J0OjpWS0VZX0FQUFMuCi0gICAgICAgIGNvZGUgPSAweDVEOworICAgICAgICBjb2RlID0gVktF
WV9BUFBTOwogICAgIGVsc2UgaWYgKCJsZWZ0Q29udHJvbCIgPT0gY29kZVN0cikKLSAgICAgICAg
Ly8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZX0xDT05UUk9MLgot
ICAgICAgICBjb2RlID0gMHhBMjsKKyAgICAgICAgY29kZSA9IFZLRVlfTENPTlRST0w7CiAgICAg
ZWxzZSBpZiAoInJpZ2h0Q29udHJvbCIgPT0gY29kZVN0cikKLSAgICAgICAgLy8gRklYTUU6IENo
YW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JDT05UUk9MLgotICAgICAgICBjb2Rl
ID0gMHhBMzsKKyAgICAgICAgY29kZSA9IFZLRVlfUkNPTlRST0w7CiAgICAgZWxzZSBpZiAoImxl
ZnRTaGlmdCIgPT0gY29kZVN0cikKLSAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdl
YmtpdF9zdXBwb3J0OjpWS0VZX0xTSElGVC4KLSAgICAgICAgY29kZSA9IDB4QTA7CisgICAgICAg
IGNvZGUgPSBWS0VZX0xTSElGVDsKICAgICBlbHNlIGlmICgicmlnaHRTaGlmdCIgPT0gY29kZVN0
cikKLSAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZ
X1JTSElGVC4KLSAgICAgICAgY29kZSA9IDB4QTE7CisgICAgICAgIGNvZGUgPSBWS0VZX1JTSElG
VDsKICAgICBlbHNlIGlmICgibGVmdEFsdCIgPT0gY29kZVN0cikKLSAgICAgICAgLy8gRklYTUU6
IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZX0xNRU5VLgotICAgICAgICBjb2Rl
ID0gMHhBNDsKKyAgICAgICAgY29kZSA9IFZLRVlfTE1FTlU7CiAgICAgZWxzZSBpZiAoInJpZ2h0
QWx0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0
X3N1cHBvcnQ6OlZLRVlfUk1FTlUuCi0gICAgICAgIGNvZGUgPSAweEE1OworICAgICAgICBjb2Rl
ID0gVktFWV9STUVOVTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gQ29tcGFyZSB0aGUgaW5wdXQg
c3RyaW5nIHdpdGggdGhlIGZ1bmN0aW9uLWtleSBuYW1lcyBkZWZpbmVkIGJ5IHRoZQogICAgICAg
ICAvLyBET00gc3BlYyAoaS5lLiAiRjEiLC4uLiwiRjI0IikuIElmIHRoZSBpbnB1dCBzdHJpbmcg
aXMgYSBmdW5jdGlvbi1rZXkKQEAgLTU4OCw3ICs2NzAsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpr
ZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1
bHQpCiAgICAgICAgICAgICBzbnByaW50ZihmdW5jdGlvbkNoYXJzLCAxMCwgIkYlZCIsIGkpOwog
ICAgICAgICAgICAgc3RyaW5nIGZ1bmN0aW9uS2V5TmFtZShmdW5jdGlvbkNoYXJzKTsKICAgICAg
ICAgICAgIGlmIChmdW5jdGlvbktleU5hbWUgPT0gY29kZVN0cikgewotICAgICAgICAgICAgICAg
IGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9GMSArIChpIC0gMSk7CisgICAgICAgICAgICAg
ICAgY29kZSA9IFZLRVlfRjEgKyAoaSAtIDEpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CkBAIC02MTMsNyArNjk1LDEwIEBAIHZvaWQgRXZlbnRTZW5k
ZXI6OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQq
IHJlc3VsdCkKICAgICBldmVudERvd24ubW9kaWZpZXJzID0gMDsKICAgICBldmVudERvd24ud2lu
ZG93c0tleUNvZGUgPSBjb2RlOwogI2lmIE9TKExJTlVYKSAmJiBVU0UoR1RLKQotICAgIGV2ZW50
RG93bi5uYXRpdmVLZXlDb2RlID0gd2Via2l0X3N1cHBvcnQ6Ok5hdGl2ZUtleUNvZGVGb3JXaW5k
b3dzS2V5Q29kZShjb2RlLCBuZWVkc1NoaWZ0S2V5TW9kaWZpZXIpOworICAgIGlmIChnZW5lcmF0
ZUNoYXIpCisgICAgICAgIGV2ZW50RG93bi5uYXRpdmVLZXlDb2RlID0gdGV4dDsKKyAgICBlbHNl
CisgICAgICAgIGV2ZW50RG93bi5uYXRpdmVLZXlDb2RlID0gTmF0aXZlS2V5Q29kZUZvcldpbmRv
d3NLZXlDb2RlKGNvZGUpOwogI2VuZGlmCiAKICAgICBpZiAoZ2VuZXJhdGVDaGFyKSB7CkBAIC03
NzUsNyArODYwLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVwbGF5U2F2ZWRFdmVudHMoKQogICAg
ICAgICBzd2l0Y2ggKGUudHlwZSkgewogICAgICAgICBjYXNlIFNhdmVkRXZlbnQ6Ok1vdXNlTW92
ZTogewogICAgICAgICAgICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAgICAgICAgICAgIGluaXRN
b3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlTW92ZSwgcHJlc3NlZEJ1dHRvbiwgZS5wb3Ms
ICZldmVudCk7CisgICAgICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3Vz
ZU1vdmUsIHByZXNzZWRCdXR0b24sIGUucG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVT
ZWMobV9kZWxlZ2F0ZSkpOwogICAgICAgICAgICAgZG9Nb3VzZU1vdmUoZXZlbnQpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTc4NCw3ICs4NjksNyBAQCB2b2lkIEV2ZW50U2Vu
ZGVyOjpyZXBsYXlTYXZlZEV2ZW50cygpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBTYXZlZEV2ZW50OjpNb3VzZVVwOiB7CiAgICAgICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50
OwotICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VVcCwgZS5i
dXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVudCk7CisgICAgICAgICAgICBpbml0TW91c2VF
dmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBlLmJ1dHRvblR5cGUsIGxhc3RNb3VzZVBvcywg
JmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICAgICAgICAg
IGRvTW91c2VVcChldmVudCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtODQz
LDEwICs5MjgsMTAgQEAgdm9pZCBFdmVudFNlbmRlcjo6Y29udGV4dENsaWNrKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXMKICAgICAvLyBHZW5lcmF0ZSBy
aWdodCBtb3VzZSBkb3duIGFuZCB1cC4KICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwogICAgIHBy
ZXNzZWRCdXR0b24gPSBXZWJNb3VzZUV2ZW50OjpCdXR0b25SaWdodDsKLSAgICBpbml0TW91c2VF
dmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZURvd24sIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvblJpZ2h0
LCBsYXN0TW91c2VQb3MsICZldmVudCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVu
dDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAm
ZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIHdlYnZpZXco
KS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiAKLSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1
dEV2ZW50OjpNb3VzZVVwLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9z
LCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIFdl
Yk1vdXNlRXZlbnQ6OkJ1dHRvblJpZ2h0LCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVu
dEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2
ZW50KGV2ZW50KTsKIAogICAgIHByZXNzZWRCdXR0b24gPSBXZWJNb3VzZUV2ZW50OjpCdXR0b25O
b25lOwpAQCAtOTA2LDcgKzk5MSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OmJlZ2luRHJhZ1dpdGhG
aWxlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFuCiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBmaWxlcy5zaXplKCk7ICsraSkgewogICAgICAgICBXZWJEcmFn
RGF0YTo6SXRlbSBpdGVtOwogICAgICAgICBpdGVtLnN0b3JhZ2VUeXBlID0gV2ViRHJhZ0RhdGE6
Okl0ZW06OlN0b3JhZ2VUeXBlRmlsZW5hbWU7Ci0gICAgICAgIGl0ZW0uZmlsZW5hbWVEYXRhID0g
d2Via2l0X3N1cHBvcnQ6OkdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGZpbGVzW2ld
KTsKKyAgICAgICAgaXRlbS5maWxlbmFtZURhdGEgPSBtX2RlbGVnYXRlLT5nZXRBYnNvbHV0ZVdl
YlN0cmluZ0Zyb21VVEY4UGF0aChmaWxlc1tpXSk7CiAgICAgICAgIGN1cnJlbnREcmFnRGF0YS5h
ZGRJdGVtKGl0ZW0pOwogICAgICAgICBhYnNvbHV0ZUZpbGVuYW1lc1tpXSA9IGl0ZW0uZmlsZW5h
bWVEYXRhOwogICAgIH0KQEAgLTEwMTQsNyArMTA5OSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnNl
bmRDdXJyZW50VG91Y2hFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50OjpUeXBlIHR5cGUpCiAgICAg
V2ViVG91Y2hFdmVudCB0b3VjaEV2ZW50OwogICAgIHRvdWNoRXZlbnQudHlwZSA9IHR5cGU7CiAg
ICAgdG91Y2hFdmVudC5tb2RpZmllcnMgPSB0b3VjaE1vZGlmaWVyczsKLSAgICB0b3VjaEV2ZW50
LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCk7CisgICAgdG91Y2hF
dmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRl
KTsKICAgICB0b3VjaEV2ZW50LnRvdWNoZXNMZW5ndGggPSB0b3VjaFBvaW50cy5zaXplKCk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvdWNoUG9pbnRzLnNpemUoKTsgKytpKQogICAg
ICAgICB0b3VjaEV2ZW50LnRvdWNoZXNbaV0gPSB0b3VjaFBvaW50c1tpXTsKQEAgLTEwNTQsNyAr
MTEzOSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OmhhbmRsZU1vdXNlV2hlZWwoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqCiAgICAgICAgIGhhc1ByZWNpc2VTY3Jv
bGxpbmdEZWx0YXMgPSBhcmd1bWVudHNbM10udG9Cb29sZWFuKCk7CiAKICAgICBXZWJNb3VzZVdo
ZWVsRXZlbnQgZXZlbnQ7Ci0gICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VX
aGVlbCwgcHJlc3NlZEJ1dHRvbiwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3Vz
ZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWwsIHByZXNzZWRCdXR0b24sIGxhc3RNb3Vz
ZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICBl
dmVudC53aGVlbFRpY2tzWCA9IHN0YXRpY19jYXN0PGZsb2F0Pihob3Jpem9udGFsKTsKICAgICBl
dmVudC53aGVlbFRpY2tzWSA9IHN0YXRpY19jYXN0PGZsb2F0Pih2ZXJ0aWNhbCk7CiAgICAgZXZl
bnQuZGVsdGFYID0gZXZlbnQud2hlZWxUaWNrc1g7CkBAIC0xMjE3LDcgKzEzMDIsNyBAQCB2b2lk
IEV2ZW50U2VuZGVyOjpnZXN0dXJlRXZlbnQoV2ViSW5wdXRFdmVudDo6VHlwZSB0eXBlLCBjb25z
dCBDcHBBcmd1bWVudExpc3QmCiAKICAgICBldmVudC5nbG9iYWxYID0gZXZlbnQueDsKICAgICBl
dmVudC5nbG9iYWxZID0gZXZlbnQueTsKLSAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0
Q3VycmVudEV2ZW50VGltZVNlYygpOworICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRD
dXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5w
dXRFdmVudChldmVudCk7CiB9CiAKQEAgLTEyMjksNyArMTMxNCw3IEBAIHZvaWQgRXZlbnRTZW5k
ZXI6Omdlc3R1cmVGbGluZ0NhbmNlbChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywg
Q3BwVmFyaWFuCiAKICAgICBXZWJHZXN0dXJlRXZlbnQgZXZlbnQ7CiAgICAgZXZlbnQudHlwZSA9
IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ0NhbmNlbDsKLSAgICBldmVudC50aW1lU3RhbXBT
ZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpOworICAgIGV2ZW50LnRpbWVTdGFtcFNl
Y29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpOwogICAgIHdlYnZpZXco
KS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiB9CiAKQEAgLTEyNTMsNyArMTMzOCw3IEBAIHZv
aWQgRXZlbnRTZW5kZXI6Omdlc3R1cmVGbGluZ1N0YXJ0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYg
YXJndW1lbnRzLCBDcHBWYXJpYW50CiAKICAgICBldmVudC5kYXRhLmZsaW5nU3RhcnQudmVsb2Np
dHlYID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFyZ3VtZW50c1syXS50b0RvdWJsZSgpKTsKICAgICBl
dmVudC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlZID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFyZ3Vt
ZW50c1szXS50b0RvdWJsZSgpKTsKLSAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3Vy
cmVudEV2ZW50VGltZVNlYygpOworICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJy
ZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRF
dmVudChldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRlLmgKaW5kZXggZTYyNmVjY2QwMWUy
MDYwOTczNzIyYzA0NzgzYzNiMTNlMzFjMDgyMy4uMDQ5OGZjYjNmM2YxMzY0OTYzM2Q1MmUxNmFh
MThmYTIzOWEyMDc1MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRlLmgKQEAgLTU1LDYgKzU1LDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhXZWJUZXN0UnVubmVyOjpXZWJUYXNr
KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2soV2ViVGVzdFJ1bm5lcjo6
V2ViVGFzayosIGxvbmcgbG9uZyBtcykgPSAwOwogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJp
bmcgcmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViS2l0OjpXZWJWZWN0b3I8V2Vi
S2l0OjpXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykgPSAwOworICAgIHZpcnR1YWwgbG9u
ZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpID0gMDsKKyAgICB2aXJ0dWFsIFdl
YktpdDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0
ZDo6c3RyaW5nJiBwYXRoKSA9IDA7CiB9OwogCiAjZW5kaWYgLy8gVGVzdERlbGVnYXRlX2gKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvVGVzdFJ1bm5lci5jcHAKaW5kZXggZTZlYWQxNTUxNTdhMWIwMzUxZWY5MTUyNGZiNzRmYWE4
NGU1ZTViZS4uZjBkYTc5ODMxMTdlYzM4MTI3NmI1YTc4YTU1ZTQ4ZWFkZGQ3MWUyMCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvVGVzdFJ1bm5lci5jcHAKQEAgLTMyLDUxICszMiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiVGVzdFJ1bm5lci5oIgogCi0jaW5jbHVkZSAiV2ViQW5pbWF0aW9uQ29udHJv
bGxlci5oIgotI2luY2x1ZGUgIldlYkJpbmRpbmdzLmgiCi0jaW5jbHVkZSAiV2ViQ29uc29sZU1l
c3NhZ2UuaCIKLSNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvbi5oIgotI2luY2x1ZGUgIldl
YkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIgotI2luY2x1ZGUgIldlYkRvY3VtZW50Lmgi
Ci0jaW5jbHVkZSAiV2ViRWxlbWVudC5oIgotI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCi0j
aW5jbHVkZSAiV2ViRnJhbWUuaCIKLSNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbkNsaWVudE1vY2su
aCIKLSNpbmNsdWRlICJXZWJJREJGYWN0b3J5LmgiCi0jaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50
LmgiCi0jaW5jbHVkZSAiV2ViSW50ZW50LmgiCi0jaW5jbHVkZSAiV2ViSW50ZW50UmVxdWVzdC5o
IgotI2luY2x1ZGUgIldlYktpdC5oIgotI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByZXNlbnRl
ci5oIgotI2luY2x1ZGUgIldlYlByaW50UGFyYW1zLmgiCi0jaW5jbHVkZSAiV2ViU2NyaXB0U291
cmNlLmgiCi0jaW5jbHVkZSAiV2ViU2VjdXJpdHlQb2xpY3kuaCIKLSNpbmNsdWRlICJXZWJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgIldlYlN1cnJvdW5kaW5nVGV4dC5oIgotI2luY2x1ZGUgIldlYlZp
ZXcuaCIKLSNpbmNsdWRlICJXZWJXb3JrZXJJbmZvLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2Vi
RGF0YS5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgot
I2luY2x1ZGUgInBsYXRmb3JtL1dlYlNpemUuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkwu
aCIKLSNpbmNsdWRlICJ2OC9pbmNsdWRlL3Y4LmgiCi0jaW5jbHVkZSAid2Via2l0L3N1cHBvcnQv
d2Via2l0X3N1cHBvcnQuaCIKLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8Y2xvY2Fs
ZT4KLSNpbmNsdWRlIDxjc3RkbGliPgotI2luY2x1ZGUgPGxpbWl0cz4KLSNpbmNsdWRlIDxzc3Ry
ZWFtPgotI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgotCi0jaWYgT1MoTElOVVgpIHx8IE9TKEFORFJPSUQpCi0jaW5jbHVkZSAibGlu
dXgvV2ViRm9udFJlbmRlcmluZy5oIgotI2VuZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KIFRlc3RS
dW5uZXI6OlRlc3RSdW5uZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4IDM5ZTE5ZDU3
MzY1ZDAzYzY2ODQxZjg3ZjI2YWNmNDU0MWVlMDdkN2EuLjUwMzI3MWI1ZDliNWNlZTA5OThiY2E4
NTJjM2NhMDkzNzUwYTY1ZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTMzLDIxICszMyw2IEBA
CiAjZGVmaW5lIFRlc3RSdW5uZXJfaAogCiAjaW5jbHVkZSAiQ3BwQm91bmRDbGFzcy5oIgotI2lu
Y2x1ZGUgIldlYkRlbGl2ZXJlZEludGVudENsaWVudC5oIgotI2luY2x1ZGUgIldlYlRleHREaXJl
Y3Rpb24uaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJBcnJheUJ1ZmZlclZpZXcuaCIKLSNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkwuaCIK
LSNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrOwotfQotCi1uYW1l
c3BhY2Ugd2Via2l0X3N1cHBvcnQgewotY2xhc3MgU2NvcGVkVGVtcERpcmVjdG9yeTsKLX0KIAog
Y2xhc3MgVGVzdFJ1bm5lciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRl
c3RJbnRlcmZhY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcAppbmRleCBmN2RiMTcxOThlNjdmOGE4ZDgzMjBk
ZTY1ZWE0YjQwOWI2MTkwYjNmLi45YTg2OTUzYzNjYjg1Mzc0MGVhYTc4YmFmZmExODhjNGI3Mjcy
OGY4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwCkBAIC02Nyw2ICs2Nyw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soV2ViVGFzayopOwogICAgIHZp
cnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2soV2ViVGFzayosIGxvbmcgbG9uZyBtcyk7CiAgICAg
dmlydHVhbCBXZWJTdHJpbmcgcmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViVmVj
dG9yPFdlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKTsKKyAgICB2aXJ0dWFsIGxvbmcgbG9u
ZyBnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2Vi
U3RyaW5nIGdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5n
JiBwYXRoKTsKIAogcHJpdmF0ZToKICAgICBUZXN0SW50ZXJmYWNlcyBtX2ludGVyZmFjZXM7CkBA
IC0xNDcsNiArMTQ5LDE2IEBAIFdlYlN0cmluZyBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6
OnJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYlZlY3RvCiAgICAgcmV0dXJuIG1f
ZGVsZWdhdGUtPnJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGFic29sdXRlRmlsZW5hbWVzKTsK
IH0KIAorbG9uZyBsb25nIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6Z2V0Q3VycmVudFRp
bWVJbk1pbGxpc2Vjb25kKCkKK3sKKyAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+Z2V0Q3VycmVudFRp
bWVJbk1pbGxpc2Vjb25kKCk7Cit9CisKK1dlYktpdDo6V2ViU3RyaW5nIFdlYlRlc3RJbnRlcmZh
Y2VzOjpJbnRlcm5hbDo6Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3Rk
OjpzdHJpbmcmIHBhdGgpCit7CisgICAgcmV0dXJuIG1fZGVsZWdhdGUtPmdldEFic29sdXRlV2Vi
U3RyaW5nRnJvbVVURjhQYXRoKHBhdGgpOworfQorCiBXZWJUZXN0SW50ZXJmYWNlczo6V2ViVGVz
dEludGVyZmFjZXMoKQogewogICAgIG1faW50ZXJuYWwgPSBuZXcgSW50ZXJuYWw7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggZDM3NjIyZGI5
OTU4OGY3OTE1YjI0NGVmOWNiN2QwNWUyMTJmYzczMS4uODdlYjI1MDhiYzQ0MzY1ZjYzMTZiMjdm
NTIwOWFmODQ5MTFkNzkzOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmNwcApAQCAtMTUwMCw2ICsxNTAwLDE2IEBAIFdlYlN0cmluZyBXZWJWaWV3SG9z
dDo6cmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4m
IGFiCiAgICAgcmV0dXJuIHdlYmtpdF9zdXBwb3J0OjpSZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3Rl
bShhYnNvbHV0ZUZpbGVuYW1lcyk7CiB9CiAKK2xvbmcgbG9uZyBXZWJWaWV3SG9zdDo6Z2V0Q3Vy
cmVudFRpbWVJbk1pbGxpc2Vjb25kKCkKK3sKKyAgICByZXR1cm4gd2Via2l0X3N1cHBvcnQ6Okdl
dEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpOworfQorCitXZWJLaXQ6OldlYlN0cmluZyBXZWJW
aWV3SG9zdDo6Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJp
bmcmIHBhdGgpCit7CisgICAgcmV0dXJuIHdlYmtpdF9zdXBwb3J0OjpHZXRBYnNvbHV0ZVdlYlN0
cmluZ0Zyb21VVEY4UGF0aChwYXRoKTsKK30KKwogLy8gUHVibGljIGZ1bmN0aW9ucyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBX
ZWJWaWV3SG9zdDo6V2ViVmlld0hvc3QoVGVzdFNoZWxsKiBzaGVsbCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCmluZGV4IDlhZjQ3ZTA3OGY3NmFmMDdjNDQw
MDg3NmZhOTdhYjlhODU0ZDk1MjcuLjg2MDA3MTk0YjA0MzU2NzJjMDE0OTk5ZDU4NjA1M2VjZmY1
ZjhiNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdI
b3N0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApA
QCAtMTM5LDYgKzEzOSw4IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2Vi
Vmlld0NsaWVudCwgcHVibGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCB2
b2lkIHBvc3RUYXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqLCBsb25nIGxv
bmcgbXMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgcmVnaXN0ZXJJ
c29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViS2l0OjpXZWJWZWN0b3I8V2ViS2l0OjpXZWJTdHJp
bmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBsb25nIGxvbmcg
Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJL
aXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6
OnN0cmluZyYgcGF0aCkgT1ZFUlJJREU7CiAKICAgICAvLyBOYXZpZ2F0aW9uSG9zdAogICAgIHZp
cnR1YWwgYm9vbCBuYXZpZ2F0ZShjb25zdCBUZXN0TmF2aWdhdGlvbkVudHJ5JiwgYm9vbCByZWxv
YWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170682</attachid>
            <date>2012-10-25 10:20:00 -0700</date>
            <delta_ts>2012-10-25 10:37:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-100344-20121025191832.patch</filename>
            <type>text/plain</type>
            <size>28042</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uNmEzYzg5ODc0YmMyZmE0OTYwZDkzZjNkZjBmYjM1OWFmNWZhZTkyOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDEyLTEwLTI1ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHJlbWFpbmluZyB1c2FnZXMgb2Ygd2Via2l0X3N1
cHBvcnQgZnJvbSB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBtb3N0IGltcG9ydGFudCBwYXJ0IGlzIHRvIG5vdCBy
ZWx5IG9uIGNhbGxpbmcgb3V0IHRvIGdkay9YMTEgdG8KKyAgICAgICAgdHJhbnNsYXRlIGtleWNv
ZGVzIHRvIG5hdGl2ZSBrZXljb2RlcywgYXMgdGhpcyBpcyBub3QgcG9zc2libGUgaW5zaWRlCisg
ICAgICAgIHRoZSBzYW5kYm94LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
RFJUVGVzdFJ1bm5lci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKHdlYmtpdF9zdXBw
b3J0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1Ymxp
Yy9XZWJUZXN0RGVsZWdhdGUuaDoKKyAgICAgICAgKFdlYlRlc3REZWxlZ2F0ZSk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2Vu
ZGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6RXZlbnRTZW5kZXI6OmRvRHJhZ0Ryb3ApOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZl
bnRTZW5kZXI6OnVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b24pOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6RXZlbnRTZW5kZXI6Om1vdXNlRG93bik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpF
dmVudFNlbmRlcjo6bW91c2VVcCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRl
cjo6bW91c2VNb3ZlVG8pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omtl
eURvd24pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OnJlcGxheVNhdmVk
RXZlbnRzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpjb250ZXh0Q2xp
Y2spOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmJlZ2luRHJhZ1dpdGhG
aWxlcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6c2VuZEN1cnJlbnRU
b3VjaEV2ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpoYW5kbGVN
b3VzZVdoZWVsKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpnZXN0dXJl
RXZlbnQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omdlc3R1cmVGbGlu
Z0NhbmNlbCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Z2VzdHVyZUZs
aW5nU3RhcnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3REZWxlZ2F0ZS5oOgorICAgICAgICAoVGVzdERlbGVnYXRlKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2Vi
VGVzdEludGVyZmFjZXMuY3BwOgorICAgICAgICAoV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6
Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRB
YnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmdldEN1cnJl
bnRUaW1lSW5NaWxsaXNlY29uZCk6CisgICAgICAgIChXZWJWaWV3SG9zdDo6Z2V0QWJzb2x1dGVX
ZWJTdHJpbmdGcm9tVVRGOFBhdGgpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdCk6CisKIDIwMTItMTAtMjQgIERp
cmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgbnJ3dDogdHJ1bmNh
dGUgbWV0ZXIgbGluZXMgcHJvcGVybHkgb24gd2luZG93cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCmluZGV4IGVjNDc3OGZkNWM0NmY4ZjMyODc1OGEx
NTdhMzI4MjE0NTRiNWIyMjEuLmNjZGZjNDM5NGRmNmRkYzllMDRiZjE1M2Y1OTU3MDdjMWI3NmYw
YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5u
ZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgK
QEAgLTQzLDcgKzQzLDIzIEBACiAjZGVmaW5lIERSVFRlc3RSdW5uZXJfaAogCiAjaW5jbHVkZSAi
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIgorI2luY2x1ZGUgIldlYkRlbGl2ZXJlZEludGVu
dENsaWVudC5oIgogI2luY2x1ZGUgIldlYlRhc2suaCIKKyNpbmNsdWRlICJXZWJUZXh0RGlyZWN0
aW9uLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViQXJyYXlCdWZmZXJWaWV3LmgiCisjaW5jbHVk
ZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCisj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKK2NsYXNzIFdlYkdlb2xvY2F0aW9uQ2xpZW50TW9jazsKK30KKworbmFtZXNw
YWNlIHdlYmtpdF9zdXBwb3J0IHsKK2NsYXNzIFNjb3BlZFRlbXBEaXJlY3Rvcnk7Cit9CisKIAog
Y2xhc3MgVGVzdFNoZWxsOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oCmluZGV4
IDZlMjE4ODEwN2JhOTc0NWJlNmQ5NTMzODkyZTRhNzRmN2YzZTYwMDUuLmFiNDdkNGY5ZGNlYTZk
N2VjOTE4YmRkMWUyZWY0ZGVmMmM1ODJlMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxl
Z2F0ZS5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9zdERl
bGF5ZWRUYXNrKFdlYlRhc2sqLCBsb25nIGxvbmcgbXMpID0gMDsKIAogICAgIHZpcnR1YWwgV2Vi
S2l0OjpXZWJTdHJpbmcgcmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViS2l0OjpX
ZWJWZWN0b3I8V2ViS2l0OjpXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykgPSAwOworICAg
IHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpID0gMDsKKyAg
ICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQ
YXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50Lmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50
LmgKaW5kZXggNjBjYzYyNzFlY2ZhZDllZDY4YmRlNDI4ODUxNTM4NDI2ZDZiODQwMy4uNDdmZDQ2
NmFmZjMyZDc5Y2VjYjQ3MDY2YTczYjdhNWVjNWNjMDBiOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuaApA
QCAtNDMsNyArNDMsNiBAQAogI2RlZmluZSBDcHBWYXJpYW50X2gKIAogI2luY2x1ZGUgIldlYkJp
bmRpbmdzLmgiCi0jaW5jbHVkZSAid2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaCIKICNp
bmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNl
bmRlci5jcHAKaW5kZXggMmY0YTA1NTRjNWMzNmQzZWZiNjkwZjQ3ZThjMmY4OTNjYmZhZjkzZS4u
OWI1NzFiZWQ3MGNmYzRiOTJlYmNjMDZlMjk1OTkzMDk0MGMzZTA4MiAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50
U2VuZGVyLmNwcApAQCAtNDYsMTMgKzQ2LDEzIEBACiAjaW5jbHVkZSAiVGVzdERlbGVnYXRlLmgi
CiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ09wZXJh
dGlvbi5oIgorI2luY2x1ZGUgIldlYkV2ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hQ
b2ludC5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJEcmFn
RGF0YS5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlBvaW50LmgiCiAjaW5jbHVkZSAicGxhdGZv
cm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViVmVjdG9yLmgiCi0jaW5jbHVk
ZSAid2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAKQEAgLTYwLDYgKzYwLDEwIEBACiAj
aW5jbHVkZSAid2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmgiCiAjZW5kaWYKIAorI2lmIE9TKExJ
TlVYKSAmJiBVU0UoR1RLKQorI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1zLmg+CisjZW5kaWYKKwog
Ly8gRklYTUU6IGxheW91dCBiZWZvcmUgZWFjaCBldmVudD8KIAogdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKQEAgLTczLDYgKzc3LDMxIEBAIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBFdmVudFNlbmRlcjo6
bGFzdEJ1dHRvblR5cGUgPSBXZWJNb3VzZUV2ZW50OjpCdXR0b25Ob25lOwogCiBuYW1lc3BhY2Ug
ewogCisvLyBUaGUga2V5Y29kZXMgbWF0Y2ggdGhlIHZhbHVlcyBvZiB0aGUgdmlydHVhbCBrZXlj
b2RlcyBmb3VuZCBoZXJlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93
aW5kb3dzL2Rlc2t0b3AvZGQzNzU3MzEodj12cy44NSkuYXNweAorZW51bSB7CisgICAgVktFWV9S
RVRVUk4gICA9IDB4MEQsCisgICAgVktFWV9QUklPUiAgICA9IDB4MjEsCisgICAgVktFWV9ORVhU
ICAgICA9IDB4MjIsCisgICAgVktFWV9FTkQgICAgICA9IDB4MjMsCisgICAgVktFWV9IT01FICAg
ICA9IDB4MjQsCisgICAgVktFWV9MRUZUICAgICA9IDB4MjUsCisgICAgVktFWV9VUCAgICAgICA9
IDB4MjYsCisgICAgVktFWV9SSUdIVCAgICA9IDB4MjcsCisgICAgVktFWV9ET1dOICAgICA9IDB4
MjgsCisgICAgVktFWV9TTkFQU0hPVCA9IDB4MkMsCisgICAgVktFWV9JTlNFUlQgICA9IDB4MkQs
CisgICAgVktFWV9ERUxFVEUgICA9IDB4MkUsCisgICAgVktFWV9BUFBTICAgICA9IDB4NUQsCisg
ICAgVktFWV9GMSAgICAgICA9IDB4NzAsCisgICAgVktFWV9MU0hJRlQgICA9IDB4QTAsCisgICAg
VktFWV9SU0hJRlQgICA9IDB4QTEsCisgICAgVktFWV9MQ09OVFJPTCA9IDB4QTIsCisgICAgVktF
WV9SQ09OVFJPTCA9IDB4QTMsCisgICAgVktFWV9MTUVOVSAgICA9IDB4QTQsCisgICAgVktFWV9S
TUVOVSAgICA9IDB4QTUsCit9OworCisKIHN0cnVjdCBTYXZlZEV2ZW50IHsKICAgICBlbnVtIFNh
dmVkRXZlbnRUeXBlIHsKICAgICAgICAgVW5zcGVjaWZpZWQsCkBAIC0xMjUsOSArMTU0LDkgQEAg
aW5saW5lIGJvb2wgb3V0c2lkZU11bHRpQ2xpY2tSYWRpdXMoY29uc3QgV2ViUG9pbnQmIGEsIGNv
bnN0IFdlYlBvaW50JiBiKQogLy8gZGVwZW5kZW50IChlLmcuLCBkcmFnZ2luZyBoYXMgYSB0aW1l
b3V0IHZzIHNlbGVjdGlvbikuCiB1aW50MzIgdGltZU9mZnNldE1zID0gMDsKIAotZG91YmxlIGdl
dEN1cnJlbnRFdmVudFRpbWVTZWMoKQorZG91YmxlIGdldEN1cnJlbnRFdmVudFRpbWVTZWMoVGVz
dERlbGVnYXRlKiBkZWxlZ2F0ZSkKIHsKLSAgICByZXR1cm4gKHdlYmtpdF9zdXBwb3J0OjpHZXRD
dXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSArIHRpbWVPZmZzZXRNcykgLyAxMDAwLjA7CisgICAg
cmV0dXJuIChkZWxlZ2F0ZS0+Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgKyB0aW1lT2Zm
c2V0TXMpIC8gMTAwMC4wOwogfQogCiB2b2lkIGFkdmFuY2VFdmVudFRpbWUoaW50MzJfdCBkZWx0
YU1zKQpAQCAtMTM1LDcgKzE2NCw3IEBAIHZvaWQgYWR2YW5jZUV2ZW50VGltZShpbnQzMl90IGRl
bHRhTXMpCiAgICAgdGltZU9mZnNldE1zICs9IGRlbHRhTXM7CiB9CiAKLXZvaWQgaW5pdE1vdXNl
RXZlbnQoV2ViSW5wdXRFdmVudDo6VHlwZSB0LCBXZWJNb3VzZUV2ZW50OjpCdXR0b24gYiwgY29u
c3QgV2ViUG9pbnQmIHBvcywgV2ViTW91c2VFdmVudCogZSkKK3ZvaWQgaW5pdE1vdXNlRXZlbnQo
V2ViSW5wdXRFdmVudDo6VHlwZSB0LCBXZWJNb3VzZUV2ZW50OjpCdXR0b24gYiwgY29uc3QgV2Vi
UG9pbnQmIHBvcywgV2ViTW91c2VFdmVudCogZSwgZG91YmxlIHRzKQogewogICAgIGUtPnR5cGUg
PSB0OwogICAgIGUtPmJ1dHRvbiA9IGI7CkBAIC0xNDQsNyArMTczLDcgQEAgdm9pZCBpbml0TW91
c2VFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHQsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBj
b25zdCBXZWJQb2kKICAgICBlLT55ID0gcG9zLnk7CiAgICAgZS0+Z2xvYmFsWCA9IHBvcy54Owog
ICAgIGUtPmdsb2JhbFkgPSBwb3MueTsKLSAgICBlLT50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3Vy
cmVudEV2ZW50VGltZVNlYygpOworICAgIGUtPnRpbWVTdGFtcFNlY29uZHMgPSB0czsKICAgICBl
LT5jbGlja0NvdW50ID0gY2xpY2tDb3VudDsKIH0KIApAQCAtMjE0LDE2ICsyNDMsMTYgQEAgYm9v
bCBnZXRFZGl0Q29tbWFuZChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCwgc3RyaW5nKiBu
YW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzd2l0Y2ggKGV2ZW50LndpbmRvd3NL
ZXlDb2RlKSB7Ci0gICAgY2FzZSB3ZWJraXRfc3VwcG9ydDo6VktFWV9MRUZUOgorICAgIGNhc2Ug
VktFWV9MRUZUOgogICAgICAgICAqbmFtZSA9ICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmUiOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JJR0hUOgorICAgIGNh
c2UgVktFWV9SSUdIVDoKICAgICAgICAgKm5hbWUgPSAiTW92ZVRvRW5kT2ZMaW5lIjsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSB3ZWJraXRfc3VwcG9ydDo6VktFWV9VUDoKKyAgICBjYXNlIFZL
RVlfVVA6CiAgICAgICAgICpuYW1lID0gIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIHdlYmtpdF9zdXBwb3J0OjpWS0VZX0RPV046CisgICAgY2Fz
ZSBWS0VZX0RPV046CiAgICAgICAgICpuYW1lID0gIk1vdmVUb0VuZE9mRG9jdW1lbnQiOwogICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAtMjQ4LDYgKzI3NywxMjYgQEAgZW51bSBLZXlM
b2NhdGlvbkNvZGUgewogICAgIERPTUtleUxvY2F0aW9uTnVtcGFkICAgICAgICA9IDB4MDMKIH07
CiAKKyNpZiBPUyhMSU5VWCkgJiYgVVNFKEdUSykKK2ludCBOYXRpdmVLZXlDb2RlRm9yV2luZG93
c0tleUNvZGUoaW50IGtleXN5bSkKK3sKKyAgICAvLyBTZWUgL3Vzci9zaGFyZS9YMTEveGtiL2tl
eWNvZGVzLyoKKyAgICBzdGF0aWMgY29uc3QgaW50IGxldHRlclRvS2V5Q29kZVtdID0geworICAg
ICAgICAzOCwgICAgLy8gQQorICAgICAgICA1NiwgICAgLy8gQgorICAgICAgICA1NCwgICAgLy8g
QworICAgICAgICA0MCwgICAgLy8gRAorICAgICAgICAyNiwgICAgLy8gRQorICAgICAgICA0MSwg
ICAgLy8gRgorICAgICAgICA0MiwgICAgLy8gRworICAgICAgICA0MywgICAgLy8gSAorICAgICAg
ICAzMSwgICAgLy8gSQorICAgICAgICA0NCwgICAgLy8gSgorICAgICAgICA0NSwgICAgLy8gSwor
ICAgICAgICA0NiwgICAgLy8gTAorICAgICAgICA1OCwgICAgLy8gTQorICAgICAgICA1NywgICAg
Ly8gTgorICAgICAgICAzMiwgICAgLy8gTworICAgICAgICAzMywgICAgLy8gUAorICAgICAgICAy
NCwgICAgLy8gUQorICAgICAgICAyNywgICAgLy8gUgorICAgICAgICAzOSwgICAgLy8gUworICAg
ICAgICAyOCwgICAgLy8gVAorICAgICAgICAzMCwgICAgLy8gVQorICAgICAgICA1NSwgICAgLy8g
VgorICAgICAgICAyNSwgICAgLy8gVworICAgICAgICA1MywgICAgLy8gWAorICAgICAgICAyOSwg
ICAgLy8gWQorICAgICAgICA1MiwgICAgLy8gWgorICAgIH07CisgICAgc3RhdGljIGNvbnN0IGlu
dCBudW1iZXJUb0tleUNvZGVbXSA9IHsKKyAgICAgICAgMTksICAgIC8vIDAKKyAgICAgICAgMTAs
ICAgIC8vIDEKKyAgICAgICAgMTEsICAgIC8vIDIKKyAgICAgICAgMTIsICAgIC8vIDMKKyAgICAg
ICAgMTMsICAgIC8vIDQKKyAgICAgICAgMTQsICAgIC8vIDUKKyAgICAgICAgMTUsICAgIC8vIDYK
KyAgICAgICAgMTYsICAgIC8vIDcKKyAgICAgICAgMTcsICAgIC8vIDgKKyAgICAgICAgMTgsICAg
IC8vIDkKKyAgICB9OworCisgICAgaWYgKGtleXN5bSA+PSAnMCcgJiYga2V5c3ltIDw9ICc5JykK
KyAgICAgIHJldHVybiBudW1iZXJUb0tleUNvZGVba2V5c3ltIC0gJzAnXTsKKyAgICBpZiAoa2V5
c3ltID49ICdBJyAmJiBrZXlzeW0gPD0gJ1onKQorICAgICAgcmV0dXJuIGxldHRlclRvS2V5Q29k
ZVtrZXlzeW0gLSAnQSddOworCisgICAgc3dpdGNoIChrZXlzeW0pIHsKKyAgICBjYXNlIFZLRVlf
UFJJT1I6CisgICAgICAgIHJldHVybiAxMTI7CisgICAgY2FzZSBWS0VZX05FWFQ6CisgICAgICAg
IHJldHVybiAxMTc7CisgICAgY2FzZSBWS0VZX0VORDoKKyAgICAgICAgcmV0dXJuIDExNTsKKyAg
ICBjYXNlIFZLRVlfSE9NRToKKyAgICAgICAgcmV0dXJuIDExMDsKKyAgICBjYXNlIFZLRVlfTEVG
VDoKKyAgICAgICAgcmV0dXJuIDExMzsKKyAgICBjYXNlIFZLRVlfVVA6CisgICAgICAgIHJldHVy
biAxMTE7CisgICAgY2FzZSBWS0VZX1JJR0hUOgorICAgICAgICByZXR1cm4gMTE0OworICAgIGNh
c2UgVktFWV9ET1dOOgorICAgICAgICByZXR1cm4gMTE2OworICAgIGNhc2UgVktFWV9TTkFQU0hP
VDoKKyAgICAgICAgcmV0dXJuIDEwNzsKKyAgICBjYXNlIFZLRVlfSU5TRVJUOgorICAgICAgICBy
ZXR1cm4gMTE4OworICAgIGNhc2UgVktFWV9ERUxFVEU6CisgICAgICAgIHJldHVybiAxMTk7Cisg
ICAgY2FzZSBWS0VZX0FQUFM6CisgICAgICAgIHJldHVybiAxMzU7CisgICAgY2FzZSBWS0VZX0Yx
OgorICAgIGNhc2UgVktFWV9GMSArIDE6CisgICAgY2FzZSBWS0VZX0YxICsgMjoKKyAgICBjYXNl
IFZLRVlfRjEgKyAzOgorICAgIGNhc2UgVktFWV9GMSArIDQ6CisgICAgY2FzZSBWS0VZX0YxICsg
NToKKyAgICBjYXNlIFZLRVlfRjEgKyA2OgorICAgIGNhc2UgVktFWV9GMSArIDc6CisgICAgY2Fz
ZSBWS0VZX0YxICsgODoKKyAgICBjYXNlIFZLRVlfRjEgKyA5OgorICAgIGNhc2UgVktFWV9GMSAr
IDEwOgorICAgIGNhc2UgVktFWV9GMSArIDExOgorICAgIGNhc2UgVktFWV9GMSArIDEyOgorICAg
IGNhc2UgVktFWV9GMSArIDEzOgorICAgIGNhc2UgVktFWV9GMSArIDE0OgorICAgIGNhc2UgVktF
WV9GMSArIDE1OgorICAgIGNhc2UgVktFWV9GMSArIDE2OgorICAgIGNhc2UgVktFWV9GMSArIDE3
OgorICAgIGNhc2UgVktFWV9GMSArIDE4OgorICAgIGNhc2UgVktFWV9GMSArIDE5OgorICAgIGNh
c2UgVktFWV9GMSArIDIwOgorICAgIGNhc2UgVktFWV9GMSArIDIxOgorICAgIGNhc2UgVktFWV9G
MSArIDIyOgorICAgIGNhc2UgVktFWV9GMSArIDIzOgorICAgICAgICByZXR1cm4gNjcgKyAoa2V5
c3ltIC0gVktFWV9GMSk7CisgICAgY2FzZSBWS0VZX0xTSElGVDoKKyAgICAgICAgcmV0dXJuIDUw
OworICAgIGNhc2UgVktFWV9SU0hJRlQ6CisgICAgICAgIHJldHVybiA2MjsKKyAgICBjYXNlIFZL
RVlfTENPTlRST0w6CisgICAgICAgIHJldHVybiAzNzsKKyAgICBjYXNlIFZLRVlfUkNPTlRST0w6
CisgICAgICAgIHJldHVybiAxMDU7CisgICAgY2FzZSBWS0VZX0xNRU5VOgorICAgICAgICByZXR1
cm4gNjQ7CisgICAgY2FzZSBWS0VZX1JNRU5VOgorICAgICAgICByZXR1cm4gMTA4OworCisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KK30KKyNlbmRpZgorCiB9CiAKIEV2ZW50U2VuZGVyOjpFdmVudFNlbmRlcigpCkBA
IC0zNDksNyArNDk4LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVzZXQoKQogdm9pZCBFdmVudFNl
bmRlcjo6ZG9EcmFnRHJvcChjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsIFdlYkRyYWdPcGVy
YXRpb25zTWFzayBtYXNrKQogewogICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgaW5pdE1v
dXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91
c2VQb3MsICZldmVudCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VE
b3duLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50
VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgV2ViUG9pbnQgY2xpZW50UG9pbnQoZXZlbnQueCwg
ZXZlbnQueSk7CiAgICAgV2ViUG9pbnQgc2NyZWVuUG9pbnQoZXZlbnQuZ2xvYmFsWCwgZXZlbnQu
Z2xvYmFsWSk7CiAgICAgY3VycmVudERyYWdEYXRhID0gZHJhZ0RhdGE7CkBAIC0zOTIsNyArNTQx
LDcgQEAgaW50IEV2ZW50U2VuZGVyOjpnZXRCdXR0b25OdW1iZXJGcm9tU2luZ2xlQXJnKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzKQogCiB2b2lkIEV2ZW50U2VuZGVyOjp1cGRhdGVD
bGlja0NvdW50Rm9yQnV0dG9uKFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b25UeXBlKQogewot
ICAgIGlmICgoZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpIC0gbGFzdENsaWNrVGltZVNlYyA8IG11
bHRpcGxlQ2xpY2tUaW1lU2VjKQorICAgIGlmICgoZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2Rl
bGVnYXRlKSAtIGxhc3RDbGlja1RpbWVTZWMgPCBtdWx0aXBsZUNsaWNrVGltZVNlYykKICAgICAg
ICAgJiYgKCFvdXRzaWRlTXVsdGlDbGlja1JhZGl1cyhsYXN0TW91c2VQb3MsIGxhc3RDbGlja1Bv
cykpCiAgICAgICAgICYmIChidXR0b25UeXBlID09IGxhc3RCdXR0b25UeXBlKSkKICAgICAgICAg
KytjbGlja0NvdW50OwpAQCAtNDIyLDcgKzU3MSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Om1vdXNl
RG93bihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0
CiAKICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwogICAgIHByZXNzZWRCdXR0b24gPSBidXR0b25U
eXBlOwotICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93biwgYnV0dG9u
VHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0
RXZlbnQ6Ok1vdXNlRG93biwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1
cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgp
ID49IDIgJiYgKGFyZ3VtZW50c1sxXS5pc09iamVjdCgpIHx8IGFyZ3VtZW50c1sxXS5pc1N0cmlu
ZygpKSkKICAgICAgICAgYXBwbHlLZXlNb2RpZmllcnMoJihhcmd1bWVudHNbMV0pLCAmZXZlbnQp
OwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CkBAIC00NDgsNyArNTk3
LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6bW91c2VVcChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFy
Z3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgICAgICByZXBsYXlTYXZlZEV2ZW50cygp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgIGlu
aXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGJ1dHRvblR5cGUsIGxhc3RNb3Vz
ZVBvcywgJmV2ZW50KTsKKyAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91
c2VVcCwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRp
bWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAyICYm
IChhcmd1bWVudHNbMV0uaXNPYmplY3QoKSB8fCBhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkpCiAg
ICAgICAgICAgICBhcHBseUtleU1vZGlmaWVycygmKGFyZ3VtZW50c1sxXSksICZldmVudCk7CiAg
ICAgICAgIGRvTW91c2VVcChldmVudCk7CkBAIC00OTcsNyArNjQ2LDcgQEAgdm9pZCBFdmVudFNl
bmRlcjo6bW91c2VNb3ZlVG8oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbnQqIHJlc3UKICAgICAgICAgbW91c2VFdmVudFF1ZXVlLmFwcGVuZChzYXZlZEV2ZW50KTsK
ICAgICB9IGVsc2UgewogICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICBpbml0
TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIG1vdXNl
UG9zLCAmZXZlbnQpOworICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3Vz
ZU1vdmUsIHByZXNzZWRCdXR0b24sIG1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRp
bWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgICAgICBkb01vdXNlTW92ZShldmVudCk7CiAgICAgfQog
fQpAQCAtNTM1LDUwICs2ODQsNDMgQEAgdm9pZCBFdmVudFNlbmRlcjo6a2V5RG93bihjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgIGJvb2wg
bmVlZHNTaGlmdEtleU1vZGlmaWVyID0gZmFsc2U7CiAgICAgaWYgKCJcbiIgPT0gY29kZVN0cikg
ewogICAgICAgICBnZW5lcmF0ZUNoYXIgPSB0cnVlOwotICAgICAgICB0ZXh0ID0gY29kZSA9IHdl
YmtpdF9zdXBwb3J0OjpWS0VZX1JFVFVSTjsKKyAgICAgICAgdGV4dCA9IGNvZGUgPSBWS0VZX1JF
VFVSTjsKICAgICB9IGVsc2UgaWYgKCJyaWdodEFycm93IiA9PSBjb2RlU3RyKQotICAgICAgICBj
b2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ7CisgICAgICAgIGNvZGUgPSBWS0VZX1JJ
R0hUOwogICAgIGVsc2UgaWYgKCJkb3duQXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUg
PSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ET1dOOworICAgICAgICBjb2RlID0gVktFWV9ET1dOOwog
ICAgIGVsc2UgaWYgKCJsZWZ0QXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJr
aXRfc3VwcG9ydDo6VktFWV9MRUZUOworICAgICAgICBjb2RlID0gVktFWV9MRUZUOwogICAgIGVs
c2UgaWYgKCJ1cEFycm93IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBv
cnQ6OlZLRVlfVVA7CisgICAgICAgIGNvZGUgPSBWS0VZX1VQOwogICAgIGVsc2UgaWYgKCJpbnNl
cnQiID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9JTlNF
UlQ7CisgICAgICAgIGNvZGUgPSBWS0VZX0lOU0VSVDsKICAgICBlbHNlIGlmICgiZGVsZXRlIiA9
PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfREVMRVRFOwor
ICAgICAgICBjb2RlID0gVktFWV9ERUxFVEU7CiAgICAgZWxzZSBpZiAoInBhZ2VVcCIgPT0gY29k
ZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX1BSSU9SOworICAgICAg
ICBjb2RlID0gVktFWV9QUklPUjsKICAgICBlbHNlIGlmICgicGFnZURvd24iID09IGNvZGVTdHIp
Ci0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ORVhUOworICAgICAgICBjb2Rl
ID0gVktFWV9ORVhUOwogICAgIGVsc2UgaWYgKCJob21lIiA9PSBjb2RlU3RyKQotICAgICAgICBj
b2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfSE9NRTsKKyAgICAgICAgY29kZSA9IFZLRVlfSE9N
RTsKICAgICBlbHNlIGlmICgiZW5kIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0
X3N1cHBvcnQ6OlZLRVlfRU5EOworICAgICAgICBjb2RlID0gVktFWV9FTkQ7CiAgICAgZWxzZSBp
ZiAoInByaW50U2NyZWVuIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBv
cnQ6OlZLRVlfU05BUFNIT1Q7CisgICAgICAgIGNvZGUgPSBWS0VZX1NOQVBTSE9UOwogICAgIGVs
c2UgaWYgKCJtZW51IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMg
dG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfQVBQUy4KLSAgICAgICAgY29kZSA9IDB4NUQ7CisgICAg
ICAgIGNvZGUgPSBWS0VZX0FQUFM7CiAgICAgZWxzZSBpZiAoImxlZnRDb250cm9sIiA9PSBjb2Rl
U3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZL
RVlfTENPTlRST0wuCi0gICAgICAgIGNvZGUgPSAweEEyOworICAgICAgICBjb2RlID0gVktFWV9M
Q09OVFJPTDsKICAgICBlbHNlIGlmICgicmlnaHRDb250cm9sIiA9PSBjb2RlU3RyKQotICAgICAg
ICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUkNPTlRST0wu
Ci0gICAgICAgIGNvZGUgPSAweEEzOworICAgICAgICBjb2RlID0gVktFWV9SQ09OVFJPTDsKICAg
ICBlbHNlIGlmICgibGVmdFNoaWZ0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hh
bmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTFNISUZULgotICAgICAgICBjb2RlID0g
MHhBMDsKKyAgICAgICAgY29kZSA9IFZLRVlfTFNISUZUOwogICAgIGVsc2UgaWYgKCJyaWdodFNo
aWZ0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0
X3N1cHBvcnQ6OlZLRVlfUlNISUZULgotICAgICAgICBjb2RlID0gMHhBMTsKKyAgICAgICAgY29k
ZSA9IFZLRVlfUlNISUZUOwogICAgIGVsc2UgaWYgKCJsZWZ0QWx0IiA9PSBjb2RlU3RyKQotICAg
ICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTE1FTlUu
Ci0gICAgICAgIGNvZGUgPSAweEE0OworICAgICAgICBjb2RlID0gVktFWV9MTUVOVTsKICAgICBl
bHNlIGlmICgicmlnaHRBbHQiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2Ug
dGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9STUVOVS4KLSAgICAgICAgY29kZSA9IDB4QTU7
CisgICAgICAgIGNvZGUgPSBWS0VZX1JNRU5VOwogICAgIGVsc2UgewogICAgICAgICAvLyBDb21w
YXJlIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB0aGUgZnVuY3Rpb24ta2V5IG5hbWVzIGRlZmluZWQg
YnkgdGhlCiAgICAgICAgIC8vIERPTSBzcGVjIChpLmUuICJGMSIsLi4uLCJGMjQiKS4gSWYgdGhl
IGlucHV0IHN0cmluZyBpcyBhIGZ1bmN0aW9uLWtleQpAQCAtNTg4LDcgKzczMCw3IEBAIHZvaWQg
RXZlbnRTZW5kZXI6OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENw
cFZhcmlhbnQqIHJlc3VsdCkKICAgICAgICAgICAgIHNucHJpbnRmKGZ1bmN0aW9uQ2hhcnMsIDEw
LCAiRiVkIiwgaSk7CiAgICAgICAgICAgICBzdHJpbmcgZnVuY3Rpb25LZXlOYW1lKGZ1bmN0aW9u
Q2hhcnMpOwogICAgICAgICAgICAgaWYgKGZ1bmN0aW9uS2V5TmFtZSA9PSBjb2RlU3RyKSB7Ci0g
ICAgICAgICAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0YxICsgKGkgLSAxKTsK
KyAgICAgICAgICAgICAgICBjb2RlID0gVktFWV9GMSArIChpIC0gMSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTYxMyw3ICs3NTUsNyBAQCB2
b2lkIEV2ZW50U2VuZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRz
LCBDcHBWYXJpYW50KiByZXN1bHQpCiAgICAgZXZlbnREb3duLm1vZGlmaWVycyA9IDA7CiAgICAg
ZXZlbnREb3duLndpbmRvd3NLZXlDb2RlID0gY29kZTsKICNpZiBPUyhMSU5VWCkgJiYgVVNFKEdU
SykKLSAgICBldmVudERvd24ubmF0aXZlS2V5Q29kZSA9IHdlYmtpdF9zdXBwb3J0OjpOYXRpdmVL
ZXlDb2RlRm9yV2luZG93c0tleUNvZGUoY29kZSwgbmVlZHNTaGlmdEtleU1vZGlmaWVyKTsKKyAg
ICBldmVudERvd24ubmF0aXZlS2V5Q29kZSA9IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29k
ZShjb2RlKTsKICNlbmRpZgogCiAgICAgaWYgKGdlbmVyYXRlQ2hhcikgewpAQCAtNzc1LDcgKzkx
Nyw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnJlcGxheVNhdmVkRXZlbnRzKCkKICAgICAgICAgc3dp
dGNoIChlLnR5cGUpIHsKICAgICAgICAgY2FzZSBTYXZlZEV2ZW50OjpNb3VzZU1vdmU6IHsKICAg
ICAgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgICAgICBpbml0TW91c2VFdmVu
dChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIGUucG9zLCAmZXZlbnQp
OworICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VNb3ZlLCBw
cmVzc2VkQnV0dG9uLCBlLnBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVs
ZWdhdGUpKTsKICAgICAgICAgICAgIGRvTW91c2VNb3ZlKGV2ZW50KTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CkBAIC03ODQsNyArOTI2LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVw
bGF5U2F2ZWRFdmVudHMoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU2F2ZWRF
dmVudDo6TW91c2VVcDogewogICAgICAgICAgICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAgICAg
ICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGUuYnV0dG9uVHlw
ZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2Vi
SW5wdXRFdmVudDo6TW91c2VVcCwgZS5idXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVudCwg
Z2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgICAgICAgICBkb01vdXNl
VXAoZXZlbnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg0MywxMCArOTg1
LDEwIEBAIHZvaWQgRXZlbnRTZW5kZXI6OmNvbnRleHRDbGljayhjb25zdCBDcHBBcmd1bWVudExp
c3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzCiAgICAgLy8gR2VuZXJhdGUgcmlnaHQgbW91
c2UgZG93biBhbmQgdXAuCiAgICAgV2ViTW91c2VFdmVudCBldmVudDsKICAgICBwcmVzc2VkQnV0
dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQ7Ci0gICAgaW5pdE1vdXNlRXZlbnQoV2Vi
SW5wdXRFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25SaWdodCwgbGFzdE1v
dXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNl
RG93biwgV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBn
ZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRs
ZUlucHV0RXZlbnQoZXZlbnQpOwogCi0gICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6
TW91c2VVcCwgV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50
KTsKKyAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBXZWJNb3VzZUV2
ZW50OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRp
bWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVu
dCk7CiAKICAgICBwcmVzc2VkQnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uTm9uZTsKQEAg
LTkwNiw3ICsxMDQ4LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6YmVnaW5EcmFnV2l0aEZpbGVzKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW4KICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGZpbGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFdlYkRyYWdEYXRhOjpJ
dGVtIGl0ZW07CiAgICAgICAgIGl0ZW0uc3RvcmFnZVR5cGUgPSBXZWJEcmFnRGF0YTo6SXRlbTo6
U3RvcmFnZVR5cGVGaWxlbmFtZTsKLSAgICAgICAgaXRlbS5maWxlbmFtZURhdGEgPSB3ZWJraXRf
c3VwcG9ydDo6R2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoZmlsZXNbaV0pOworICAg
ICAgICBpdGVtLmZpbGVuYW1lRGF0YSA9IG1fZGVsZWdhdGUtPmdldEFic29sdXRlV2ViU3RyaW5n
RnJvbVVURjhQYXRoKGZpbGVzW2ldKTsKICAgICAgICAgY3VycmVudERyYWdEYXRhLmFkZEl0ZW0o
aXRlbSk7CiAgICAgICAgIGFic29sdXRlRmlsZW5hbWVzW2ldID0gaXRlbS5maWxlbmFtZURhdGE7
CiAgICAgfQpAQCAtMTAxNCw3ICsxMTU2LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6c2VuZEN1cnJl
bnRUb3VjaEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSkKICAgICBXZWJUb3Vj
aEV2ZW50IHRvdWNoRXZlbnQ7CiAgICAgdG91Y2hFdmVudC50eXBlID0gdHlwZTsKICAgICB0b3Vj
aEV2ZW50Lm1vZGlmaWVycyA9IHRvdWNoTW9kaWZpZXJzOwotICAgIHRvdWNoRXZlbnQudGltZVN0
YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICB0b3VjaEV2ZW50LnRp
bWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpOwogICAg
IHRvdWNoRXZlbnQudG91Y2hlc0xlbmd0aCA9IHRvdWNoUG9pbnRzLnNpemUoKTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgdG91Y2hQb2ludHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHRv
dWNoRXZlbnQudG91Y2hlc1tpXSA9IHRvdWNoUG9pbnRzW2ldOwpAQCAtMTA1NCw3ICsxMTk2LDcg
QEAgdm9pZCBFdmVudFNlbmRlcjo6aGFuZGxlTW91c2VXaGVlbChjb25zdCBDcHBBcmd1bWVudExp
c3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCoKICAgICAgICAgaGFzUHJlY2lzZVNjcm9sbGluZ0Rl
bHRhcyA9IGFyZ3VtZW50c1szXS50b0Jvb2xlYW4oKTsKIAogICAgIFdlYk1vdXNlV2hlZWxFdmVu
dCBldmVudDsKLSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVdoZWVsLCBw
cmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCk7CisgICAgaW5pdE1vdXNlRXZlbnQo
V2ViSW5wdXRFdmVudDo6TW91c2VXaGVlbCwgcHJlc3NlZEJ1dHRvbiwgbGFzdE1vdXNlUG9zLCAm
ZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIGV2ZW50Lndo
ZWVsVGlja3NYID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGhvcml6b250YWwpOwogICAgIGV2ZW50Lndo
ZWVsVGlja3NZID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZlcnRpY2FsKTsKICAgICBldmVudC5kZWx0
YVggPSBldmVudC53aGVlbFRpY2tzWDsKQEAgLTEyMTcsNyArMTM1OSw3IEBAIHZvaWQgRXZlbnRT
ZW5kZXI6Omdlc3R1cmVFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHR5cGUsIGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYKIAogICAgIGV2ZW50Lmdsb2JhbFggPSBldmVudC54OwogICAgIGV2ZW50Lmds
b2JhbFkgPSBldmVudC55OwotICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50
RXZlbnRUaW1lU2VjKCk7CisgICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRF
dmVudFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAgICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50
KGV2ZW50KTsKIH0KIApAQCAtMTIyOSw3ICsxMzcxLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2Vz
dHVyZUZsaW5nQ2FuY2VsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW4KIAogICAgIFdlYkdlc3R1cmVFdmVudCBldmVudDsKICAgICBldmVudC50eXBlID0gV2ViSW5w
dXRFdmVudDo6R2VzdHVyZUZsaW5nQ2FuY2VsOwotICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMg
PSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCk7CisgICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9
IGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAgICAgd2VidmlldygpLT5oYW5k
bGVJbnB1dEV2ZW50KGV2ZW50KTsKIH0KIApAQCAtMTI1Myw3ICsxMzk1LDcgQEAgdm9pZCBFdmVu
dFNlbmRlcjo6Z2VzdHVyZUZsaW5nU3RhcnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVu
dHMsIENwcFZhcmlhbnQKIAogICAgIGV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVggPSBz
dGF0aWNfY2FzdDxmbG9hdD4oYXJndW1lbnRzWzJdLnRvRG91YmxlKCkpOwogICAgIGV2ZW50LmRh
dGEuZmxpbmdTdGFydC52ZWxvY2l0eVkgPSBzdGF0aWNfY2FzdDxmbG9hdD4oYXJndW1lbnRzWzNd
LnRvRG91YmxlKCkpOwotICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZl
bnRUaW1lU2VjKCk7CisgICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVu
dFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAgICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50KGV2
ZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdERlbGVnYXRlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaAppbmRleCBlNjI2ZWNjZDAxZTIwNjA5NzM3
MjJjMDQ3ODNjM2IxM2UzMWMwODIzLi4wNDk4ZmNiM2YzZjEzNjQ5NjMzZDUyZTE2YWExOGZhMjM5
YTIwNzUyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0RGVsZWdhdGUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHBvc3REZWxheWVkVGFzayhXZWJUZXN0UnVubmVyOjpXZWJUYXNr
KiwgbG9uZyBsb25nIG1zKSA9IDA7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyByZWdp
c3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6Oldl
YlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSA9IDA7CisgICAgdmlydHVhbCBsb25nIGxvbmcg
Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgPSAwOworICAgIHZpcnR1YWwgV2ViS2l0OjpX
ZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJp
bmcmIHBhdGgpID0gMDsKIH07CiAKICNlbmRpZiAvLyBUZXN0RGVsZWdhdGVfaApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmNwcAppbmRleCBlNmVhZDE1NTE1N2ExYjAzNTFlZjkxNTI0ZmI3NGZhYTg0ZTVlNWJl
Li5mMGRhNzk4MzExN2VjMzgxMjc2YjVhNzhhNTVlNDhlYWRkZDcxZTIwIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmNwcApAQCAtMzIsNTEgKzMyLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJUZXN0UnVubmVyLmgiCiAKLSNpbmNsdWRlICJXZWJBbmltYXRpb25Db250cm9sbGVyLmgi
Ci0jaW5jbHVkZSAiV2ViQmluZGluZ3MuaCIKLSNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5o
IgotI2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiV2ViRGV2aWNl
T3JpZW50YXRpb25DbGllbnRNb2NrLmgiCi0jaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJXZWJFbGVtZW50LmgiCi0jaW5jbHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRl
ICJXZWJGcmFtZS5oIgotI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgotI2lu
Y2x1ZGUgIldlYklEQkZhY3RvcnkuaCIKLSNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKLSNp
bmNsdWRlICJXZWJJbnRlbnQuaCIKLSNpbmNsdWRlICJXZWJJbnRlbnRSZXF1ZXN0LmgiCi0jaW5j
bHVkZSAiV2ViS2l0LmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCi0j
aW5jbHVkZSAiV2ViUHJpbnRQYXJhbXMuaCIKLSNpbmNsdWRlICJXZWJTY3JpcHRTb3VyY2UuaCIK
LSNpbmNsdWRlICJXZWJTZWN1cml0eVBvbGljeS5oIgotI2luY2x1ZGUgIldlYlNldHRpbmdzLmgi
Ci0jaW5jbHVkZSAiV2ViU3Vycm91bmRpbmdUZXh0LmgiCi0jaW5jbHVkZSAiV2ViVmlldy5oIgot
I2luY2x1ZGUgIldlYldvcmtlckluZm8uaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJEYXRhLmgi
Ci0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0jaW5jbHVk
ZSAicGxhdGZvcm0vV2ViU2l6ZS5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotI2lu
Y2x1ZGUgInY4L2luY2x1ZGUvdjguaCIKLSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRf
c3VwcG9ydC5oIgotI2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxjbG9jYWxlPgotI2lu
Y2x1ZGUgPGNzdGRsaWI+Ci0jaW5jbHVkZSA8bGltaXRzPgotI2luY2x1ZGUgPHNzdHJlYW0+Ci0j
aW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0KLSNpZiBPUyhMSU5VWCkgfHwgT1MoQU5EUk9JRCkKLSNpbmNsdWRlICJsaW51eC9XZWJG
b250UmVuZGVyaW5nLmgiCi0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQogVGVzdFJ1bm5lcjo6
VGVzdFJ1bm5lcigpCiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKaW5kZXggMzllMTlkNTczNjVkMDNj
NjY4NDFmODdmMjZhY2Y0NTQxZWUwN2Q3YS4uNTAzMjcxYjVkOWI1Y2VlMDk5OGJjYTg1MmMzY2Ew
OTM3NTBhNjVlMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAtMzMsMjEgKzMzLDYgQEAKICNkZWZp
bmUgVGVzdFJ1bm5lcl9oCiAKICNpbmNsdWRlICJDcHBCb3VuZENsYXNzLmgiCi0jaW5jbHVkZSAi
V2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50LmgiCi0jaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlvbi5o
IgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYkFycmF5QnVmZmVyVmlldy5oIgotI2luY2x1ZGUgInBs
YXRmb3JtL1dlYlN0cmluZy5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotI2luY2x1
ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci1jbGFzcyBXZWJHZW9sb2NhdGlvbkNsaWVudE1vY2s7Ci19Ci0KLW5hbWVzcGFjZSB3
ZWJraXRfc3VwcG9ydCB7Ci1jbGFzcyBTY29wZWRUZW1wRGlyZWN0b3J5OwotfQogCiBjbGFzcyBU
ZXN0UnVubmVyIDogcHVibGljIENwcEJvdW5kQ2xhc3MgewogcHVibGljOgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVy
ZmFjZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViVGVzdEludGVyZmFjZXMuY3BwCmluZGV4IGY3ZGIxNzE5OGU2N2Y4YThkODMyMGRlNjVlYTRi
NDA5YjYxOTBiM2YuLjlhODY5NTNjM2NiODUzNzQwZWFhNzhiYWZmYTE4OGM0YjcyNzI4ZjggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dl
YlRlc3RJbnRlcmZhY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAKQEAgLTY3LDYgKzY3LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhXZWJUYXNrKik7CiAgICAgdmlydHVhbCB2
b2lkIHBvc3REZWxheWVkVGFzayhXZWJUYXNrKiwgbG9uZyBsb25nIG1zKTsKICAgICB2aXJ0dWFs
IFdlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJWZWN0b3I8V2Vi
U3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFtZXMpOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1
cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcg
Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgp
OwogCiBwcml2YXRlOgogICAgIFRlc3RJbnRlcmZhY2VzIG1faW50ZXJmYWNlczsKQEAgLTE0Nyw2
ICsxNDksMTYgQEAgV2ViU3RyaW5nIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6cmVnaXN0
ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViVmVjdG8KICAgICByZXR1cm4gbV9kZWxlZ2F0
ZS0+cmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1dGVGaWxlbmFtZXMpOwogfQogCits
b25nIGxvbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRDdXJyZW50VGltZUluTWls
bGlzZWNvbmQoKQoreworICAgIHJldHVybiBtX2RlbGVnYXRlLT5nZXRDdXJyZW50VGltZUluTWls
bGlzZWNvbmQoKTsKK30KKworV2ViS2l0OjpXZWJTdHJpbmcgV2ViVGVzdEludGVyZmFjZXM6Oklu
dGVybmFsOjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmlu
ZyYgcGF0aCkKK3sKKyAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1dGVXZWJTdHJpbmdG
cm9tVVRGOFBhdGgocGF0aCk7Cit9CisKIFdlYlRlc3RJbnRlcmZhY2VzOjpXZWJUZXN0SW50ZXJm
YWNlcygpCiB7CiAgICAgbV9pbnRlcm5hbCA9IG5ldyBJbnRlcm5hbDsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCBkMzc2MjJkYjk5NTg4Zjc5
MTViMjQ0ZWY5Y2I3ZDA1ZTIxMmZjNzMxLi44N2ViMjUwOGJjNDQzNjVmNjMxNmIyN2Y1MjA5YWY4
NDkxMWQ3OTM5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3QuY3BwCkBAIC0xNTAwLDYgKzE1MDAsMTYgQEAgV2ViU3RyaW5nIFdlYlZpZXdIb3N0OjpyZWdp
c3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgYWIKICAg
ICByZXR1cm4gd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGFic29s
dXRlRmlsZW5hbWVzKTsKIH0KIAorbG9uZyBsb25nIFdlYlZpZXdIb3N0OjpnZXRDdXJyZW50VGlt
ZUluTWlsbGlzZWNvbmQoKQoreworICAgIHJldHVybiB3ZWJraXRfc3VwcG9ydDo6R2V0Q3VycmVu
dFRpbWVJbk1pbGxpc2Vjb25kKCk7Cit9CisKK1dlYktpdDo6V2ViU3RyaW5nIFdlYlZpZXdIb3N0
OjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0
aCkKK3sKKyAgICByZXR1cm4gd2Via2l0X3N1cHBvcnQ6OkdldEFic29sdXRlV2ViU3RyaW5nRnJv
bVVURjhQYXRoKHBhdGgpOworfQorCiAvLyBQdWJsaWMgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdlYlZpZXdI
b3N0OjpXZWJWaWV3SG9zdChUZXN0U2hlbGwqIHNoZWxsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXggOWFmNDdlMDc4Zjc2YWYwN2M0NDAwODc2ZmE5
N2FiOWE4NTRkOTUyNy4uODYwMDcxOTRiMDQzNTY3MmMwMTQ5OTlkNTg2MDUzZWNmZjVmOGI0ZiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xMzks
NiArMTM5LDggQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xp
ZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIHZvaWQgcG9z
dFRhc2soV2ViVGVzdFJ1bm5lcjo6V2ViVGFzayopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBwb3N0RGVsYXllZFRhc2soV2ViVGVzdFJ1bm5lcjo6V2ViVGFzayosIGxvbmcgbG9uZyBtcykg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVk
RmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFi
c29sdXRlRmlsZW5hbWVzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBnZXRDdXJy
ZW50VGltZUluTWlsbGlzZWNvbmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2Vi
U3RyaW5nIGdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5n
JiBwYXRoKSBPVkVSUklERTsKIAogICAgIC8vIE5hdmlnYXRpb25Ib3N0CiAgICAgdmlydHVhbCBi
b29sIG5hdmlnYXRlKGNvbnN0IFRlc3ROYXZpZ2F0aW9uRW50cnkmLCBib29sIHJlbG9hZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170688</attachid>
            <date>2012-10-25 10:37:21 -0700</date>
            <delta_ts>2012-10-25 10:39:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-100344-20121025193554.patch</filename>
            <type>text/plain</type>
            <size>27849</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uNTQ3YjQxYjlmZDNhMjViZTZiN2NjZTRmNGQxM2FhZmUyN2VmZTAwYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDEyLTEwLTI1ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHJlbWFpbmluZyB1c2FnZXMgb2Ygd2Via2l0X3N1
cHBvcnQgZnJvbSB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBtb3N0IGltcG9ydGFudCBwYXJ0IGlzIHRvIG5vdCBy
ZWx5IG9uIGNhbGxpbmcgb3V0IHRvIGdkay9YMTEgdG8KKyAgICAgICAgdHJhbnNsYXRlIGtleWNv
ZGVzIHRvIGhhcmR3YXJlIGtleWNvZGVzLCBhcyB0aGlzIGlzIG5vdCBwb3NzaWJsZSBpbnNpZGUK
KyAgICAgICAgdGhlIHNhbmRib3guCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAod2Via2l0X3N1
cHBvcnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlRlc3REZWxlZ2F0ZS5oOgorICAgICAgICAoV2ViVGVzdERlbGVnYXRlKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50Lmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRT
ZW5kZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpFdmVudFNlbmRlcjo6ZG9EcmFnRHJvcCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpF
dmVudFNlbmRlcjo6dXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbik6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpFdmVudFNlbmRlcjo6bW91c2VEb3duKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OkV2ZW50U2VuZGVyOjptb3VzZVVwKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2Vu
ZGVyOjptb3VzZU1vdmVUbyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6
a2V5RG93bik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6cmVwbGF5U2F2
ZWRFdmVudHMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmNvbnRleHRD
bGljayk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6YmVnaW5EcmFnV2l0
aEZpbGVzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpzZW5kQ3VycmVu
dFRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmhhbmRs
ZU1vdXNlV2hlZWwpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omdlc3R1
cmVFdmVudCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Z2VzdHVyZUZs
aW5nQ2FuY2VsKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpnZXN0dXJl
RmxpbmdTdGFydCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvVGVzdERlbGVnYXRlLmg6CisgICAgICAgIChUZXN0RGVsZWdhdGUpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5u
ZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJUZXN0SW50ZXJmYWNlcy5jcHA6CisgICAgICAgIChXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJu
YWwpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6Omdl
dEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9zdDo6Z2V0Q3Vy
cmVudFRpbWVJbk1pbGxpc2Vjb25kKToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpnZXRBYnNvbHV0
ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKwogMjAxMi0xMC0yNCAg
RGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBucnd0OiB0cnVu
Y2F0ZSBtZXRlciBsaW5lcyBwcm9wZXJseSBvbiB3aW5kb3dzCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgKaW5kZXggZWM0Nzc4ZmQ1YzQ2ZjhmMzI4NzU4
YTE1N2EzMjgyMTQ1NGI1YjIyMS4uY2NkZmM0Mzk0ZGY2ZGRjOWUwNGJmMTUzZjU5NTcwN2MxYjc2
ZjBiMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
aApAQCAtNDMsNyArNDMsMjMgQEAKICNkZWZpbmUgRFJUVGVzdFJ1bm5lcl9oCiAKICNpbmNsdWRl
ICJUZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgiCisjaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50
ZW50Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVGFzay5oIgorI2luY2x1ZGUgIldlYlRleHREaXJl
Y3Rpb24uaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJBcnJheUJ1ZmZlclZpZXcuaCIKKyNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkwuaCIK
KyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrOworfQorCituYW1l
c3BhY2Ugd2Via2l0X3N1cHBvcnQgeworY2xhc3MgU2NvcGVkVGVtcERpcmVjdG9yeTsKK30KKwog
CiBjbGFzcyBUZXN0U2hlbGw7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKaW5k
ZXggNmUyMTg4MTA3YmE5NzQ1YmU2ZDk1MzM4OTJlNGE3NGY3ZjNlNjAwNS4uYWI0N2Q0ZjlkY2Vh
NmQ3ZWM5MThiZGQxZTJlZjRkZWYyYzU4MmUwZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERl
bGVnYXRlLmgKQEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0
RGVsYXllZFRhc2soV2ViVGFzayosIGxvbmcgbG9uZyBtcykgPSAwOwogCiAgICAgdmlydHVhbCBX
ZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6
OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSA9IDA7Cisg
ICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgPSAwOwor
ICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRG
OFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlh
bnQuaAppbmRleCA2MGNjNjI3MWVjZmFkOWVkNjhiZGU0Mjg4NTE1Mzg0MjZkNmI4NDAzLi40N2Zk
NDY2YWZmMzJkNzljZWNiNDcwNjZhNzNiN2E1ZWM1Y2MwMGI5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50LmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5o
CkBAIC00Myw3ICs0Myw2IEBACiAjZGVmaW5lIENwcFZhcmlhbnRfaAogCiAjaW5jbHVkZSAiV2Vi
QmluZGluZ3MuaCIKLSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgog
I2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50
U2VuZGVyLmNwcAppbmRleCAyZjRhMDU1NGM1YzM2ZDNlZmI2OTBmNDdlOGMyZjg5M2NiZmFmOTNl
Li5mMTcxYmVmMGRlODI0MTU1OGIyOTIzYjNmNGE0M2YzZTJhNWVjZGRjIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZl
bnRTZW5kZXIuY3BwCkBAIC00NiwxMyArNDYsMTMgQEAKICNpbmNsdWRlICJUZXN0RGVsZWdhdGUu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJEcmFnT3Bl
cmF0aW9uLmgiCisjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKICNpbmNsdWRlICJXZWJUb3Vj
aFBvaW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRy
YWdEYXRhLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViUG9pbnQuaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJTdHJpbmcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJWZWN0b3IuaCIKLSNpbmNs
dWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIApAQCAtNzMsNiArNzMsMzEgQEAg
V2ViTW91c2VFdmVudDo6QnV0dG9uIEV2ZW50U2VuZGVyOjpsYXN0QnV0dG9uVHlwZSA9IFdlYk1v
dXNlRXZlbnQ6OkJ1dHRvbk5vbmU7CiAKIG5hbWVzcGFjZSB7CiAKKy8vIFRoZSBrZXljb2RlcyBt
YXRjaCB0aGUgdmFsdWVzIG9mIHRoZSB2aXJ0dWFsIGtleWNvZGVzIGZvdW5kIGhlcmUgaHR0cDov
L21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9kZDM3NTcz
MSh2PXZzLjg1KS5hc3B4CitlbnVtIHsKKyAgICBWS0VZX1JFVFVSTiAgID0gMHgwRCwKKyAgICBW
S0VZX1BSSU9SICAgID0gMHgyMSwKKyAgICBWS0VZX05FWFQgICAgID0gMHgyMiwKKyAgICBWS0VZ
X0VORCAgICAgID0gMHgyMywKKyAgICBWS0VZX0hPTUUgICAgID0gMHgyNCwKKyAgICBWS0VZX0xF
RlQgICAgID0gMHgyNSwKKyAgICBWS0VZX1VQICAgICAgID0gMHgyNiwKKyAgICBWS0VZX1JJR0hU
ICAgID0gMHgyNywKKyAgICBWS0VZX0RPV04gICAgID0gMHgyOCwKKyAgICBWS0VZX1NOQVBTSE9U
ID0gMHgyQywKKyAgICBWS0VZX0lOU0VSVCAgID0gMHgyRCwKKyAgICBWS0VZX0RFTEVURSAgID0g
MHgyRSwKKyAgICBWS0VZX0FQUFMgICAgID0gMHg1RCwKKyAgICBWS0VZX0YxICAgICAgID0gMHg3
MCwKKyAgICBWS0VZX0xTSElGVCAgID0gMHhBMCwKKyAgICBWS0VZX1JTSElGVCAgID0gMHhBMSwK
KyAgICBWS0VZX0xDT05UUk9MID0gMHhBMiwKKyAgICBWS0VZX1JDT05UUk9MID0gMHhBMywKKyAg
ICBWS0VZX0xNRU5VICAgID0gMHhBNCwKKyAgICBWS0VZX1JNRU5VICAgID0gMHhBNSwKK307CisK
Kwogc3RydWN0IFNhdmVkRXZlbnQgewogICAgIGVudW0gU2F2ZWRFdmVudFR5cGUgewogICAgICAg
ICBVbnNwZWNpZmllZCwKQEAgLTEyNSw5ICsxNTAsOSBAQCBpbmxpbmUgYm9vbCBvdXRzaWRlTXVs
dGlDbGlja1JhZGl1cyhjb25zdCBXZWJQb2ludCYgYSwgY29uc3QgV2ViUG9pbnQmIGIpCiAvLyBk
ZXBlbmRlbnQgKGUuZy4sIGRyYWdnaW5nIGhhcyBhIHRpbWVvdXQgdnMgc2VsZWN0aW9uKS4KIHVp
bnQzMiB0aW1lT2Zmc2V0TXMgPSAwOwogCi1kb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYygp
Citkb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQog
ewotICAgIHJldHVybiAod2Via2l0X3N1cHBvcnQ6OkdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29u
ZCgpICsgdGltZU9mZnNldE1zKSAvIDEwMDAuMDsKKyAgICByZXR1cm4gKGRlbGVnYXRlLT5nZXRD
dXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSArIHRpbWVPZmZzZXRNcykgLyAxMDAwLjA7CiB9CiAK
IHZvaWQgYWR2YW5jZUV2ZW50VGltZShpbnQzMl90IGRlbHRhTXMpCkBAIC0xMzUsNyArMTYwLDcg
QEAgdm9pZCBhZHZhbmNlRXZlbnRUaW1lKGludDMyX3QgZGVsdGFNcykKICAgICB0aW1lT2Zmc2V0
TXMgKz0gZGVsdGFNczsKIH0KIAotdm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpU
eXBlIHQsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJN
b3VzZUV2ZW50KiBlKQordm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHQs
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJNb3VzZUV2
ZW50KiBlLCBkb3VibGUgdHMpCiB7CiAgICAgZS0+dHlwZSA9IHQ7CiAgICAgZS0+YnV0dG9uID0g
YjsKQEAgLTE0NCw3ICsxNjksNyBAQCB2b2lkIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6
OlR5cGUgdCwgV2ViTW91c2VFdmVudDo6QnV0dG9uIGIsIGNvbnN0IFdlYlBvaQogICAgIGUtPnkg
PSBwb3MueTsKICAgICBlLT5nbG9iYWxYID0gcG9zLng7CiAgICAgZS0+Z2xvYmFsWSA9IHBvcy55
OwotICAgIGUtPnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCk7Cisg
ICAgZS0+dGltZVN0YW1wU2Vjb25kcyA9IHRzOwogICAgIGUtPmNsaWNrQ291bnQgPSBjbGlja0Nv
dW50OwogfQogCkBAIC0yMTQsMTYgKzIzOSwxNiBAQCBib29sIGdldEVkaXRDb21tYW5kKGNvbnN0
IFdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBzdHJpbmcqIG5hbWUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIHN3aXRjaCAoZXZlbnQud2luZG93c0tleUNvZGUpIHsKLSAgICBjYXNlIHdl
YmtpdF9zdXBwb3J0OjpWS0VZX0xFRlQ6CisgICAgY2FzZSBWS0VZX0xFRlQ6CiAgICAgICAgICpu
YW1lID0gIk1vdmVUb0JlZ2lubmluZ09mTGluZSI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
d2Via2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ6CisgICAgY2FzZSBWS0VZX1JJR0hUOgogICAgICAg
ICAqbmFtZSA9ICJNb3ZlVG9FbmRPZkxpbmUiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIHdl
YmtpdF9zdXBwb3J0OjpWS0VZX1VQOgorICAgIGNhc2UgVktFWV9VUDoKICAgICAgICAgKm5hbWUg
PSAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
d2Via2l0X3N1cHBvcnQ6OlZLRVlfRE9XTjoKKyAgICBjYXNlIFZLRVlfRE9XTjoKICAgICAgICAg
Km5hbWUgPSAiTW92ZVRvRW5kT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CkBAIC0yNDgsNiArMjczLDEyNiBAQCBlbnVtIEtleUxvY2F0aW9uQ29kZSB7CiAgICAgRE9N
S2V5TG9jYXRpb25OdW1wYWQgICAgICAgID0gMHgwMwogfTsKIAorI2lmIE9TKExJTlVYKSAmJiBV
U0UoR1RLKQoraW50IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29kZShpbnQga2V5c3ltKQor
eworICAgIC8vIFNlZSAvdXNyL3NoYXJlL1gxMS94a2Iva2V5Y29kZXMvKgorICAgIHN0YXRpYyBj
b25zdCBpbnQgbGV0dGVyVG9LZXlDb2RlW10gPSB7CisgICAgICAgIDM4LCAgICAvLyBBCisgICAg
ICAgIDU2LCAgICAvLyBCCisgICAgICAgIDU0LCAgICAvLyBDCisgICAgICAgIDQwLCAgICAvLyBE
CisgICAgICAgIDI2LCAgICAvLyBFCisgICAgICAgIDQxLCAgICAvLyBGCisgICAgICAgIDQyLCAg
ICAvLyBHCisgICAgICAgIDQzLCAgICAvLyBICisgICAgICAgIDMxLCAgICAvLyBJCisgICAgICAg
IDQ0LCAgICAvLyBKCisgICAgICAgIDQ1LCAgICAvLyBLCisgICAgICAgIDQ2LCAgICAvLyBMCisg
ICAgICAgIDU4LCAgICAvLyBNCisgICAgICAgIDU3LCAgICAvLyBOCisgICAgICAgIDMyLCAgICAv
LyBPCisgICAgICAgIDMzLCAgICAvLyBQCisgICAgICAgIDI0LCAgICAvLyBRCisgICAgICAgIDI3
LCAgICAvLyBSCisgICAgICAgIDM5LCAgICAvLyBTCisgICAgICAgIDI4LCAgICAvLyBUCisgICAg
ICAgIDMwLCAgICAvLyBVCisgICAgICAgIDU1LCAgICAvLyBWCisgICAgICAgIDI1LCAgICAvLyBX
CisgICAgICAgIDUzLCAgICAvLyBYCisgICAgICAgIDI5LCAgICAvLyBZCisgICAgICAgIDUyLCAg
ICAvLyBaCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3QgaW50IG51bWJlclRvS2V5Q29kZVtdID0g
eworICAgICAgICAxOSwgICAgLy8gMAorICAgICAgICAxMCwgICAgLy8gMQorICAgICAgICAxMSwg
ICAgLy8gMgorICAgICAgICAxMiwgICAgLy8gMworICAgICAgICAxMywgICAgLy8gNAorICAgICAg
ICAxNCwgICAgLy8gNQorICAgICAgICAxNSwgICAgLy8gNgorICAgICAgICAxNiwgICAgLy8gNwor
ICAgICAgICAxNywgICAgLy8gOAorICAgICAgICAxOCwgICAgLy8gOQorICAgIH07CisKKyAgICBp
ZiAoa2V5c3ltID49ICcwJyAmJiBrZXlzeW0gPD0gJzknKQorICAgICAgcmV0dXJuIG51bWJlclRv
S2V5Q29kZVtrZXlzeW0gLSAnMCddOworICAgIGlmIChrZXlzeW0gPj0gJ0EnICYmIGtleXN5bSA8
PSAnWicpCisgICAgICByZXR1cm4gbGV0dGVyVG9LZXlDb2RlW2tleXN5bSAtICdBJ107CisKKyAg
ICBzd2l0Y2ggKGtleXN5bSkgeworICAgIGNhc2UgVktFWV9QUklPUjoKKyAgICAgICAgcmV0dXJu
IDExMjsKKyAgICBjYXNlIFZLRVlfTkVYVDoKKyAgICAgICAgcmV0dXJuIDExNzsKKyAgICBjYXNl
IFZLRVlfRU5EOgorICAgICAgICByZXR1cm4gMTE1OworICAgIGNhc2UgVktFWV9IT01FOgorICAg
ICAgICByZXR1cm4gMTEwOworICAgIGNhc2UgVktFWV9MRUZUOgorICAgICAgICByZXR1cm4gMTEz
OworICAgIGNhc2UgVktFWV9VUDoKKyAgICAgICAgcmV0dXJuIDExMTsKKyAgICBjYXNlIFZLRVlf
UklHSFQ6CisgICAgICAgIHJldHVybiAxMTQ7CisgICAgY2FzZSBWS0VZX0RPV046CisgICAgICAg
IHJldHVybiAxMTY7CisgICAgY2FzZSBWS0VZX1NOQVBTSE9UOgorICAgICAgICByZXR1cm4gMTA3
OworICAgIGNhc2UgVktFWV9JTlNFUlQ6CisgICAgICAgIHJldHVybiAxMTg7CisgICAgY2FzZSBW
S0VZX0RFTEVURToKKyAgICAgICAgcmV0dXJuIDExOTsKKyAgICBjYXNlIFZLRVlfQVBQUzoKKyAg
ICAgICAgcmV0dXJuIDEzNTsKKyAgICBjYXNlIFZLRVlfRjE6CisgICAgY2FzZSBWS0VZX0YxICsg
MToKKyAgICBjYXNlIFZLRVlfRjEgKyAyOgorICAgIGNhc2UgVktFWV9GMSArIDM6CisgICAgY2Fz
ZSBWS0VZX0YxICsgNDoKKyAgICBjYXNlIFZLRVlfRjEgKyA1OgorICAgIGNhc2UgVktFWV9GMSAr
IDY6CisgICAgY2FzZSBWS0VZX0YxICsgNzoKKyAgICBjYXNlIFZLRVlfRjEgKyA4OgorICAgIGNh
c2UgVktFWV9GMSArIDk6CisgICAgY2FzZSBWS0VZX0YxICsgMTA6CisgICAgY2FzZSBWS0VZX0Yx
ICsgMTE6CisgICAgY2FzZSBWS0VZX0YxICsgMTI6CisgICAgY2FzZSBWS0VZX0YxICsgMTM6Cisg
ICAgY2FzZSBWS0VZX0YxICsgMTQ6CisgICAgY2FzZSBWS0VZX0YxICsgMTU6CisgICAgY2FzZSBW
S0VZX0YxICsgMTY6CisgICAgY2FzZSBWS0VZX0YxICsgMTc6CisgICAgY2FzZSBWS0VZX0YxICsg
MTg6CisgICAgY2FzZSBWS0VZX0YxICsgMTk6CisgICAgY2FzZSBWS0VZX0YxICsgMjA6CisgICAg
Y2FzZSBWS0VZX0YxICsgMjE6CisgICAgY2FzZSBWS0VZX0YxICsgMjI6CisgICAgY2FzZSBWS0VZ
X0YxICsgMjM6CisgICAgICAgIHJldHVybiA2NyArIChrZXlzeW0gLSBWS0VZX0YxKTsKKyAgICBj
YXNlIFZLRVlfTFNISUZUOgorICAgICAgICByZXR1cm4gNTA7CisgICAgY2FzZSBWS0VZX1JTSElG
VDoKKyAgICAgICAgcmV0dXJuIDYyOworICAgIGNhc2UgVktFWV9MQ09OVFJPTDoKKyAgICAgICAg
cmV0dXJuIDM3OworICAgIGNhc2UgVktFWV9SQ09OVFJPTDoKKyAgICAgICAgcmV0dXJuIDEwNTsK
KyAgICBjYXNlIFZLRVlfTE1FTlU6CisgICAgICAgIHJldHVybiA2NDsKKyAgICBjYXNlIFZLRVlf
Uk1FTlU6CisgICAgICAgIHJldHVybiAxMDg7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorI2VuZGlmCisK
IH0KIAogRXZlbnRTZW5kZXI6OkV2ZW50U2VuZGVyKCkKQEAgLTM0OSw3ICs0OTQsNyBAQCB2b2lk
IEV2ZW50U2VuZGVyOjpyZXNldCgpCiB2b2lkIEV2ZW50U2VuZGVyOjpkb0RyYWdEcm9wKGNvbnN0
IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2spCiB7CiAg
ICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50
OjpNb3VzZURvd24sIHByZXNzZWRCdXR0b24sIGxhc3RNb3VzZVBvcywgJmV2ZW50KTsKKyAgICBp
bml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZURvd24sIHByZXNzZWRCdXR0b24sIGxh
c3RNb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsK
ICAgICBXZWJQb2ludCBjbGllbnRQb2ludChldmVudC54LCBldmVudC55KTsKICAgICBXZWJQb2lu
dCBzY3JlZW5Qb2ludChldmVudC5nbG9iYWxYLCBldmVudC5nbG9iYWxZKTsKICAgICBjdXJyZW50
RHJhZ0RhdGEgPSBkcmFnRGF0YTsKQEAgLTM5Miw3ICs1MzcsNyBAQCBpbnQgRXZlbnRTZW5kZXI6
OmdldEJ1dHRvbk51bWJlckZyb21TaW5nbGVBcmcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMpCiAKIHZvaWQgRXZlbnRTZW5kZXI6OnVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b24oV2Vi
TW91c2VFdmVudDo6QnV0dG9uIGJ1dHRvblR5cGUpCiB7Ci0gICAgaWYgKChnZXRDdXJyZW50RXZl
bnRUaW1lU2VjKCkgLSBsYXN0Q2xpY2tUaW1lU2VjIDwgbXVsdGlwbGVDbGlja1RpbWVTZWMpCisg
ICAgaWYgKChnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpIC0gbGFzdENsaWNrVGlt
ZVNlYyA8IG11bHRpcGxlQ2xpY2tUaW1lU2VjKQogICAgICAgICAmJiAoIW91dHNpZGVNdWx0aUNs
aWNrUmFkaXVzKGxhc3RNb3VzZVBvcywgbGFzdENsaWNrUG9zKSkKICAgICAgICAgJiYgKGJ1dHRv
blR5cGUgPT0gbGFzdEJ1dHRvblR5cGUpKQogICAgICAgICArK2NsaWNrQ291bnQ7CkBAIC00MjIs
NyArNTY3LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6bW91c2VEb3duKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQKIAogICAgIFdlYk1vdXNlRXZlbnQg
ZXZlbnQ7CiAgICAgcHJlc3NlZEJ1dHRvbiA9IGJ1dHRvblR5cGU7Ci0gICAgaW5pdE1vdXNlRXZl
bnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBidXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZl
dmVudCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBidXR0
b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2Rl
bGVnYXRlKSk7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPj0gMiAmJiAoYXJndW1lbnRzWzFd
LmlzT2JqZWN0KCkgfHwgYXJndW1lbnRzWzFdLmlzU3RyaW5nKCkpKQogICAgICAgICBhcHBseUtl
eU1vZGlmaWVycygmKGFyZ3VtZW50c1sxXSksICZldmVudCk7CiAgICAgd2VidmlldygpLT5oYW5k
bGVJbnB1dEV2ZW50KGV2ZW50KTsKQEAgLTQ0OCw3ICs1OTMsNyBAQCB2b2lkIEV2ZW50U2VuZGVy
Ojptb3VzZVVwKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCiAgICAgICAgIHJlcGxheVNhdmVkRXZlbnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRF
dmVudDo6TW91c2VVcCwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgICAg
ICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBidXR0b25UeXBlLCBsYXN0
TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAg
ICAgICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID49IDIgJiYgKGFyZ3VtZW50c1sxXS5pc09iamVj
dCgpIHx8IGFyZ3VtZW50c1sxXS5pc1N0cmluZygpKSkKICAgICAgICAgICAgIGFwcGx5S2V5TW9k
aWZpZXJzKCYoYXJndW1lbnRzWzFdKSwgJmV2ZW50KTsKICAgICAgICAgZG9Nb3VzZVVwKGV2ZW50
KTsKQEAgLTQ5Nyw3ICs2NDIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjptb3VzZU1vdmVUbyhjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdQogICAgICAgICBt
b3VzZUV2ZW50UXVldWUuYXBwZW5kKHNhdmVkRXZlbnQpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZl
bnQ6Ok1vdXNlTW92ZSwgcHJlc3NlZEJ1dHRvbiwgbW91c2VQb3MsICZldmVudCk7CisgICAgICAg
IGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlTW92ZSwgcHJlc3NlZEJ1dHRvbiwg
bW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAg
ICAgICAgIGRvTW91c2VNb3ZlKGV2ZW50KTsKICAgICB9CiB9CkBAIC01MzUsNTAgKzY4MCw0MyBA
QCB2b2lkIEV2ZW50U2VuZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiAgICAgYm9vbCBuZWVkc1NoaWZ0S2V5TW9kaWZpZXIg
PSBmYWxzZTsKICAgICBpZiAoIlxuIiA9PSBjb2RlU3RyKSB7CiAgICAgICAgIGdlbmVyYXRlQ2hh
ciA9IHRydWU7Ci0gICAgICAgIHRleHQgPSBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUkVU
VVJOOworICAgICAgICB0ZXh0ID0gY29kZSA9IFZLRVlfUkVUVVJOOwogICAgIH0gZWxzZSBpZiAo
InJpZ2h0QXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6
VktFWV9SSUdIVDsKKyAgICAgICAgY29kZSA9IFZLRVlfUklHSFQ7CiAgICAgZWxzZSBpZiAoImRv
d25BcnJvdyIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZ
X0RPV047CisgICAgICAgIGNvZGUgPSBWS0VZX0RPV047CiAgICAgZWxzZSBpZiAoImxlZnRBcnJv
dyIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0xFRlQ7
CisgICAgICAgIGNvZGUgPSBWS0VZX0xFRlQ7CiAgICAgZWxzZSBpZiAoInVwQXJyb3ciID09IGNv
ZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9VUDsKKyAgICAgICAg
Y29kZSA9IFZLRVlfVVA7CiAgICAgZWxzZSBpZiAoImluc2VydCIgPT0gY29kZVN0cikKLSAgICAg
ICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0lOU0VSVDsKKyAgICAgICAgY29kZSA9IFZL
RVlfSU5TRVJUOwogICAgIGVsc2UgaWYgKCJkZWxldGUiID09IGNvZGVTdHIpCi0gICAgICAgIGNv
ZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ERUxFVEU7CisgICAgICAgIGNvZGUgPSBWS0VZX0RF
TEVURTsKICAgICBlbHNlIGlmICgicGFnZVVwIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0g
d2Via2l0X3N1cHBvcnQ6OlZLRVlfUFJJT1I7CisgICAgICAgIGNvZGUgPSBWS0VZX1BSSU9SOwog
ICAgIGVsc2UgaWYgKCJwYWdlRG93biIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtp
dF9zdXBwb3J0OjpWS0VZX05FWFQ7CisgICAgICAgIGNvZGUgPSBWS0VZX05FWFQ7CiAgICAgZWxz
ZSBpZiAoImhvbWUiID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6
VktFWV9IT01FOworICAgICAgICBjb2RlID0gVktFWV9IT01FOwogICAgIGVsc2UgaWYgKCJlbmQi
ID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9FTkQ7Cisg
ICAgICAgIGNvZGUgPSBWS0VZX0VORDsKICAgICBlbHNlIGlmICgicHJpbnRTY3JlZW4iID09IGNv
ZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9TTkFQU0hPVDsKKyAg
ICAgICAgY29kZSA9IFZLRVlfU05BUFNIT1Q7CiAgICAgZWxzZSBpZiAoIm1lbnUiID09IGNvZGVT
dHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktF
WV9BUFBTLgotICAgICAgICBjb2RlID0gMHg1RDsKKyAgICAgICAgY29kZSA9IFZLRVlfQVBQUzsK
ICAgICBlbHNlIGlmICgibGVmdENvbnRyb2wiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1F
OiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MQ09OVFJPTC4KLSAgICAgICAg
Y29kZSA9IDB4QTI7CisgICAgICAgIGNvZGUgPSBWS0VZX0xDT05UUk9MOwogICAgIGVsc2UgaWYg
KCJyaWdodENvbnRyb2wiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhp
cyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9SQ09OVFJPTC4KLSAgICAgICAgY29kZSA9IDB4QTM7
CisgICAgICAgIGNvZGUgPSBWS0VZX1JDT05UUk9MOwogICAgIGVsc2UgaWYgKCJsZWZ0U2hpZnQi
ID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3Vw
cG9ydDo6VktFWV9MU0hJRlQuCi0gICAgICAgIGNvZGUgPSAweEEwOworICAgICAgICBjb2RlID0g
VktFWV9MU0hJRlQ7CiAgICAgZWxzZSBpZiAoInJpZ2h0U2hpZnQiID09IGNvZGVTdHIpCi0gICAg
ICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9SU0hJRlQu
Ci0gICAgICAgIGNvZGUgPSAweEExOworICAgICAgICBjb2RlID0gVktFWV9SU0hJRlQ7CiAgICAg
ZWxzZSBpZiAoImxlZnRBbHQiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2Ug
dGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MTUVOVS4KLSAgICAgICAgY29kZSA9IDB4QTQ7
CisgICAgICAgIGNvZGUgPSBWS0VZX0xNRU5VOwogICAgIGVsc2UgaWYgKCJyaWdodEFsdCIgPT0g
Y29kZVN0cikKLSAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0
OjpWS0VZX1JNRU5VLgotICAgICAgICBjb2RlID0gMHhBNTsKKyAgICAgICAgY29kZSA9IFZLRVlf
Uk1FTlU7CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIENvbXBhcmUgdGhlIGlucHV0IHN0cmluZyB3
aXRoIHRoZSBmdW5jdGlvbi1rZXkgbmFtZXMgZGVmaW5lZCBieSB0aGUKICAgICAgICAgLy8gRE9N
IHNwZWMgKGkuZS4gIkYxIiwuLi4sIkYyNCIpLiBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIGEgZnVu
Y3Rpb24ta2V5CkBAIC01ODgsNyArNzI2LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6a2V5RG93bihj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAg
ICAgICAgICAgc25wcmludGYoZnVuY3Rpb25DaGFycywgMTAsICJGJWQiLCBpKTsKICAgICAgICAg
ICAgIHN0cmluZyBmdW5jdGlvbktleU5hbWUoZnVuY3Rpb25DaGFycyk7CiAgICAgICAgICAgICBp
ZiAoZnVuY3Rpb25LZXlOYW1lID09IGNvZGVTdHIpIHsKLSAgICAgICAgICAgICAgICBjb2RlID0g
d2Via2l0X3N1cHBvcnQ6OlZLRVlfRjEgKyAoaSAtIDEpOworICAgICAgICAgICAgICAgIGNvZGUg
PSBWS0VZX0YxICsgKGkgLSAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtNjEzLDcgKzc1MSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OmtleURv
d24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkK
ICAgICBldmVudERvd24ubW9kaWZpZXJzID0gMDsKICAgICBldmVudERvd24ud2luZG93c0tleUNv
ZGUgPSBjb2RlOwogI2lmIE9TKExJTlVYKSAmJiBVU0UoR1RLKQotICAgIGV2ZW50RG93bi5uYXRp
dmVLZXlDb2RlID0gd2Via2l0X3N1cHBvcnQ6Ok5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29k
ZShjb2RlLCBuZWVkc1NoaWZ0S2V5TW9kaWZpZXIpOworICAgIGV2ZW50RG93bi5uYXRpdmVLZXlD
b2RlID0gTmF0aXZlS2V5Q29kZUZvcldpbmRvd3NLZXlDb2RlKGNvZGUpOwogI2VuZGlmCiAKICAg
ICBpZiAoZ2VuZXJhdGVDaGFyKSB7CkBAIC03NzUsNyArOTEzLDcgQEAgdm9pZCBFdmVudFNlbmRl
cjo6cmVwbGF5U2F2ZWRFdmVudHMoKQogICAgICAgICBzd2l0Y2ggKGUudHlwZSkgewogICAgICAg
ICBjYXNlIFNhdmVkRXZlbnQ6Ok1vdXNlTW92ZTogewogICAgICAgICAgICAgV2ViTW91c2VFdmVu
dCBldmVudDsKLSAgICAgICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNl
TW92ZSwgcHJlc3NlZEJ1dHRvbiwgZS5wb3MsICZldmVudCk7CisgICAgICAgICAgICBpbml0TW91
c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIGUucG9zLCAm
ZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgICAgICAgICAg
ZG9Nb3VzZU1vdmUoZXZlbnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTc4
NCw3ICs5MjIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpyZXBsYXlTYXZlZEV2ZW50cygpCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTYXZlZEV2ZW50OjpNb3VzZVVwOiB7CiAgICAg
ICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQo
V2ViSW5wdXRFdmVudDo6TW91c2VVcCwgZS5idXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVu
dCk7CisgICAgICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBl
LmJ1dHRvblR5cGUsIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2Vj
KG1fZGVsZWdhdGUpKTsKICAgICAgICAgICAgIGRvTW91c2VVcChldmVudCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQpAQCAtODQzLDEwICs5ODEsMTAgQEAgdm9pZCBFdmVudFNlbmRl
cjo6Y29udGV4dENsaWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXMKICAgICAvLyBHZW5lcmF0ZSByaWdodCBtb3VzZSBkb3duIGFuZCB1cC4KICAgICBX
ZWJNb3VzZUV2ZW50IGV2ZW50OwogICAgIHByZXNzZWRCdXR0b24gPSBXZWJNb3VzZUV2ZW50OjpC
dXR0b25SaWdodDsKLSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZURvd24s
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvblJpZ2h0LCBsYXN0TW91c2VQb3MsICZldmVudCk7CisgICAg
aW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpC
dXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMo
bV9kZWxlZ2F0ZSkpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiAK
LSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBXZWJNb3VzZUV2ZW50
OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50
KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvblJpZ2h0LCBsYXN0
TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAg
ICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50KGV2ZW50KTsKIAogICAgIHByZXNzZWRCdXR0
b24gPSBXZWJNb3VzZUV2ZW50OjpCdXR0b25Ob25lOwpAQCAtOTA2LDcgKzEwNDQsNyBAQCB2b2lk
IEV2ZW50U2VuZGVyOjpiZWdpbkRyYWdXaXRoRmlsZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBh
cmd1bWVudHMsIENwcFZhcmlhbgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmlsZXMuc2l6
ZSgpOyArK2kpIHsKICAgICAgICAgV2ViRHJhZ0RhdGE6Okl0ZW0gaXRlbTsKICAgICAgICAgaXRl
bS5zdG9yYWdlVHlwZSA9IFdlYkRyYWdEYXRhOjpJdGVtOjpTdG9yYWdlVHlwZUZpbGVuYW1lOwot
ICAgICAgICBpdGVtLmZpbGVuYW1lRGF0YSA9IHdlYmtpdF9zdXBwb3J0OjpHZXRBYnNvbHV0ZVdl
YlN0cmluZ0Zyb21VVEY4UGF0aChmaWxlc1tpXSk7CisgICAgICAgIGl0ZW0uZmlsZW5hbWVEYXRh
ID0gbV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoZmlsZXNbaV0p
OwogICAgICAgICBjdXJyZW50RHJhZ0RhdGEuYWRkSXRlbShpdGVtKTsKICAgICAgICAgYWJzb2x1
dGVGaWxlbmFtZXNbaV0gPSBpdGVtLmZpbGVuYW1lRGF0YTsKICAgICB9CkBAIC0xMDE0LDcgKzEx
NTIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpzZW5kQ3VycmVudFRvdWNoRXZlbnQoY29uc3QgV2Vi
SW5wdXRFdmVudDo6VHlwZSB0eXBlKQogICAgIFdlYlRvdWNoRXZlbnQgdG91Y2hFdmVudDsKICAg
ICB0b3VjaEV2ZW50LnR5cGUgPSB0eXBlOwogICAgIHRvdWNoRXZlbnQubW9kaWZpZXJzID0gdG91
Y2hNb2RpZmllcnM7Ci0gICAgdG91Y2hFdmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVu
dEV2ZW50VGltZVNlYygpOworICAgIHRvdWNoRXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1
cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAgICAgdG91Y2hFdmVudC50b3VjaGVzTGVu
Z3RoID0gdG91Y2hQb2ludHMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0
b3VjaFBvaW50cy5zaXplKCk7ICsraSkKICAgICAgICAgdG91Y2hFdmVudC50b3VjaGVzW2ldID0g
dG91Y2hQb2ludHNbaV07CkBAIC0xMDU0LDcgKzExOTIsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpo
YW5kbGVNb3VzZVdoZWVsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KgogICAgICAgICBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzID0gYXJndW1lbnRzWzNdLnRv
Qm9vbGVhbigpOwogCiAgICAgV2ViTW91c2VXaGVlbEV2ZW50IGV2ZW50OwotICAgIGluaXRNb3Vz
ZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWwsIHByZXNzZWRCdXR0b24sIGxhc3RNb3Vz
ZVBvcywgJmV2ZW50KTsKKyAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVdo
ZWVsLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50
VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgZXZlbnQud2hlZWxUaWNrc1ggPSBzdGF0aWNfY2Fz
dDxmbG9hdD4oaG9yaXpvbnRhbCk7CiAgICAgZXZlbnQud2hlZWxUaWNrc1kgPSBzdGF0aWNfY2Fz
dDxmbG9hdD4odmVydGljYWwpOwogICAgIGV2ZW50LmRlbHRhWCA9IGV2ZW50LndoZWVsVGlja3NY
OwpAQCAtMTIxNyw3ICsxMzU1LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2VzdHVyZUV2ZW50KFdl
YklucHV0RXZlbnQ6OlR5cGUgdHlwZSwgY29uc3QgQ3BwQXJndW1lbnRMaXN0JgogCiAgICAgZXZl
bnQuZ2xvYmFsWCA9IGV2ZW50Lng7CiAgICAgZXZlbnQuZ2xvYmFsWSA9IGV2ZW50Lnk7Ci0gICAg
ZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICBl
dmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRl
KTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOwogfQogCkBAIC0xMjI5
LDcgKzEzNjcsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlRmxpbmdDYW5jZWwoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbgogCiAgICAgV2ViR2VzdHVyZUV2
ZW50IGV2ZW50OwogICAgIGV2ZW50LnR5cGUgPSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdD
YW5jZWw7Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVT
ZWMoKTsKKyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNl
YyhtX2RlbGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOwog
fQogCkBAIC0xMjUzLDcgKzEzOTEsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlRmxpbmdT
dGFydChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudAogCiAgICAg
ZXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WCA9IHN0YXRpY19jYXN0PGZsb2F0Pihhcmd1
bWVudHNbMl0udG9Eb3VibGUoKSk7CiAgICAgZXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5
WSA9IHN0YXRpY19jYXN0PGZsb2F0Pihhcmd1bWVudHNbM10udG9Eb3VibGUoKSk7Ci0gICAgZXZl
bnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICBldmVu
dC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsK
ICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdh
dGUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RE
ZWxlZ2F0ZS5oCmluZGV4IGU2MjZlY2NkMDFlMjA2MDk3MzcyMmMwNDc4M2MzYjEzZTMxYzA4MjMu
LjA0OThmY2IzZjNmMTM2NDk2MzNkNTJlMTZhYTE4ZmEyMzlhMjA3NTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RE
ZWxlZ2F0ZS5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9z
dFRhc2soV2ViVGVzdFJ1bm5lcjo6V2ViVGFzayopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9z
dERlbGF5ZWRUYXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqLCBsb25nIGxvbmcgbXMpID0gMDsK
ICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVt
KGNvbnN0IFdlYktpdDo6V2ViVmVjdG9yPFdlYktpdDo6V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxl
bmFtZXMpID0gMDsKKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBnZXRDdXJyZW50VGltZUluTWlsbGlz
ZWNvbmQoKSA9IDA7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdl
YlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkgPSAwOwogfTsKIAog
I2VuZGlmIC8vIFRlc3REZWxlZ2F0ZV9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGU2ZWFk
MTU1MTU3YTFiMDM1MWVmOTE1MjRmYjc0ZmFhODRlNWU1YmUuLmYwZGE3OTgzMTE3ZWMzODEyNzZi
NWE3OGE1NWU0OGVhZGRkNzFlMjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC0zMiw1MSAr
MzIsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXIuaCIKIAot
I2luY2x1ZGUgIldlYkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJXZWJCaW5kaW5n
cy5oIgotI2luY2x1ZGUgIldlYkNvbnNvbGVNZXNzYWdlLmgiCi0jaW5jbHVkZSAiV2ViRGV2aWNl
T3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
aCIKLSNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgotI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKLSNp
bmNsdWRlICJXZWJGaW5kT3B0aW9ucy5oIgotI2luY2x1ZGUgIldlYkZyYW1lLmgiCi0jaW5jbHVk
ZSAiV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCi0jaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5o
IgotI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgotI2luY2x1ZGUgIldlYkludGVudC5oIgot
I2luY2x1ZGUgIldlYkludGVudFJlcXVlc3QuaCIKLSNpbmNsdWRlICJXZWJLaXQuaCIKLSNpbmNs
dWRlICJXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKLSNpbmNsdWRlICJXZWJQcmludFBhcmFt
cy5oIgotI2luY2x1ZGUgIldlYlNjcmlwdFNvdXJjZS5oIgotI2luY2x1ZGUgIldlYlNlY3VyaXR5
UG9saWN5LmgiCi0jaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJXZWJTdXJyb3Vu
ZGluZ1RleHQuaCIKLSNpbmNsdWRlICJXZWJWaWV3LmgiCi0jaW5jbHVkZSAiV2ViV29ya2VySW5m
by5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRhdGEuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTaXplLmgi
Ci0jaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0jaW5jbHVkZSAidjgvaW5jbHVkZS92OC5o
IgotI2luY2x1ZGUgIndlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0LmgiCi0jaW5jbHVkZSA8
YWxnb3JpdGhtPgotI2luY2x1ZGUgPGNsb2NhbGU+Ci0jaW5jbHVkZSA8Y3N0ZGxpYj4KLSNpbmNs
dWRlIDxsaW1pdHM+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDx3dGYvT3duQXJyYXlQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIE9TKExJTlVYKSB8
fCBPUyhBTkRST0lEKQotI2luY2x1ZGUgImxpbnV4L1dlYkZvbnRSZW5kZXJpbmcuaCIKLSNlbmRp
ZgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci11
c2luZyBuYW1lc3BhY2Ugc3RkOwotCiBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKIHsKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RSdW5uZXIuaAppbmRleCAzOWUxOWQ1NzM2NWQwM2M2Njg0MWY4N2YyNmFjZjQ1NDFlZTA3
ZDdhLi41MDMyNzFiNWQ5YjVjZWUwOTk4YmNhODUyYzNjYTA5Mzc1MGE2NWUyIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVz
dFJ1bm5lci5oCkBAIC0zMywyMSArMzMsNiBAQAogI2RlZmluZSBUZXN0UnVubmVyX2gKIAogI2lu
Y2x1ZGUgIkNwcEJvdW5kQ2xhc3MuaCIKLSNpbmNsdWRlICJXZWJEZWxpdmVyZWRJbnRlbnRDbGll
bnQuaCIKLSNpbmNsdWRlICJXZWJUZXh0RGlyZWN0aW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0v
V2ViQXJyYXlCdWZmZXJWaWV3LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0j
aW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5j
bHVkZSA8d3RmL093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYkdlb2xv
Y2F0aW9uQ2xpZW50TW9jazsKLX0KLQotbmFtZXNwYWNlIHdlYmtpdF9zdXBwb3J0IHsKLWNsYXNz
IFNjb3BlZFRlbXBEaXJlY3Rvcnk7Ci19CiAKIGNsYXNzIFRlc3RSdW5uZXIgOiBwdWJsaWMgQ3Bw
Qm91bmRDbGFzcyB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAK
aW5kZXggZjdkYjE3MTk4ZTY3ZjhhOGQ4MzIwZGU2NWVhNGI0MDliNjE5MGIzZi4uOWE4Njk1M2Mz
Y2I4NTM3NDBlYWE3OGJhZmZhMTg4YzRiNzI3MjhmOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJ
bnRlcmZhY2VzLmNwcApAQCAtNjcsNiArNjcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHBvc3RUYXNrKFdlYlRhc2sqKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdl
YlRhc2sqLCBsb25nIGxvbmcgbXMpOwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHJlZ2lzdGVySXNv
bGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVu
YW1lcyk7CisgICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25k
KCk7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zy
b21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCk7CiAKIHByaXZhdGU6CiAgICAgVGVz
dEludGVyZmFjZXMgbV9pbnRlcmZhY2VzOwpAQCAtMTQ3LDYgKzE0OSwxNiBAQCBXZWJTdHJpbmcg
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpyZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShj
b25zdCBXZWJWZWN0bwogICAgIHJldHVybiBtX2RlbGVnYXRlLT5yZWdpc3Rlcklzb2xhdGVkRmls
ZVN5c3RlbShhYnNvbHV0ZUZpbGVuYW1lcyk7CiB9CiAKK2xvbmcgbG9uZyBXZWJUZXN0SW50ZXJm
YWNlczo6SW50ZXJuYWw6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpCit7CisgICAgcmV0
dXJuIG1fZGVsZWdhdGUtPmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpOworfQorCitXZWJL
aXQ6OldlYlN0cmluZyBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OmdldEFic29sdXRlV2Vi
U3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKQoreworICAgIHJldHVy
biBtX2RlbGVnYXRlLT5nZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChwYXRoKTsKK30K
KwogV2ViVGVzdEludGVyZmFjZXM6OldlYlRlc3RJbnRlcmZhY2VzKCkKIHsKICAgICBtX2ludGVy
bmFsID0gbmV3IEludGVybmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwCmluZGV4IGQzNzYyMmRiOTk1ODhmNzkxNWIyNDRlZjljYjdkMDVlMjEyZmM3
MzEuLjg3ZWIyNTA4YmM0NDM2NWY2MzE2YjI3ZjUyMDlhZjg0OTExZDc5MzkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE1MDAsNiArMTUw
MCwxNiBAQCBXZWJTdHJpbmcgV2ViVmlld0hvc3Q6OnJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVt
KGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYgogICAgIHJldHVybiB3ZWJraXRfc3VwcG9y
dDo6UmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1dGVGaWxlbmFtZXMpOwogfQogCits
b25nIGxvbmcgV2ViVmlld0hvc3Q6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpCit7Cisg
ICAgcmV0dXJuIHdlYmtpdF9zdXBwb3J0OjpHZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsK
K30KKworV2ViS2l0OjpXZWJTdHJpbmcgV2ViVmlld0hvc3Q6OmdldEFic29sdXRlV2ViU3RyaW5n
RnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKQoreworICAgIHJldHVybiB3ZWJr
aXRfc3VwcG9ydDo6R2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgocGF0aCk7Cit9CisK
IC8vIFB1YmxpYyBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogV2ViVmlld0hvc3Q6OldlYlZpZXdIb3N0KFRlc3RT
aGVsbCogc2hlbGwpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
aAppbmRleCA5YWY0N2UwNzhmNzZhZjA3YzQ0MDA4NzZmYTk3YWI5YTg1NGQ5NTI3Li44NjAwNzE5
NGIwNDM1NjcyYzAxNDk5OWQ1ODYwNTNlY2ZmNWY4YjRmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTEzOSw2ICsxMzksOCBAQCBjbGFzcyBXZWJW
aWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6Oldl
YkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhXZWJUZXN0UnVubmVyOjpX
ZWJUYXNrKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBvc3REZWxheWVkVGFzayhXZWJU
ZXN0UnVubmVyOjpXZWJUYXNrKiwgbG9uZyBsb25nIG1zKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IFdlYktpdDo6V2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYktp
dDo6V2ViVmVjdG9yPFdlYktpdDo6V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFtZXMpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJT
dHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpIE9WRVJSSURFOwogCiAg
ICAgLy8gTmF2aWdhdGlvbkhvc3QKICAgICB2aXJ0dWFsIGJvb2wgbmF2aWdhdGUoY29uc3QgVGVz
dE5hdmlnYXRpb25FbnRyeSYsIGJvb2wgcmVsb2FkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170689</attachid>
            <date>2012-10-25 10:39:07 -0700</date>
            <delta_ts>2012-10-25 12:27:35 -0700</delta_ts>
            <desc>Patch for landing, for realz</desc>
            <filename>bug-100344-20121025193740.patch</filename>
            <type>text/plain</type>
            <size>27745</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uNTQ3YjQxYjlmZDNhMjViZTZiN2NjZTRmNGQxM2FhZmUyN2VmZTAwYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDEyLTEwLTI1ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHJlbWFpbmluZyB1c2FnZXMgb2Ygd2Via2l0X3N1
cHBvcnQgZnJvbSB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBtb3N0IGltcG9ydGFudCBwYXJ0IGlzIHRvIG5vdCBy
ZWx5IG9uIGNhbGxpbmcgb3V0IHRvIGdkay9YMTEgdG8KKyAgICAgICAgdHJhbnNsYXRlIGtleWNv
ZGVzIHRvIGhhcmR3YXJlIGtleWNvZGVzLCBhcyB0aGlzIGlzIG5vdCBwb3NzaWJsZSBpbnNpZGUK
KyAgICAgICAgdGhlIHNhbmRib3guCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAod2Via2l0X3N1
cHBvcnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlRlc3REZWxlZ2F0ZS5oOgorICAgICAgICAoV2ViVGVzdERlbGVnYXRlKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50Lmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRT
ZW5kZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpFdmVudFNlbmRlcjo6ZG9EcmFnRHJvcCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpF
dmVudFNlbmRlcjo6dXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbik6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpFdmVudFNlbmRlcjo6bW91c2VEb3duKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OkV2ZW50U2VuZGVyOjptb3VzZVVwKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2Vu
ZGVyOjptb3VzZU1vdmVUbyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6
a2V5RG93bik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6cmVwbGF5U2F2
ZWRFdmVudHMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmNvbnRleHRD
bGljayk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6YmVnaW5EcmFnV2l0
aEZpbGVzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpzZW5kQ3VycmVu
dFRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmhhbmRs
ZU1vdXNlV2hlZWwpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omdlc3R1
cmVFdmVudCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Z2VzdHVyZUZs
aW5nQ2FuY2VsKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpnZXN0dXJl
RmxpbmdTdGFydCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvVGVzdERlbGVnYXRlLmg6CisgICAgICAgIChUZXN0RGVsZWdhdGUpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5u
ZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJUZXN0SW50ZXJmYWNlcy5jcHA6CisgICAgICAgIChXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJu
YWwpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6Omdl
dEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9zdDo6Z2V0Q3Vy
cmVudFRpbWVJbk1pbGxpc2Vjb25kKToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpnZXRBYnNvbHV0
ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKwogMjAxMi0xMC0yNCAg
RGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBucnd0OiB0cnVu
Y2F0ZSBtZXRlciBsaW5lcyBwcm9wZXJseSBvbiB3aW5kb3dzCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgKaW5kZXggZWM0Nzc4ZmQ1YzQ2ZjhmMzI4NzU4
YTE1N2EzMjgyMTQ1NGI1YjIyMS4uY2NkZmM0Mzk0ZGY2ZGRjOWUwNGJmMTUzZjU5NTcwN2MxYjc2
ZjBiMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
aApAQCAtNDMsNyArNDMsMjMgQEAKICNkZWZpbmUgRFJUVGVzdFJ1bm5lcl9oCiAKICNpbmNsdWRl
ICJUZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgiCisjaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50
ZW50Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVGFzay5oIgorI2luY2x1ZGUgIldlYlRleHREaXJl
Y3Rpb24uaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJBcnJheUJ1ZmZlclZpZXcuaCIKKyNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkwuaCIK
KyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrOworfQorCituYW1l
c3BhY2Ugd2Via2l0X3N1cHBvcnQgeworY2xhc3MgU2NvcGVkVGVtcERpcmVjdG9yeTsKK30KKwog
CiBjbGFzcyBUZXN0U2hlbGw7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKaW5k
ZXggNmUyMTg4MTA3YmE5NzQ1YmU2ZDk1MzM4OTJlNGE3NGY3ZjNlNjAwNS4uYWI0N2Q0ZjlkY2Vh
NmQ3ZWM5MThiZGQxZTJlZjRkZWYyYzU4MmUwZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERl
bGVnYXRlLmgKQEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0
RGVsYXllZFRhc2soV2ViVGFzayosIGxvbmcgbG9uZyBtcykgPSAwOwogCiAgICAgdmlydHVhbCBX
ZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6
OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSA9IDA7Cisg
ICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgPSAwOwor
ICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRG
OFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlh
bnQuaAppbmRleCA2MGNjNjI3MWVjZmFkOWVkNjhiZGU0Mjg4NTE1Mzg0MjZkNmI4NDAzLi40N2Zk
NDY2YWZmMzJkNzljZWNiNDcwNjZhNzNiN2E1ZWM1Y2MwMGI5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50LmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5o
CkBAIC00Myw3ICs0Myw2IEBACiAjZGVmaW5lIENwcFZhcmlhbnRfaAogCiAjaW5jbHVkZSAiV2Vi
QmluZGluZ3MuaCIKLSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgog
I2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50
U2VuZGVyLmNwcAppbmRleCAyZjRhMDU1NGM1YzM2ZDNlZmI2OTBmNDdlOGMyZjg5M2NiZmFmOTNl
Li4xZGNiYTM3Y2I1ODNiNGU4MTYyNjA2OTMzYjk4NGJiYTZjNmQxYzczIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZl
bnRTZW5kZXIuY3BwCkBAIC00NiwxMyArNDYsMTMgQEAKICNpbmNsdWRlICJUZXN0RGVsZWdhdGUu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJEcmFnT3Bl
cmF0aW9uLmgiCisjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKICNpbmNsdWRlICJXZWJUb3Vj
aFBvaW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRy
YWdEYXRhLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViUG9pbnQuaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJTdHJpbmcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJWZWN0b3IuaCIKLSNpbmNs
dWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIApAQCAtNzMsNiArNzMsMzEgQEAg
V2ViTW91c2VFdmVudDo6QnV0dG9uIEV2ZW50U2VuZGVyOjpsYXN0QnV0dG9uVHlwZSA9IFdlYk1v
dXNlRXZlbnQ6OkJ1dHRvbk5vbmU7CiAKIG5hbWVzcGFjZSB7CiAKKy8vIFRoZSBrZXljb2RlcyBt
YXRjaCB0aGUgdmFsdWVzIG9mIHRoZSB2aXJ0dWFsIGtleWNvZGVzIGZvdW5kIGhlcmUgaHR0cDov
L21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9kZDM3NTcz
MSh2PXZzLjg1KS5hc3B4CitlbnVtIHsKKyAgICBWS0VZX1JFVFVSTiAgID0gMHgwRCwKKyAgICBW
S0VZX1BSSU9SICAgID0gMHgyMSwKKyAgICBWS0VZX05FWFQgICAgID0gMHgyMiwKKyAgICBWS0VZ
X0VORCAgICAgID0gMHgyMywKKyAgICBWS0VZX0hPTUUgICAgID0gMHgyNCwKKyAgICBWS0VZX0xF
RlQgICAgID0gMHgyNSwKKyAgICBWS0VZX1VQICAgICAgID0gMHgyNiwKKyAgICBWS0VZX1JJR0hU
ICAgID0gMHgyNywKKyAgICBWS0VZX0RPV04gICAgID0gMHgyOCwKKyAgICBWS0VZX1NOQVBTSE9U
ID0gMHgyQywKKyAgICBWS0VZX0lOU0VSVCAgID0gMHgyRCwKKyAgICBWS0VZX0RFTEVURSAgID0g
MHgyRSwKKyAgICBWS0VZX0FQUFMgICAgID0gMHg1RCwKKyAgICBWS0VZX0YxICAgICAgID0gMHg3
MCwKKyAgICBWS0VZX0xTSElGVCAgID0gMHhBMCwKKyAgICBWS0VZX1JTSElGVCAgID0gMHhBMSwK
KyAgICBWS0VZX0xDT05UUk9MID0gMHhBMiwKKyAgICBWS0VZX1JDT05UUk9MID0gMHhBMywKKyAg
ICBWS0VZX0xNRU5VICAgID0gMHhBNCwKKyAgICBWS0VZX1JNRU5VICAgID0gMHhBNSwKK307CisK
Kwogc3RydWN0IFNhdmVkRXZlbnQgewogICAgIGVudW0gU2F2ZWRFdmVudFR5cGUgewogICAgICAg
ICBVbnNwZWNpZmllZCwKQEAgLTEyNSw5ICsxNTAsOSBAQCBpbmxpbmUgYm9vbCBvdXRzaWRlTXVs
dGlDbGlja1JhZGl1cyhjb25zdCBXZWJQb2ludCYgYSwgY29uc3QgV2ViUG9pbnQmIGIpCiAvLyBk
ZXBlbmRlbnQgKGUuZy4sIGRyYWdnaW5nIGhhcyBhIHRpbWVvdXQgdnMgc2VsZWN0aW9uKS4KIHVp
bnQzMiB0aW1lT2Zmc2V0TXMgPSAwOwogCi1kb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYygp
Citkb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQog
ewotICAgIHJldHVybiAod2Via2l0X3N1cHBvcnQ6OkdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29u
ZCgpICsgdGltZU9mZnNldE1zKSAvIDEwMDAuMDsKKyAgICByZXR1cm4gKGRlbGVnYXRlLT5nZXRD
dXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSArIHRpbWVPZmZzZXRNcykgLyAxMDAwLjA7CiB9CiAK
IHZvaWQgYWR2YW5jZUV2ZW50VGltZShpbnQzMl90IGRlbHRhTXMpCkBAIC0xMzUsNyArMTYwLDcg
QEAgdm9pZCBhZHZhbmNlRXZlbnRUaW1lKGludDMyX3QgZGVsdGFNcykKICAgICB0aW1lT2Zmc2V0
TXMgKz0gZGVsdGFNczsKIH0KIAotdm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpU
eXBlIHQsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJN
b3VzZUV2ZW50KiBlKQordm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHQs
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJNb3VzZUV2
ZW50KiBlLCBkb3VibGUgdHMpCiB7CiAgICAgZS0+dHlwZSA9IHQ7CiAgICAgZS0+YnV0dG9uID0g
YjsKQEAgLTE0NCw3ICsxNjksNyBAQCB2b2lkIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6
OlR5cGUgdCwgV2ViTW91c2VFdmVudDo6QnV0dG9uIGIsIGNvbnN0IFdlYlBvaQogICAgIGUtPnkg
PSBwb3MueTsKICAgICBlLT5nbG9iYWxYID0gcG9zLng7CiAgICAgZS0+Z2xvYmFsWSA9IHBvcy55
OwotICAgIGUtPnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCk7Cisg
ICAgZS0+dGltZVN0YW1wU2Vjb25kcyA9IHRzOwogICAgIGUtPmNsaWNrQ291bnQgPSBjbGlja0Nv
dW50OwogfQogCkBAIC0yMTQsMTYgKzIzOSwxNiBAQCBib29sIGdldEVkaXRDb21tYW5kKGNvbnN0
IFdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBzdHJpbmcqIG5hbWUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIHN3aXRjaCAoZXZlbnQud2luZG93c0tleUNvZGUpIHsKLSAgICBjYXNlIHdl
YmtpdF9zdXBwb3J0OjpWS0VZX0xFRlQ6CisgICAgY2FzZSBWS0VZX0xFRlQ6CiAgICAgICAgICpu
YW1lID0gIk1vdmVUb0JlZ2lubmluZ09mTGluZSI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
d2Via2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ6CisgICAgY2FzZSBWS0VZX1JJR0hUOgogICAgICAg
ICAqbmFtZSA9ICJNb3ZlVG9FbmRPZkxpbmUiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIHdl
YmtpdF9zdXBwb3J0OjpWS0VZX1VQOgorICAgIGNhc2UgVktFWV9VUDoKICAgICAgICAgKm5hbWUg
PSAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
d2Via2l0X3N1cHBvcnQ6OlZLRVlfRE9XTjoKKyAgICBjYXNlIFZLRVlfRE9XTjoKICAgICAgICAg
Km5hbWUgPSAiTW92ZVRvRW5kT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CkBAIC0yNDgsNiArMjczLDEyNiBAQCBlbnVtIEtleUxvY2F0aW9uQ29kZSB7CiAgICAgRE9N
S2V5TG9jYXRpb25OdW1wYWQgICAgICAgID0gMHgwMwogfTsKIAorI2lmIE9TKExJTlVYKSAmJiBV
U0UoR1RLKQoraW50IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29kZShpbnQga2V5c3ltKQor
eworICAgIC8vIFNlZSAvdXNyL3NoYXJlL1gxMS94a2Iva2V5Y29kZXMvKgorICAgIHN0YXRpYyBj
b25zdCBpbnQgbGV0dGVyVG9LZXlDb2RlW10gPSB7CisgICAgICAgIDM4LCAvLyBBCisgICAgICAg
IDU2LCAvLyBCCisgICAgICAgIDU0LCAvLyBDCisgICAgICAgIDQwLCAvLyBECisgICAgICAgIDI2
LCAvLyBFCisgICAgICAgIDQxLCAvLyBGCisgICAgICAgIDQyLCAvLyBHCisgICAgICAgIDQzLCAv
LyBICisgICAgICAgIDMxLCAvLyBJCisgICAgICAgIDQ0LCAvLyBKCisgICAgICAgIDQ1LCAvLyBL
CisgICAgICAgIDQ2LCAvLyBMCisgICAgICAgIDU4LCAvLyBNCisgICAgICAgIDU3LCAvLyBOCisg
ICAgICAgIDMyLCAvLyBPCisgICAgICAgIDMzLCAvLyBQCisgICAgICAgIDI0LCAvLyBRCisgICAg
ICAgIDI3LCAvLyBSCisgICAgICAgIDM5LCAvLyBTCisgICAgICAgIDI4LCAvLyBUCisgICAgICAg
IDMwLCAvLyBVCisgICAgICAgIDU1LCAvLyBWCisgICAgICAgIDI1LCAvLyBXCisgICAgICAgIDUz
LCAvLyBYCisgICAgICAgIDI5LCAvLyBZCisgICAgICAgIDUyLCAvLyBaCisgICAgfTsKKyAgICBz
dGF0aWMgY29uc3QgaW50IG51bWJlclRvS2V5Q29kZVtdID0geworICAgICAgICAxOSwgLy8gMAor
ICAgICAgICAxMCwgLy8gMQorICAgICAgICAxMSwgLy8gMgorICAgICAgICAxMiwgLy8gMworICAg
ICAgICAxMywgLy8gNAorICAgICAgICAxNCwgLy8gNQorICAgICAgICAxNSwgLy8gNgorICAgICAg
ICAxNiwgLy8gNworICAgICAgICAxNywgLy8gOAorICAgICAgICAxOCwgLy8gOQorICAgIH07CisK
KyAgICBpZiAoa2V5c3ltID49ICcwJyAmJiBrZXlzeW0gPD0gJzknKQorICAgICAgICByZXR1cm4g
bnVtYmVyVG9LZXlDb2RlW2tleXN5bSAtICcwJ107CisgICAgaWYgKGtleXN5bSA+PSAnQScgJiYg
a2V5c3ltIDw9ICdaJykKKyAgICAgICAgcmV0dXJuIGxldHRlclRvS2V5Q29kZVtrZXlzeW0gLSAn
QSddOworCisgICAgc3dpdGNoIChrZXlzeW0pIHsKKyAgICBjYXNlIFZLRVlfUFJJT1I6CisgICAg
ICAgIHJldHVybiAxMTI7CisgICAgY2FzZSBWS0VZX05FWFQ6CisgICAgICAgIHJldHVybiAxMTc7
CisgICAgY2FzZSBWS0VZX0VORDoKKyAgICAgICAgcmV0dXJuIDExNTsKKyAgICBjYXNlIFZLRVlf
SE9NRToKKyAgICAgICAgcmV0dXJuIDExMDsKKyAgICBjYXNlIFZLRVlfTEVGVDoKKyAgICAgICAg
cmV0dXJuIDExMzsKKyAgICBjYXNlIFZLRVlfVVA6CisgICAgICAgIHJldHVybiAxMTE7CisgICAg
Y2FzZSBWS0VZX1JJR0hUOgorICAgICAgICByZXR1cm4gMTE0OworICAgIGNhc2UgVktFWV9ET1dO
OgorICAgICAgICByZXR1cm4gMTE2OworICAgIGNhc2UgVktFWV9TTkFQU0hPVDoKKyAgICAgICAg
cmV0dXJuIDEwNzsKKyAgICBjYXNlIFZLRVlfSU5TRVJUOgorICAgICAgICByZXR1cm4gMTE4Owor
ICAgIGNhc2UgVktFWV9ERUxFVEU6CisgICAgICAgIHJldHVybiAxMTk7CisgICAgY2FzZSBWS0VZ
X0FQUFM6CisgICAgICAgIHJldHVybiAxMzU7CisgICAgY2FzZSBWS0VZX0YxOgorICAgIGNhc2Ug
VktFWV9GMSArIDE6CisgICAgY2FzZSBWS0VZX0YxICsgMjoKKyAgICBjYXNlIFZLRVlfRjEgKyAz
OgorICAgIGNhc2UgVktFWV9GMSArIDQ6CisgICAgY2FzZSBWS0VZX0YxICsgNToKKyAgICBjYXNl
IFZLRVlfRjEgKyA2OgorICAgIGNhc2UgVktFWV9GMSArIDc6CisgICAgY2FzZSBWS0VZX0YxICsg
ODoKKyAgICBjYXNlIFZLRVlfRjEgKyA5OgorICAgIGNhc2UgVktFWV9GMSArIDEwOgorICAgIGNh
c2UgVktFWV9GMSArIDExOgorICAgIGNhc2UgVktFWV9GMSArIDEyOgorICAgIGNhc2UgVktFWV9G
MSArIDEzOgorICAgIGNhc2UgVktFWV9GMSArIDE0OgorICAgIGNhc2UgVktFWV9GMSArIDE1Ogor
ICAgIGNhc2UgVktFWV9GMSArIDE2OgorICAgIGNhc2UgVktFWV9GMSArIDE3OgorICAgIGNhc2Ug
VktFWV9GMSArIDE4OgorICAgIGNhc2UgVktFWV9GMSArIDE5OgorICAgIGNhc2UgVktFWV9GMSAr
IDIwOgorICAgIGNhc2UgVktFWV9GMSArIDIxOgorICAgIGNhc2UgVktFWV9GMSArIDIyOgorICAg
IGNhc2UgVktFWV9GMSArIDIzOgorICAgICAgICByZXR1cm4gNjcgKyAoa2V5c3ltIC0gVktFWV9G
MSk7CisgICAgY2FzZSBWS0VZX0xTSElGVDoKKyAgICAgICAgcmV0dXJuIDUwOworICAgIGNhc2Ug
VktFWV9SU0hJRlQ6CisgICAgICAgIHJldHVybiA2MjsKKyAgICBjYXNlIFZLRVlfTENPTlRST0w6
CisgICAgICAgIHJldHVybiAzNzsKKyAgICBjYXNlIFZLRVlfUkNPTlRST0w6CisgICAgICAgIHJl
dHVybiAxMDU7CisgICAgY2FzZSBWS0VZX0xNRU5VOgorICAgICAgICByZXR1cm4gNjQ7CisgICAg
Y2FzZSBWS0VZX1JNRU5VOgorICAgICAgICByZXR1cm4gMTA4OworCisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30K
KyNlbmRpZgorCiB9CiAKIEV2ZW50U2VuZGVyOjpFdmVudFNlbmRlcigpCkBAIC0zNDksNyArNDk0
LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVzZXQoKQogdm9pZCBFdmVudFNlbmRlcjo6ZG9EcmFn
RHJvcChjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsIFdlYkRyYWdPcGVyYXRpb25zTWFzayBt
YXNrKQogewogICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgaW5pdE1vdXNlRXZlbnQoV2Vi
SW5wdXRFdmVudDo6TW91c2VEb3duLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVu
dCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBwcmVzc2Vk
QnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2Rl
bGVnYXRlKSk7CiAgICAgV2ViUG9pbnQgY2xpZW50UG9pbnQoZXZlbnQueCwgZXZlbnQueSk7CiAg
ICAgV2ViUG9pbnQgc2NyZWVuUG9pbnQoZXZlbnQuZ2xvYmFsWCwgZXZlbnQuZ2xvYmFsWSk7CiAg
ICAgY3VycmVudERyYWdEYXRhID0gZHJhZ0RhdGE7CkBAIC0zOTIsNyArNTM3LDcgQEAgaW50IEV2
ZW50U2VuZGVyOjpnZXRCdXR0b25OdW1iZXJGcm9tU2luZ2xlQXJnKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzKQogCiB2b2lkIEV2ZW50U2VuZGVyOjp1cGRhdGVDbGlja0NvdW50Rm9y
QnV0dG9uKFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b25UeXBlKQogewotICAgIGlmICgoZ2V0
Q3VycmVudEV2ZW50VGltZVNlYygpIC0gbGFzdENsaWNrVGltZVNlYyA8IG11bHRpcGxlQ2xpY2tU
aW1lU2VjKQorICAgIGlmICgoZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSAtIGxh
c3RDbGlja1RpbWVTZWMgPCBtdWx0aXBsZUNsaWNrVGltZVNlYykKICAgICAgICAgJiYgKCFvdXRz
aWRlTXVsdGlDbGlja1JhZGl1cyhsYXN0TW91c2VQb3MsIGxhc3RDbGlja1BvcykpCiAgICAgICAg
ICYmIChidXR0b25UeXBlID09IGxhc3RCdXR0b25UeXBlKSkKICAgICAgICAgKytjbGlja0NvdW50
OwpAQCAtNDIyLDcgKzU2Nyw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Om1vdXNlRG93bihjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0CiAKICAgICBXZWJN
b3VzZUV2ZW50IGV2ZW50OwogICAgIHByZXNzZWRCdXR0b24gPSBidXR0b25UeXBlOwotICAgIGlu
aXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93biwgYnV0dG9uVHlwZSwgbGFzdE1v
dXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNl
RG93biwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRp
bWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID49IDIgJiYgKGFy
Z3VtZW50c1sxXS5pc09iamVjdCgpIHx8IGFyZ3VtZW50c1sxXS5pc1N0cmluZygpKSkKICAgICAg
ICAgYXBwbHlLZXlNb2RpZmllcnMoJihhcmd1bWVudHNbMV0pLCAmZXZlbnQpOwogICAgIHdlYnZp
ZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CkBAIC00NDgsNyArNTkzLDcgQEAgdm9pZCBF
dmVudFNlbmRlcjo6bW91c2VVcChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3Bw
VmFyaWFudCogcmVzdWx0KQogICAgICAgICByZXBsYXlTYXZlZEV2ZW50cygpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgIGluaXRNb3VzZUV2ZW50
KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGJ1dHRvblR5cGUsIGxhc3RNb3VzZVBvcywgJmV2ZW50
KTsKKyAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VVcCwgYnV0dG9u
VHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxl
Z2F0ZSkpOwogICAgICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAyICYmIChhcmd1bWVudHNb
MV0uaXNPYmplY3QoKSB8fCBhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkpCiAgICAgICAgICAgICBh
cHBseUtleU1vZGlmaWVycygmKGFyZ3VtZW50c1sxXSksICZldmVudCk7CiAgICAgICAgIGRvTW91
c2VVcChldmVudCk7CkBAIC00OTcsNyArNjQyLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6bW91c2VN
b3ZlVG8oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3UK
ICAgICAgICAgbW91c2VFdmVudFF1ZXVlLmFwcGVuZChzYXZlZEV2ZW50KTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICBpbml0TW91c2VFdmVudChX
ZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIG1vdXNlUG9zLCAmZXZlbnQp
OworICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNz
ZWRCdXR0b24sIG1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxl
Z2F0ZSkpOwogICAgICAgICBkb01vdXNlTW92ZShldmVudCk7CiAgICAgfQogfQpAQCAtNTM1LDUw
ICs2ODAsNDMgQEAgdm9pZCBFdmVudFNlbmRlcjo6a2V5RG93bihjb25zdCBDcHBBcmd1bWVudExp
c3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgIGJvb2wgbmVlZHNTaGlmdEtl
eU1vZGlmaWVyID0gZmFsc2U7CiAgICAgaWYgKCJcbiIgPT0gY29kZVN0cikgewogICAgICAgICBn
ZW5lcmF0ZUNoYXIgPSB0cnVlOwotICAgICAgICB0ZXh0ID0gY29kZSA9IHdlYmtpdF9zdXBwb3J0
OjpWS0VZX1JFVFVSTjsKKyAgICAgICAgdGV4dCA9IGNvZGUgPSBWS0VZX1JFVFVSTjsKICAgICB9
IGVsc2UgaWYgKCJyaWdodEFycm93IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0
X3N1cHBvcnQ6OlZLRVlfUklHSFQ7CisgICAgICAgIGNvZGUgPSBWS0VZX1JJR0hUOwogICAgIGVs
c2UgaWYgKCJkb3duQXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3Vw
cG9ydDo6VktFWV9ET1dOOworICAgICAgICBjb2RlID0gVktFWV9ET1dOOwogICAgIGVsc2UgaWYg
KCJsZWZ0QXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6
VktFWV9MRUZUOworICAgICAgICBjb2RlID0gVktFWV9MRUZUOwogICAgIGVsc2UgaWYgKCJ1cEFy
cm93IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfVVA7
CisgICAgICAgIGNvZGUgPSBWS0VZX1VQOwogICAgIGVsc2UgaWYgKCJpbnNlcnQiID09IGNvZGVT
dHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9JTlNFUlQ7CisgICAgICAg
IGNvZGUgPSBWS0VZX0lOU0VSVDsKICAgICBlbHNlIGlmICgiZGVsZXRlIiA9PSBjb2RlU3RyKQot
ICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfREVMRVRFOworICAgICAgICBjb2Rl
ID0gVktFWV9ERUxFVEU7CiAgICAgZWxzZSBpZiAoInBhZ2VVcCIgPT0gY29kZVN0cikKLSAgICAg
ICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX1BSSU9SOworICAgICAgICBjb2RlID0gVktF
WV9QUklPUjsKICAgICBlbHNlIGlmICgicGFnZURvd24iID09IGNvZGVTdHIpCi0gICAgICAgIGNv
ZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ORVhUOworICAgICAgICBjb2RlID0gVktFWV9ORVhU
OwogICAgIGVsc2UgaWYgKCJob21lIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0
X3N1cHBvcnQ6OlZLRVlfSE9NRTsKKyAgICAgICAgY29kZSA9IFZLRVlfSE9NRTsKICAgICBlbHNl
IGlmICgiZW5kIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZL
RVlfRU5EOworICAgICAgICBjb2RlID0gVktFWV9FTkQ7CiAgICAgZWxzZSBpZiAoInByaW50U2Ny
ZWVuIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfU05B
UFNIT1Q7CisgICAgICAgIGNvZGUgPSBWS0VZX1NOQVBTSE9UOwogICAgIGVsc2UgaWYgKCJtZW51
IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1
cHBvcnQ6OlZLRVlfQVBQUy4KLSAgICAgICAgY29kZSA9IDB4NUQ7CisgICAgICAgIGNvZGUgPSBW
S0VZX0FQUFM7CiAgICAgZWxzZSBpZiAoImxlZnRDb250cm9sIiA9PSBjb2RlU3RyKQotICAgICAg
ICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTENPTlRST0wu
Ci0gICAgICAgIGNvZGUgPSAweEEyOworICAgICAgICBjb2RlID0gVktFWV9MQ09OVFJPTDsKICAg
ICBlbHNlIGlmICgicmlnaHRDb250cm9sIiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTog
Q2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUkNPTlRST0wuCi0gICAgICAgIGNv
ZGUgPSAweEEzOworICAgICAgICBjb2RlID0gVktFWV9SQ09OVFJPTDsKICAgICBlbHNlIGlmICgi
bGVmdFNoaWZ0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8g
d2Via2l0X3N1cHBvcnQ6OlZLRVlfTFNISUZULgotICAgICAgICBjb2RlID0gMHhBMDsKKyAgICAg
ICAgY29kZSA9IFZLRVlfTFNISUZUOwogICAgIGVsc2UgaWYgKCJyaWdodFNoaWZ0IiA9PSBjb2Rl
U3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZL
RVlfUlNISUZULgotICAgICAgICBjb2RlID0gMHhBMTsKKyAgICAgICAgY29kZSA9IFZLRVlfUlNI
SUZUOwogICAgIGVsc2UgaWYgKCJsZWZ0QWx0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhN
RTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTE1FTlUuCi0gICAgICAgIGNv
ZGUgPSAweEE0OworICAgICAgICBjb2RlID0gVktFWV9MTUVOVTsKICAgICBlbHNlIGlmICgicmln
aHRBbHQiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJr
aXRfc3VwcG9ydDo6VktFWV9STUVOVS4KLSAgICAgICAgY29kZSA9IDB4QTU7CisgICAgICAgIGNv
ZGUgPSBWS0VZX1JNRU5VOwogICAgIGVsc2UgewogICAgICAgICAvLyBDb21wYXJlIHRoZSBpbnB1
dCBzdHJpbmcgd2l0aCB0aGUgZnVuY3Rpb24ta2V5IG5hbWVzIGRlZmluZWQgYnkgdGhlCiAgICAg
ICAgIC8vIERPTSBzcGVjIChpLmUuICJGMSIsLi4uLCJGMjQiKS4gSWYgdGhlIGlucHV0IHN0cmlu
ZyBpcyBhIGZ1bmN0aW9uLWtleQpAQCAtNTg4LDcgKzcyNiw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6
OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJl
c3VsdCkKICAgICAgICAgICAgIHNucHJpbnRmKGZ1bmN0aW9uQ2hhcnMsIDEwLCAiRiVkIiwgaSk7
CiAgICAgICAgICAgICBzdHJpbmcgZnVuY3Rpb25LZXlOYW1lKGZ1bmN0aW9uQ2hhcnMpOwogICAg
ICAgICAgICAgaWYgKGZ1bmN0aW9uS2V5TmFtZSA9PSBjb2RlU3RyKSB7Ci0gICAgICAgICAgICAg
ICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0YxICsgKGkgLSAxKTsKKyAgICAgICAgICAg
ICAgICBjb2RlID0gVktFWV9GMSArIChpIC0gMSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTYxMyw3ICs3NTEsNyBAQCB2b2lkIEV2ZW50U2Vu
ZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCiAgICAgZXZlbnREb3duLm1vZGlmaWVycyA9IDA7CiAgICAgZXZlbnREb3duLndp
bmRvd3NLZXlDb2RlID0gY29kZTsKICNpZiBPUyhMSU5VWCkgJiYgVVNFKEdUSykKLSAgICBldmVu
dERvd24ubmF0aXZlS2V5Q29kZSA9IHdlYmtpdF9zdXBwb3J0OjpOYXRpdmVLZXlDb2RlRm9yV2lu
ZG93c0tleUNvZGUoY29kZSwgbmVlZHNTaGlmdEtleU1vZGlmaWVyKTsKKyAgICBldmVudERvd24u
bmF0aXZlS2V5Q29kZSA9IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29kZShjb2RlKTsKICNl
bmRpZgogCiAgICAgaWYgKGdlbmVyYXRlQ2hhcikgewpAQCAtNzc1LDcgKzkxMyw3IEBAIHZvaWQg
RXZlbnRTZW5kZXI6OnJlcGxheVNhdmVkRXZlbnRzKCkKICAgICAgICAgc3dpdGNoIChlLnR5cGUp
IHsKICAgICAgICAgY2FzZSBTYXZlZEV2ZW50OjpNb3VzZU1vdmU6IHsKICAgICAgICAgICAgIFdl
Yk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2
ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIGUucG9zLCAmZXZlbnQpOworICAgICAgICAg
ICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VNb3ZlLCBwcmVzc2VkQnV0dG9u
LCBlLnBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAg
ICAgICAgICAgIGRvTW91c2VNb3ZlKGV2ZW50KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CkBAIC03ODQsNyArOTIyLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVwbGF5U2F2ZWRFdmVu
dHMoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU2F2ZWRFdmVudDo6TW91c2VV
cDogewogICAgICAgICAgICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAgICAgICAgICAgIGluaXRN
b3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGUuYnV0dG9uVHlwZSwgbGFzdE1vdXNl
UG9zLCAmZXZlbnQpOworICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6
TW91c2VVcCwgZS5idXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2
ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgICAgICAgICBkb01vdXNlVXAoZXZlbnQpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg0MywxMCArOTgxLDEwIEBAIHZvaWQg
RXZlbnRTZW5kZXI6OmNvbnRleHRDbGljayhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQ3BwVmFyaWFudCogcmVzCiAgICAgLy8gR2VuZXJhdGUgcmlnaHQgbW91c2UgZG93biBhbmQg
dXAuCiAgICAgV2ViTW91c2VFdmVudCBldmVudDsKICAgICBwcmVzc2VkQnV0dG9uID0gV2ViTW91
c2VFdmVudDo6QnV0dG9uUmlnaHQ7Ci0gICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6
TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZl
bnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93biwgV2ViTW91
c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZl
bnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQo
ZXZlbnQpOwogCi0gICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VVcCwgV2Vi
TW91c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50KTsKKyAgICBpbml0
TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25S
aWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxl
Z2F0ZSkpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiAKICAgICBw
cmVzc2VkQnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uTm9uZTsKQEAgLTkwNiw3ICsxMDQ0
LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6YmVnaW5EcmFnV2l0aEZpbGVzKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW4KICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGZpbGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFdlYkRyYWdEYXRhOjpJdGVtIGl0ZW07CiAg
ICAgICAgIGl0ZW0uc3RvcmFnZVR5cGUgPSBXZWJEcmFnRGF0YTo6SXRlbTo6U3RvcmFnZVR5cGVG
aWxlbmFtZTsKLSAgICAgICAgaXRlbS5maWxlbmFtZURhdGEgPSB3ZWJraXRfc3VwcG9ydDo6R2V0
QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoZmlsZXNbaV0pOworICAgICAgICBpdGVtLmZp
bGVuYW1lRGF0YSA9IG1fZGVsZWdhdGUtPmdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRo
KGZpbGVzW2ldKTsKICAgICAgICAgY3VycmVudERyYWdEYXRhLmFkZEl0ZW0oaXRlbSk7CiAgICAg
ICAgIGFic29sdXRlRmlsZW5hbWVzW2ldID0gaXRlbS5maWxlbmFtZURhdGE7CiAgICAgfQpAQCAt
MTAxNCw3ICsxMTUyLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6c2VuZEN1cnJlbnRUb3VjaEV2ZW50
KGNvbnN0IFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSkKICAgICBXZWJUb3VjaEV2ZW50IHRvdWNo
RXZlbnQ7CiAgICAgdG91Y2hFdmVudC50eXBlID0gdHlwZTsKICAgICB0b3VjaEV2ZW50Lm1vZGlm
aWVycyA9IHRvdWNoTW9kaWZpZXJzOwotICAgIHRvdWNoRXZlbnQudGltZVN0YW1wU2Vjb25kcyA9
IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICB0b3VjaEV2ZW50LnRpbWVTdGFtcFNlY29u
ZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpOwogICAgIHRvdWNoRXZlbnQu
dG91Y2hlc0xlbmd0aCA9IHRvdWNoUG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgdG91Y2hQb2ludHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHRvdWNoRXZlbnQudG91
Y2hlc1tpXSA9IHRvdWNoUG9pbnRzW2ldOwpAQCAtMTA1NCw3ICsxMTkyLDcgQEAgdm9pZCBFdmVu
dFNlbmRlcjo6aGFuZGxlTW91c2VXaGVlbChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQ3BwVmFyaWFudCoKICAgICAgICAgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyA9IGFyZ3Vt
ZW50c1szXS50b0Jvb2xlYW4oKTsKIAogICAgIFdlYk1vdXNlV2hlZWxFdmVudCBldmVudDsKLSAg
ICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVdoZWVsLCBwcmVzc2VkQnV0dG9u
LCBsYXN0TW91c2VQb3MsICZldmVudCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVu
dDo6TW91c2VXaGVlbCwgcHJlc3NlZEJ1dHRvbiwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1
cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIGV2ZW50LndoZWVsVGlja3NYID0g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KGhvcml6b250YWwpOwogICAgIGV2ZW50LndoZWVsVGlja3NZID0g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHZlcnRpY2FsKTsKICAgICBldmVudC5kZWx0YVggPSBldmVudC53
aGVlbFRpY2tzWDsKQEAgLTEyMTcsNyArMTM1NSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Omdlc3R1
cmVFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHR5cGUsIGNvbnN0IENwcEFyZ3VtZW50TGlzdCYK
IAogICAgIGV2ZW50Lmdsb2JhbFggPSBldmVudC54OwogICAgIGV2ZW50Lmdsb2JhbFkgPSBldmVu
dC55OwotICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2Vj
KCk7CisgICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMo
bV9kZWxlZ2F0ZSk7CiAgICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50KGV2ZW50KTsKIH0K
IApAQCAtMTIyOSw3ICsxMzY3LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2VzdHVyZUZsaW5nQ2Fu
Y2VsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW4KIAogICAgIFdl
Ykdlc3R1cmVFdmVudCBldmVudDsKICAgICBldmVudC50eXBlID0gV2ViSW5wdXRFdmVudDo6R2Vz
dHVyZUZsaW5nQ2FuY2VsOwotICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50
RXZlbnRUaW1lU2VjKCk7CisgICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRF
dmVudFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAgICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50
KGV2ZW50KTsKIH0KIApAQCAtMTI1Myw3ICsxMzkxLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2Vz
dHVyZUZsaW5nU3RhcnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQKIAogICAgIGV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVggPSBzdGF0aWNfY2FzdDxm
bG9hdD4oYXJndW1lbnRzWzJdLnRvRG91YmxlKCkpOwogICAgIGV2ZW50LmRhdGEuZmxpbmdTdGFy
dC52ZWxvY2l0eVkgPSBzdGF0aWNfY2FzdDxmbG9hdD4oYXJndW1lbnRzWzNdLnRvRG91YmxlKCkp
OwotICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCk7
CisgICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9k
ZWxlZ2F0ZSk7CiAgICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50KGV2ZW50KTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdERlbGVnYXRlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0RGVsZWdhdGUuaAppbmRleCBlNjI2ZWNjZDAxZTIwNjA5NzM3MjJjMDQ3ODNjM2Ix
M2UzMWMwODIzLi4wNDk4ZmNiM2YzZjEzNjQ5NjMzZDUyZTE2YWExOGZhMjM5YTIwNzUyIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
RGVsZWdhdGUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0RGVsZWdhdGUuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHBvc3RUYXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHBvc3REZWxheWVkVGFzayhXZWJUZXN0UnVubmVyOjpXZWJUYXNrKiwgbG9uZyBsb25n
IG1zKSA9IDA7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVk
RmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFi
c29sdXRlRmlsZW5hbWVzKSA9IDA7CisgICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRp
bWVJbk1pbGxpc2Vjb25kKCkgPSAwOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0
QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpID0g
MDsKIH07CiAKICNlbmRpZiAvLyBUZXN0RGVsZWdhdGVfaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcApp
bmRleCBlNmVhZDE1NTE1N2ExYjAzNTFlZjkxNTI0ZmI3NGZhYTg0ZTVlNWJlLi5mMGRhNzk4MzEx
N2VjMzgxMjc2YjVhNzhhNTVlNDhlYWRkZDcxZTIwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcApA
QCAtMzIsNTEgKzMyLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXN0UnVu
bmVyLmgiCiAKLSNpbmNsdWRlICJXZWJBbmltYXRpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAi
V2ViQmluZGluZ3MuaCIKLSNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgotI2luY2x1ZGUg
IldlYkRldmljZU9yaWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrLmgiCi0jaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJXZWJFbGVt
ZW50LmgiCi0jaW5jbHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJXZWJGcmFtZS5o
IgotI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgotI2luY2x1ZGUgIldlYklE
QkZhY3RvcnkuaCIKLSNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKLSNpbmNsdWRlICJXZWJJ
bnRlbnQuaCIKLSNpbmNsdWRlICJXZWJJbnRlbnRSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiV2ViS2l0
LmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCi0jaW5jbHVkZSAiV2Vi
UHJpbnRQYXJhbXMuaCIKLSNpbmNsdWRlICJXZWJTY3JpcHRTb3VyY2UuaCIKLSNpbmNsdWRlICJX
ZWJTZWN1cml0eVBvbGljeS5oIgotI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCi0jaW5jbHVkZSAi
V2ViU3Vycm91bmRpbmdUZXh0LmgiCi0jaW5jbHVkZSAiV2ViVmlldy5oIgotI2luY2x1ZGUgIldl
YldvcmtlckluZm8uaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJEYXRhLmgiCi0jaW5jbHVkZSAi
cGxhdGZvcm0vV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0v
V2ViU2l6ZS5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotI2luY2x1ZGUgInY4L2lu
Y2x1ZGUvdjguaCIKLSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgot
I2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxjbG9jYWxlPgotI2luY2x1ZGUgPGNzdGRs
aWI+Ci0jaW5jbHVkZSA8bGltaXRzPgotI2luY2x1ZGUgPHNzdHJlYW0+Ci0jaW5jbHVkZSA8d3Rm
L093bkFycmF5UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBP
UyhMSU5VWCkgfHwgT1MoQU5EUk9JRCkKLSNpbmNsdWRlICJsaW51eC9XZWJGb250UmVuZGVyaW5n
LmgiCi0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQogVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcigp
CiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKaW5kZXggMzllMTlkNTczNjVkMDNjNjY4NDFmODdmMjZh
Y2Y0NTQxZWUwN2Q3YS4uNTAzMjcxYjVkOWI1Y2VlMDk5OGJjYTg1MmMzY2EwOTM3NTBhNjVlMiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAtMzMsMjEgKzMzLDYgQEAKICNkZWZpbmUgVGVzdFJ1bm5l
cl9oCiAKICNpbmNsdWRlICJDcHBCb3VuZENsYXNzLmgiCi0jaW5jbHVkZSAiV2ViRGVsaXZlcmVk
SW50ZW50Q2xpZW50LmgiCi0jaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlvbi5oIgotI2luY2x1ZGUg
InBsYXRmb3JtL1dlYkFycmF5QnVmZmVyVmlldy5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0
cmluZy5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFz
cyBXZWJHZW9sb2NhdGlvbkNsaWVudE1vY2s7Ci19Ci0KLW5hbWVzcGFjZSB3ZWJraXRfc3VwcG9y
dCB7Ci1jbGFzcyBTY29wZWRUZW1wRGlyZWN0b3J5OwotfQogCiBjbGFzcyBUZXN0UnVubmVyIDog
cHVibGljIENwcEJvdW5kQ2xhc3MgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVy
ZmFjZXMuY3BwCmluZGV4IGY3ZGIxNzE5OGU2N2Y4YThkODMyMGRlNjVlYTRiNDA5YjYxOTBiM2Yu
LjlhODY5NTNjM2NiODUzNzQwZWFhNzhiYWZmYTE4OGM0YjcyNzI4ZjggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJbnRlcmZh
Y2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAKQEAgLTY3LDYgKzY3LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBwb3N0VGFzayhXZWJUYXNrKik7CiAgICAgdmlydHVhbCB2b2lkIHBvc3REZWxh
eWVkVGFzayhXZWJUYXNrKiwgbG9uZyBsb25nIG1zKTsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBy
ZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgYWJz
b2x1dGVGaWxlbmFtZXMpOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5N
aWxsaXNlY29uZCgpOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVX
ZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpOwogCiBwcml2YXRl
OgogICAgIFRlc3RJbnRlcmZhY2VzIG1faW50ZXJmYWNlczsKQEAgLTE0Nyw2ICsxNDksMTYgQEAg
V2ViU3RyaW5nIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6cmVnaXN0ZXJJc29sYXRlZEZp
bGVTeXN0ZW0oY29uc3QgV2ViVmVjdG8KICAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+cmVnaXN0ZXJJ
c29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1dGVGaWxlbmFtZXMpOwogfQogCitsb25nIGxvbmcgV2Vi
VGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKQor
eworICAgIHJldHVybiBtX2RlbGVnYXRlLT5nZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsK
K30KKworV2ViS2l0OjpXZWJTdHJpbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRB
YnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKK3sK
KyAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgo
cGF0aCk7Cit9CisKIFdlYlRlc3RJbnRlcmZhY2VzOjpXZWJUZXN0SW50ZXJmYWNlcygpCiB7CiAg
ICAgbV9pbnRlcm5hbCA9IG5ldyBJbnRlcm5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCBkMzc2MjJkYjk5NTg4Zjc5MTViMjQ0ZWY5Y2I3
ZDA1ZTIxMmZjNzMxLi44N2ViMjUwOGJjNDQzNjVmNjMxNmIyN2Y1MjA5YWY4NDkxMWQ3OTM5IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0x
NTAwLDYgKzE1MDAsMTYgQEAgV2ViU3RyaW5nIFdlYlZpZXdIb3N0OjpyZWdpc3Rlcklzb2xhdGVk
RmlsZVN5c3RlbShjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgYWIKICAgICByZXR1cm4gd2Vi
a2l0X3N1cHBvcnQ6OlJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGFic29sdXRlRmlsZW5hbWVz
KTsKIH0KIAorbG9uZyBsb25nIFdlYlZpZXdIb3N0OjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNv
bmQoKQoreworICAgIHJldHVybiB3ZWJraXRfc3VwcG9ydDo6R2V0Q3VycmVudFRpbWVJbk1pbGxp
c2Vjb25kKCk7Cit9CisKK1dlYktpdDo6V2ViU3RyaW5nIFdlYlZpZXdIb3N0OjpnZXRBYnNvbHV0
ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKK3sKKyAgICBy
ZXR1cm4gd2Via2l0X3N1cHBvcnQ6OkdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKHBh
dGgpOworfQorCiAvLyBQdWJsaWMgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdlYlZpZXdIb3N0OjpXZWJWaWV3
SG9zdChUZXN0U2hlbGwqIHNoZWxsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmgKaW5kZXggOWFmNDdlMDc4Zjc2YWYwN2M0NDAwODc2ZmE5N2FiOWE4NTRkOTUy
Ny4uODYwMDcxOTRiMDQzNTY3MmMwMTQ5OTlkNTg2MDUzZWNmZjVmOGI0ZiAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xMzksNiArMTM5LDggQEAg
Y2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMg
V2ViS2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soV2ViVGVz
dFJ1bm5lcjo6V2ViVGFzayopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXll
ZFRhc2soV2ViVGVzdFJ1bm5lcjo6V2ViVGFzayosIGxvbmcgbG9uZyBtcykgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShj
b25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5h
bWVzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBnZXRDdXJyZW50VGltZUluTWls
bGlzZWNvbmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIGdldEFi
c29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKSBPVkVS
UklERTsKIAogICAgIC8vIE5hdmlnYXRpb25Ib3N0CiAgICAgdmlydHVhbCBib29sIG5hdmlnYXRl
KGNvbnN0IFRlc3ROYXZpZ2F0aW9uRW50cnkmLCBib29sIHJlbG9hZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170710</attachid>
            <date>2012-10-25 12:27:38 -0700</date>
            <delta_ts>2012-10-25 12:35:28 -0700</delta_ts>
            <desc>Patch for landing, for realz</desc>
            <filename>bug-100344-20121025212611.patch</filename>
            <type>text/plain</type>
            <size>29271</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uNTQ3YjQxYjlmZDNhMjViZTZiN2NjZTRmNGQxM2FhZmUyN2VmZTAwYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDEyLTEwLTI1ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHJlbWFpbmluZyB1c2FnZXMgb2Ygd2Via2l0X3N1
cHBvcnQgZnJvbSB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBtb3N0IGltcG9ydGFudCBwYXJ0IGlzIHRvIG5vdCBy
ZWx5IG9uIGNhbGxpbmcgb3V0IHRvIGdkay9YMTEgdG8KKyAgICAgICAgdHJhbnNsYXRlIGtleWNv
ZGVzIHRvIGhhcmR3YXJlIGtleWNvZGVzLCBhcyB0aGlzIGlzIG5vdCBwb3NzaWJsZSBpbnNpZGUK
KyAgICAgICAgdGhlIHNhbmRib3guCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAod2Via2l0X3N1
cHBvcnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlRlc3REZWxlZ2F0ZS5oOgorICAgICAgICAoV2ViVGVzdERlbGVnYXRlKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50Lmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRT
ZW5kZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpFdmVudFNlbmRlcjo6ZG9EcmFnRHJvcCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpF
dmVudFNlbmRlcjo6dXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbik6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpFdmVudFNlbmRlcjo6bW91c2VEb3duKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OkV2ZW50U2VuZGVyOjptb3VzZVVwKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2Vu
ZGVyOjptb3VzZU1vdmVUbyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6
a2V5RG93bik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6cmVwbGF5U2F2
ZWRFdmVudHMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmNvbnRleHRD
bGljayk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6YmVnaW5EcmFnV2l0
aEZpbGVzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpzZW5kQ3VycmVu
dFRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmhhbmRs
ZU1vdXNlV2hlZWwpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omdlc3R1
cmVFdmVudCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Z2VzdHVyZUZs
aW5nQ2FuY2VsKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpnZXN0dXJl
RmxpbmdTdGFydCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvVGVzdERlbGVnYXRlLmg6CisgICAgICAgIChUZXN0RGVsZWdhdGUpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5u
ZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJUZXN0SW50ZXJmYWNlcy5jcHA6CisgICAgICAgIChXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJu
YWwpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6Omdl
dEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9zdDo6Z2V0Q3Vy
cmVudFRpbWVJbk1pbGxpc2Vjb25kKToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpnZXRBYnNvbHV0
ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKwogMjAxMi0xMC0yNCAg
RGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBucnd0OiB0cnVu
Y2F0ZSBtZXRlciBsaW5lcyBwcm9wZXJseSBvbiB3aW5kb3dzCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgKaW5kZXggZWM0Nzc4ZmQ1YzQ2ZjhmMzI4NzU4
YTE1N2EzMjgyMTQ1NGI1YjIyMS4uY2NkZmM0Mzk0ZGY2ZGRjOWUwNGJmMTUzZjU5NTcwN2MxYjc2
ZjBiMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
aApAQCAtNDMsNyArNDMsMjMgQEAKICNkZWZpbmUgRFJUVGVzdFJ1bm5lcl9oCiAKICNpbmNsdWRl
ICJUZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgiCisjaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50
ZW50Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVGFzay5oIgorI2luY2x1ZGUgIldlYlRleHREaXJl
Y3Rpb24uaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJBcnJheUJ1ZmZlclZpZXcuaCIKKyNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkwuaCIK
KyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrOworfQorCituYW1l
c3BhY2Ugd2Via2l0X3N1cHBvcnQgeworY2xhc3MgU2NvcGVkVGVtcERpcmVjdG9yeTsKK30KKwog
CiBjbGFzcyBUZXN0U2hlbGw7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKaW5k
ZXggNmUyMTg4MTA3YmE5NzQ1YmU2ZDk1MzM4OTJlNGE3NGY3ZjNlNjAwNS4uYWI0N2Q0ZjlkY2Vh
NmQ3ZWM5MThiZGQxZTJlZjRkZWYyYzU4MmUwZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERl
bGVnYXRlLmgKQEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0
RGVsYXllZFRhc2soV2ViVGFzayosIGxvbmcgbG9uZyBtcykgPSAwOwogCiAgICAgdmlydHVhbCBX
ZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6
OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSA9IDA7Cisg
ICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgPSAwOwor
ICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRG
OFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlh
bnQuaAppbmRleCA2MGNjNjI3MWVjZmFkOWVkNjhiZGU0Mjg4NTE1Mzg0MjZkNmI4NDAzLi40N2Zk
NDY2YWZmMzJkNzljZWNiNDcwNjZhNzNiN2E1ZWM1Y2MwMGI5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50LmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5o
CkBAIC00Myw3ICs0Myw2IEBACiAjZGVmaW5lIENwcFZhcmlhbnRfaAogCiAjaW5jbHVkZSAiV2Vi
QmluZGluZ3MuaCIKLSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgog
I2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50
U2VuZGVyLmNwcAppbmRleCAyZjRhMDU1NGM1YzM2ZDNlZmI2OTBmNDdlOGMyZjg5M2NiZmFmOTNl
Li4xOGI5YzExNzRlZWFmN2I0YzhjNTk1YmE2YmI2YTc0OTFkM2RmOWM4IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZl
bnRTZW5kZXIuY3BwCkBAIC00NiwxMyArNDYsMTMgQEAKICNpbmNsdWRlICJUZXN0RGVsZWdhdGUu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJEcmFnT3Bl
cmF0aW9uLmgiCisjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKICNpbmNsdWRlICJXZWJUb3Vj
aFBvaW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRy
YWdEYXRhLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViUG9pbnQuaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJTdHJpbmcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJWZWN0b3IuaCIKLSNpbmNs
dWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIApAQCAtNzMsNiArNzMsMzEgQEAg
V2ViTW91c2VFdmVudDo6QnV0dG9uIEV2ZW50U2VuZGVyOjpsYXN0QnV0dG9uVHlwZSA9IFdlYk1v
dXNlRXZlbnQ6OkJ1dHRvbk5vbmU7CiAKIG5hbWVzcGFjZSB7CiAKKy8vIFRoZSBrZXljb2RlcyBt
YXRjaCB0aGUgdmFsdWVzIG9mIHRoZSB2aXJ0dWFsIGtleWNvZGVzIGZvdW5kIGhlcmUgaHR0cDov
L21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9kZDM3NTcz
MSh2PXZzLjg1KS5hc3B4CitlbnVtIHsKKyAgICBWS0VZX1JFVFVSTiAgID0gMHgwRCwKKyAgICBW
S0VZX1BSSU9SICAgID0gMHgyMSwKKyAgICBWS0VZX05FWFQgICAgID0gMHgyMiwKKyAgICBWS0VZ
X0VORCAgICAgID0gMHgyMywKKyAgICBWS0VZX0hPTUUgICAgID0gMHgyNCwKKyAgICBWS0VZX0xF
RlQgICAgID0gMHgyNSwKKyAgICBWS0VZX1VQICAgICAgID0gMHgyNiwKKyAgICBWS0VZX1JJR0hU
ICAgID0gMHgyNywKKyAgICBWS0VZX0RPV04gICAgID0gMHgyOCwKKyAgICBWS0VZX1NOQVBTSE9U
ID0gMHgyQywKKyAgICBWS0VZX0lOU0VSVCAgID0gMHgyRCwKKyAgICBWS0VZX0RFTEVURSAgID0g
MHgyRSwKKyAgICBWS0VZX0FQUFMgICAgID0gMHg1RCwKKyAgICBWS0VZX0YxICAgICAgID0gMHg3
MCwKKyAgICBWS0VZX0xTSElGVCAgID0gMHhBMCwKKyAgICBWS0VZX1JTSElGVCAgID0gMHhBMSwK
KyAgICBWS0VZX0xDT05UUk9MID0gMHhBMiwKKyAgICBWS0VZX1JDT05UUk9MID0gMHhBMywKKyAg
ICBWS0VZX0xNRU5VICAgID0gMHhBNCwKKyAgICBWS0VZX1JNRU5VICAgID0gMHhBNSwKK307CisK
Kwogc3RydWN0IFNhdmVkRXZlbnQgewogICAgIGVudW0gU2F2ZWRFdmVudFR5cGUgewogICAgICAg
ICBVbnNwZWNpZmllZCwKQEAgLTEyNSw5ICsxNTAsOSBAQCBpbmxpbmUgYm9vbCBvdXRzaWRlTXVs
dGlDbGlja1JhZGl1cyhjb25zdCBXZWJQb2ludCYgYSwgY29uc3QgV2ViUG9pbnQmIGIpCiAvLyBk
ZXBlbmRlbnQgKGUuZy4sIGRyYWdnaW5nIGhhcyBhIHRpbWVvdXQgdnMgc2VsZWN0aW9uKS4KIHVp
bnQzMiB0aW1lT2Zmc2V0TXMgPSAwOwogCi1kb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYygp
Citkb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQog
ewotICAgIHJldHVybiAod2Via2l0X3N1cHBvcnQ6OkdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29u
ZCgpICsgdGltZU9mZnNldE1zKSAvIDEwMDAuMDsKKyAgICByZXR1cm4gKGRlbGVnYXRlLT5nZXRD
dXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSArIHRpbWVPZmZzZXRNcykgLyAxMDAwLjA7CiB9CiAK
IHZvaWQgYWR2YW5jZUV2ZW50VGltZShpbnQzMl90IGRlbHRhTXMpCkBAIC0xMzUsNyArMTYwLDcg
QEAgdm9pZCBhZHZhbmNlRXZlbnRUaW1lKGludDMyX3QgZGVsdGFNcykKICAgICB0aW1lT2Zmc2V0
TXMgKz0gZGVsdGFNczsKIH0KIAotdm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpU
eXBlIHQsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJN
b3VzZUV2ZW50KiBlKQordm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHQs
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJNb3VzZUV2
ZW50KiBlLCBkb3VibGUgdHMpCiB7CiAgICAgZS0+dHlwZSA9IHQ7CiAgICAgZS0+YnV0dG9uID0g
YjsKQEAgLTE0NCw3ICsxNjksNyBAQCB2b2lkIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6
OlR5cGUgdCwgV2ViTW91c2VFdmVudDo6QnV0dG9uIGIsIGNvbnN0IFdlYlBvaQogICAgIGUtPnkg
PSBwb3MueTsKICAgICBlLT5nbG9iYWxYID0gcG9zLng7CiAgICAgZS0+Z2xvYmFsWSA9IHBvcy55
OwotICAgIGUtPnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCk7Cisg
ICAgZS0+dGltZVN0YW1wU2Vjb25kcyA9IHRzOwogICAgIGUtPmNsaWNrQ291bnQgPSBjbGlja0Nv
dW50OwogfQogCkBAIC0yMTQsMTYgKzIzOSwxNiBAQCBib29sIGdldEVkaXRDb21tYW5kKGNvbnN0
IFdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBzdHJpbmcqIG5hbWUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIHN3aXRjaCAoZXZlbnQud2luZG93c0tleUNvZGUpIHsKLSAgICBjYXNlIHdl
YmtpdF9zdXBwb3J0OjpWS0VZX0xFRlQ6CisgICAgY2FzZSBWS0VZX0xFRlQ6CiAgICAgICAgICpu
YW1lID0gIk1vdmVUb0JlZ2lubmluZ09mTGluZSI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
d2Via2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ6CisgICAgY2FzZSBWS0VZX1JJR0hUOgogICAgICAg
ICAqbmFtZSA9ICJNb3ZlVG9FbmRPZkxpbmUiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIHdl
YmtpdF9zdXBwb3J0OjpWS0VZX1VQOgorICAgIGNhc2UgVktFWV9VUDoKICAgICAgICAgKm5hbWUg
PSAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
d2Via2l0X3N1cHBvcnQ6OlZLRVlfRE9XTjoKKyAgICBjYXNlIFZLRVlfRE9XTjoKICAgICAgICAg
Km5hbWUgPSAiTW92ZVRvRW5kT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CkBAIC0yNDgsNiArMjczLDIxNCBAQCBlbnVtIEtleUxvY2F0aW9uQ29kZSB7CiAgICAgRE9N
S2V5TG9jYXRpb25OdW1wYWQgICAgICAgID0gMHgwMwogfTsKIAorI2lmIE9TKExJTlVYKSAmJiBV
U0UoR1RLKQoraW50IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29kZShpbnQga2V5c3ltKQor
eworICAgIC8vIFNlZSAvdXNyL3NoYXJlL1gxMS94a2Iva2V5Y29kZXMvKgorICAgIHN0YXRpYyBj
b25zdCBpbnQgYXNjaWlUb0tleUNvZGVbXSA9IHsKKyAgICAgICAgIDAsCisgICAgICAgICAwLAor
ICAgICAgICAgMCwKKyAgICAgICAgIDAsCisgICAgICAgICAwLAorICAgICAgICAgMCwKKyAgICAg
ICAgIDAsCisgICAgICAgICAwLAorICAgICAgICAyMiwKKyAgICAgICAgMjMsCisgICAgICAgICAw
LAorICAgICAgICAgMCwKKyAgICAgICAgIDAsCisgICAgICAgIDM2LAorICAgICAgICAgMCwKKyAg
ICAgICAgIDAsCisgICAgICAgIDUwLAorICAgICAgICAzNywKKyAgICAgICAgNjQsCisgICAgICAg
MTI3LAorICAgICAgICA2NiwKKyAgICAgICAgIDAsCisgICAgICAgICAwLAorICAgICAgICAgMCwK
KyAgICAgICAgIDAsCisgICAgICAgMTMxLAorICAgICAgICAgMCwKKyAgICAgICAgIDksCisgICAg
ICAgMTAwLAorICAgICAgIDEwMiwKKyAgICAgICAgIDAsCisgICAgICAgICAwLAorICAgICAgICA2
NSwgLy8gJyAnCisgICAgICAgMTEyLCAvLyAnIScKKyAgICAgICAxMTcsIC8vICciJworICAgICAg
IDExNSwgLy8gJyMnCisgICAgICAgMTEwLCAvLyAnJCcKKyAgICAgICAxMTMsIC8vICclJworICAg
ICAgIDExMSwgLy8gJyYnCisgICAgICAgMTE0LCAvLyAnJycKKyAgICAgICAxMTYsIC8vICcoJwor
ICAgICAgICAgMCwgLy8gJyknCisgICAgICAgMTA3LCAvLyAnKicKKyAgICAgICAgIDAsIC8vICcr
JworICAgICAgICAgMCwgLy8gJywnCisgICAgICAgMTE4LCAvLyAnLScKKyAgICAgICAxMTksIC8v
ICcuJworICAgICAgIDE0NiwgLy8gJy8nCisgICAgICAgIDE5LCAvLyAnMCcKKyAgICAgICAgMTAs
IC8vICcxJworICAgICAgICAxMSwgLy8gJzInCisgICAgICAgIDEyLCAvLyAnMycKKyAgICAgICAg
MTMsIC8vICc0JworICAgICAgICAxNCwgLy8gJzUnCisgICAgICAgIDE1LCAvLyAnNicKKyAgICAg
ICAgMTYsIC8vICc3JworICAgICAgICAxNywgLy8gJzgnCisgICAgICAgIDE4LCAvLyAnOScKKyAg
ICAgICAgIDAsIC8vICc6JworICAgICAgICAgMCwgLy8gJzsnCisgICAgICAgICAwLCAvLyAnPCcK
KyAgICAgICAgIDAsIC8vICc9JworICAgICAgICAgMCwgLy8gJz4nCisgICAgICAgICAwLCAvLyAn
PycKKyAgICAgICAgIDAsIC8vICdAJworICAgICAgICAzOCwgLy8gJ0EnCisgICAgICAgIDU2LCAv
LyAnQicKKyAgICAgICAgNTQsIC8vICdDJworICAgICAgICA0MCwgLy8gJ0QnCisgICAgICAgIDI2
LCAvLyAnRScKKyAgICAgICAgNDEsIC8vICdGJworICAgICAgICA0MiwgLy8gJ0cnCisgICAgICAg
IDQzLCAvLyAnSCcKKyAgICAgICAgMzEsIC8vICdJJworICAgICAgICA0NCwgLy8gJ0onCisgICAg
ICAgIDQ1LCAvLyAnSycKKyAgICAgICAgNDYsIC8vICdMJworICAgICAgICA1OCwgLy8gJ00nCisg
ICAgICAgIDU3LCAvLyAnTicKKyAgICAgICAgMzIsIC8vICdPJworICAgICAgICAzMywgLy8gJ1An
CisgICAgICAgIDI0LCAvLyAnUScKKyAgICAgICAgMjcsIC8vICdSJworICAgICAgICAzOSwgLy8g
J1MnCisgICAgICAgIDI4LCAvLyAnVCcKKyAgICAgICAgMzAsIC8vICdVJworICAgICAgICA1NSwg
Ly8gJ1YnCisgICAgICAgIDI1LCAvLyAnVycKKyAgICAgICAgNTMsIC8vICdYJworICAgICAgICAy
OSwgLy8gJ1knCisgICAgICAgIDUyLCAvLyAnWicKKyAgICAgICAxMzMsIC8vICdbJworICAgICAg
IDEzNCwgLy8gJ1wnCisgICAgICAgMTM1LCAvLyAnXScKKyAgICAgICAgIDAsIC8vICdeJworICAg
ICAgICAgMCwgLy8gJ18nCisgICAgICAgIDkwLCAvLyAnYCcKKyAgICAgICAgMzgsIC8vICdhJwor
ICAgICAgICA1NiwgLy8gJ2InCisgICAgICAgIDU0LCAvLyAnYycKKyAgICAgICAgNDAsIC8vICdk
JworICAgICAgICAyNiwgLy8gJ2UnCisgICAgICAgIDQxLCAvLyAnZicKKyAgICAgICAgNDIsIC8v
ICdnJworICAgICAgICA0MywgLy8gJ2gnCisgICAgICAgIDMxLCAvLyAnaScKKyAgICAgICAgNDQs
IC8vICdqJworICAgICAgICA0NSwgLy8gJ2snCisgICAgICAgIDQ2LCAvLyAnbCcKKyAgICAgICAg
NTgsIC8vICdtJworICAgICAgICA1NywgLy8gJ24nCisgICAgICAgIDMyLCAvLyAnbycKKyAgICAg
ICAgMzMsIC8vICdwJworICAgICAgICAyNCwgLy8gJ3EnCisgICAgICAgIDI3LCAvLyAncicKKyAg
ICAgICAgMzksIC8vICdzJworICAgICAgICAyOCwgLy8gJ3QnCisgICAgICAgIDMwLCAvLyAndScK
KyAgICAgICAgNTUsIC8vICd2JworICAgICAgICAyNSwgLy8gJ3cnCisgICAgICAgIDUzLCAvLyAn
eCcKKyAgICAgICAgMjksIC8vICd5JworICAgICAgICA1MiwgLy8gJ3onCisgICAgICAgIDk2LCAv
LyAneycKKyAgICAgICAgIDAsIC8vICd8JworICAgICAgICAgMCwgLy8gJ30nCisgICAgICAgICAw
LCAvLyAnficKKyAgICAgICAgIDAsIC8vIERFTAorICAgIH07CisKKyAgICBpZiAoa2V5c3ltIDw9
IDEyNykKKyAgICAgICAgcmV0dXJuIGFzY2lpVG9LZXlDb2RlW2tleXN5bV07CisKKyAgICBzd2l0
Y2ggKGtleXN5bSkgeworICAgIGNhc2UgVktFWV9QUklPUjoKKyAgICAgICAgcmV0dXJuIDExMjsK
KyAgICBjYXNlIFZLRVlfTkVYVDoKKyAgICAgICAgcmV0dXJuIDExNzsKKyAgICBjYXNlIFZLRVlf
RU5EOgorICAgICAgICByZXR1cm4gMTE1OworICAgIGNhc2UgVktFWV9IT01FOgorICAgICAgICBy
ZXR1cm4gMTEwOworICAgIGNhc2UgVktFWV9MRUZUOgorICAgICAgICByZXR1cm4gMTEzOworICAg
IGNhc2UgVktFWV9VUDoKKyAgICAgICAgcmV0dXJuIDExMTsKKyAgICBjYXNlIFZLRVlfUklHSFQ6
CisgICAgICAgIHJldHVybiAxMTQ7CisgICAgY2FzZSBWS0VZX0RPV046CisgICAgICAgIHJldHVy
biAxMTY7CisgICAgY2FzZSBWS0VZX1NOQVBTSE9UOgorICAgICAgICByZXR1cm4gMTA3OworICAg
IGNhc2UgVktFWV9JTlNFUlQ6CisgICAgICAgIHJldHVybiAxMTg7CisgICAgY2FzZSBWS0VZX0RF
TEVURToKKyAgICAgICAgcmV0dXJuIDExOTsKKyAgICBjYXNlIFZLRVlfQVBQUzoKKyAgICAgICAg
cmV0dXJuIDEzNTsKKyAgICBjYXNlIFZLRVlfRjE6CisgICAgY2FzZSBWS0VZX0YxICsgMToKKyAg
ICBjYXNlIFZLRVlfRjEgKyAyOgorICAgIGNhc2UgVktFWV9GMSArIDM6CisgICAgY2FzZSBWS0VZ
X0YxICsgNDoKKyAgICBjYXNlIFZLRVlfRjEgKyA1OgorICAgIGNhc2UgVktFWV9GMSArIDY6Cisg
ICAgY2FzZSBWS0VZX0YxICsgNzoKKyAgICBjYXNlIFZLRVlfRjEgKyA4OgorICAgIGNhc2UgVktF
WV9GMSArIDk6CisgICAgY2FzZSBWS0VZX0YxICsgMTA6CisgICAgY2FzZSBWS0VZX0YxICsgMTE6
CisgICAgY2FzZSBWS0VZX0YxICsgMTI6CisgICAgY2FzZSBWS0VZX0YxICsgMTM6CisgICAgY2Fz
ZSBWS0VZX0YxICsgMTQ6CisgICAgY2FzZSBWS0VZX0YxICsgMTU6CisgICAgY2FzZSBWS0VZX0Yx
ICsgMTY6CisgICAgY2FzZSBWS0VZX0YxICsgMTc6CisgICAgY2FzZSBWS0VZX0YxICsgMTg6Cisg
ICAgY2FzZSBWS0VZX0YxICsgMTk6CisgICAgY2FzZSBWS0VZX0YxICsgMjA6CisgICAgY2FzZSBW
S0VZX0YxICsgMjE6CisgICAgY2FzZSBWS0VZX0YxICsgMjI6CisgICAgY2FzZSBWS0VZX0YxICsg
MjM6CisgICAgICAgIHJldHVybiA2NyArIChrZXlzeW0gLSBWS0VZX0YxKTsKKyAgICBjYXNlIFZL
RVlfTFNISUZUOgorICAgICAgICByZXR1cm4gNTA7CisgICAgY2FzZSBWS0VZX1JTSElGVDoKKyAg
ICAgICAgcmV0dXJuIDYyOworICAgIGNhc2UgVktFWV9MQ09OVFJPTDoKKyAgICAgICAgcmV0dXJu
IDM3OworICAgIGNhc2UgVktFWV9SQ09OVFJPTDoKKyAgICAgICAgcmV0dXJuIDEwNTsKKyAgICBj
YXNlIFZLRVlfTE1FTlU6CisgICAgICAgIHJldHVybiA2NDsKKyAgICBjYXNlIFZLRVlfUk1FTlU6
CisgICAgICAgIHJldHVybiAxMDg7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorI2VuZGlmCisKIH0KIAog
RXZlbnRTZW5kZXI6OkV2ZW50U2VuZGVyKCkKQEAgLTM0OSw3ICs1ODIsNyBAQCB2b2lkIEV2ZW50
U2VuZGVyOjpyZXNldCgpCiB2b2lkIEV2ZW50U2VuZGVyOjpkb0RyYWdEcm9wKGNvbnN0IFdlYkRy
YWdEYXRhJiBkcmFnRGF0YSwgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2spCiB7CiAgICAgV2Vi
TW91c2VFdmVudCBldmVudDsKLSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3Vz
ZURvd24sIHByZXNzZWRCdXR0b24sIGxhc3RNb3VzZVBvcywgJmV2ZW50KTsKKyAgICBpbml0TW91
c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZURvd24sIHByZXNzZWRCdXR0b24sIGxhc3RNb3Vz
ZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICBX
ZWJQb2ludCBjbGllbnRQb2ludChldmVudC54LCBldmVudC55KTsKICAgICBXZWJQb2ludCBzY3Jl
ZW5Qb2ludChldmVudC5nbG9iYWxYLCBldmVudC5nbG9iYWxZKTsKICAgICBjdXJyZW50RHJhZ0Rh
dGEgPSBkcmFnRGF0YTsKQEAgLTM5Miw3ICs2MjUsNyBAQCBpbnQgRXZlbnRTZW5kZXI6OmdldEJ1
dHRvbk51bWJlckZyb21TaW5nbGVBcmcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMp
CiAKIHZvaWQgRXZlbnRTZW5kZXI6OnVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b24oV2ViTW91c2VF
dmVudDo6QnV0dG9uIGJ1dHRvblR5cGUpCiB7Ci0gICAgaWYgKChnZXRDdXJyZW50RXZlbnRUaW1l
U2VjKCkgLSBsYXN0Q2xpY2tUaW1lU2VjIDwgbXVsdGlwbGVDbGlja1RpbWVTZWMpCisgICAgaWYg
KChnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpIC0gbGFzdENsaWNrVGltZVNlYyA8
IG11bHRpcGxlQ2xpY2tUaW1lU2VjKQogICAgICAgICAmJiAoIW91dHNpZGVNdWx0aUNsaWNrUmFk
aXVzKGxhc3RNb3VzZVBvcywgbGFzdENsaWNrUG9zKSkKICAgICAgICAgJiYgKGJ1dHRvblR5cGUg
PT0gbGFzdEJ1dHRvblR5cGUpKQogICAgICAgICArK2NsaWNrQ291bnQ7CkBAIC00MjIsNyArNjU1
LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6bW91c2VEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYg
YXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQKIAogICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7
CiAgICAgcHJlc3NlZEJ1dHRvbiA9IGJ1dHRvblR5cGU7Ci0gICAgaW5pdE1vdXNlRXZlbnQoV2Vi
SW5wdXRFdmVudDo6TW91c2VEb3duLCBidXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVudCk7
CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBidXR0b25UeXBl
LCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRl
KSk7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPj0gMiAmJiAoYXJndW1lbnRzWzFdLmlzT2Jq
ZWN0KCkgfHwgYXJndW1lbnRzWzFdLmlzU3RyaW5nKCkpKQogICAgICAgICBhcHBseUtleU1vZGlm
aWVycygmKGFyZ3VtZW50c1sxXSksICZldmVudCk7CiAgICAgd2VidmlldygpLT5oYW5kbGVJbnB1
dEV2ZW50KGV2ZW50KTsKQEAgLTQ0OCw3ICs2ODEsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjptb3Vz
ZVVwKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQp
CiAgICAgICAgIHJlcGxheVNhdmVkRXZlbnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgV2Vi
TW91c2VFdmVudCBldmVudDsKLSAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6
TW91c2VVcCwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgICAgICBpbml0
TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBidXR0b25UeXBlLCBsYXN0TW91c2VQ
b3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgICAg
IGlmIChhcmd1bWVudHMuc2l6ZSgpID49IDIgJiYgKGFyZ3VtZW50c1sxXS5pc09iamVjdCgpIHx8
IGFyZ3VtZW50c1sxXS5pc1N0cmluZygpKSkKICAgICAgICAgICAgIGFwcGx5S2V5TW9kaWZpZXJz
KCYoYXJndW1lbnRzWzFdKSwgJmV2ZW50KTsKICAgICAgICAgZG9Nb3VzZVVwKGV2ZW50KTsKQEAg
LTQ5Nyw3ICs3MzAsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjptb3VzZU1vdmVUbyhjb25zdCBDcHBB
cmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdQogICAgICAgICBtb3VzZUV2
ZW50UXVldWUuYXBwZW5kKHNhdmVkRXZlbnQpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFdlYk1v
dXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1v
dXNlTW92ZSwgcHJlc3NlZEJ1dHRvbiwgbW91c2VQb3MsICZldmVudCk7CisgICAgICAgIGluaXRN
b3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlTW92ZSwgcHJlc3NlZEJ1dHRvbiwgbW91c2VQ
b3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgICAg
IGRvTW91c2VNb3ZlKGV2ZW50KTsKICAgICB9CiB9CkBAIC01MzUsNTAgKzc2OCw0MyBAQCB2b2lk
IEV2ZW50U2VuZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBD
cHBWYXJpYW50KiByZXN1bHQpCiAgICAgYm9vbCBuZWVkc1NoaWZ0S2V5TW9kaWZpZXIgPSBmYWxz
ZTsKICAgICBpZiAoIlxuIiA9PSBjb2RlU3RyKSB7CiAgICAgICAgIGdlbmVyYXRlQ2hhciA9IHRy
dWU7Ci0gICAgICAgIHRleHQgPSBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUkVUVVJOOwor
ICAgICAgICB0ZXh0ID0gY29kZSA9IFZLRVlfUkVUVVJOOwogICAgIH0gZWxzZSBpZiAoInJpZ2h0
QXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9S
SUdIVDsKKyAgICAgICAgY29kZSA9IFZLRVlfUklHSFQ7CiAgICAgZWxzZSBpZiAoImRvd25BcnJv
dyIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0RPV047
CisgICAgICAgIGNvZGUgPSBWS0VZX0RPV047CiAgICAgZWxzZSBpZiAoImxlZnRBcnJvdyIgPT0g
Y29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0xFRlQ7CisgICAg
ICAgIGNvZGUgPSBWS0VZX0xFRlQ7CiAgICAgZWxzZSBpZiAoInVwQXJyb3ciID09IGNvZGVTdHIp
Ci0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9VUDsKKyAgICAgICAgY29kZSA9
IFZLRVlfVVA7CiAgICAgZWxzZSBpZiAoImluc2VydCIgPT0gY29kZVN0cikKLSAgICAgICAgY29k
ZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0lOU0VSVDsKKyAgICAgICAgY29kZSA9IFZLRVlfSU5T
RVJUOwogICAgIGVsc2UgaWYgKCJkZWxldGUiID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3
ZWJraXRfc3VwcG9ydDo6VktFWV9ERUxFVEU7CisgICAgICAgIGNvZGUgPSBWS0VZX0RFTEVURTsK
ICAgICBlbHNlIGlmICgicGFnZVVwIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0
X3N1cHBvcnQ6OlZLRVlfUFJJT1I7CisgICAgICAgIGNvZGUgPSBWS0VZX1BSSU9SOwogICAgIGVs
c2UgaWYgKCJwYWdlRG93biIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBw
b3J0OjpWS0VZX05FWFQ7CisgICAgICAgIGNvZGUgPSBWS0VZX05FWFQ7CiAgICAgZWxzZSBpZiAo
ImhvbWUiID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9I
T01FOworICAgICAgICBjb2RlID0gVktFWV9IT01FOwogICAgIGVsc2UgaWYgKCJlbmQiID09IGNv
ZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9FTkQ7CisgICAgICAg
IGNvZGUgPSBWS0VZX0VORDsKICAgICBlbHNlIGlmICgicHJpbnRTY3JlZW4iID09IGNvZGVTdHIp
Ci0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9TTkFQU0hPVDsKKyAgICAgICAg
Y29kZSA9IFZLRVlfU05BUFNIT1Q7CiAgICAgZWxzZSBpZiAoIm1lbnUiID09IGNvZGVTdHIpCi0g
ICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9BUFBT
LgotICAgICAgICBjb2RlID0gMHg1RDsKKyAgICAgICAgY29kZSA9IFZLRVlfQVBQUzsKICAgICBl
bHNlIGlmICgibGVmdENvbnRyb2wiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFu
Z2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MQ09OVFJPTC4KLSAgICAgICAgY29kZSA9
IDB4QTI7CisgICAgICAgIGNvZGUgPSBWS0VZX0xDT05UUk9MOwogICAgIGVsc2UgaWYgKCJyaWdo
dENvbnRyb2wiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3
ZWJraXRfc3VwcG9ydDo6VktFWV9SQ09OVFJPTC4KLSAgICAgICAgY29kZSA9IDB4QTM7CisgICAg
ICAgIGNvZGUgPSBWS0VZX1JDT05UUk9MOwogICAgIGVsc2UgaWYgKCJsZWZ0U2hpZnQiID09IGNv
ZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6
VktFWV9MU0hJRlQuCi0gICAgICAgIGNvZGUgPSAweEEwOworICAgICAgICBjb2RlID0gVktFWV9M
U0hJRlQ7CiAgICAgZWxzZSBpZiAoInJpZ2h0U2hpZnQiID09IGNvZGVTdHIpCi0gICAgICAgIC8v
IEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9SU0hJRlQuCi0gICAg
ICAgIGNvZGUgPSAweEExOworICAgICAgICBjb2RlID0gVktFWV9SU0hJRlQ7CiAgICAgZWxzZSBp
ZiAoImxlZnRBbHQiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0
byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MTUVOVS4KLSAgICAgICAgY29kZSA9IDB4QTQ7CisgICAg
ICAgIGNvZGUgPSBWS0VZX0xNRU5VOwogICAgIGVsc2UgaWYgKCJyaWdodEFsdCIgPT0gY29kZVN0
cikKLSAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZ
X1JNRU5VLgotICAgICAgICBjb2RlID0gMHhBNTsKKyAgICAgICAgY29kZSA9IFZLRVlfUk1FTlU7
CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIENvbXBhcmUgdGhlIGlucHV0IHN0cmluZyB3aXRoIHRo
ZSBmdW5jdGlvbi1rZXkgbmFtZXMgZGVmaW5lZCBieSB0aGUKICAgICAgICAgLy8gRE9NIHNwZWMg
KGkuZS4gIkYxIiwuLi4sIkYyNCIpLiBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIGEgZnVuY3Rpb24t
a2V5CkBAIC01ODgsNyArODE0LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6a2V5RG93bihjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgICAgICAg
ICAgc25wcmludGYoZnVuY3Rpb25DaGFycywgMTAsICJGJWQiLCBpKTsKICAgICAgICAgICAgIHN0
cmluZyBmdW5jdGlvbktleU5hbWUoZnVuY3Rpb25DaGFycyk7CiAgICAgICAgICAgICBpZiAoZnVu
Y3Rpb25LZXlOYW1lID09IGNvZGVTdHIpIHsKLSAgICAgICAgICAgICAgICBjb2RlID0gd2Via2l0
X3N1cHBvcnQ6OlZLRVlfRjEgKyAoaSAtIDEpOworICAgICAgICAgICAgICAgIGNvZGUgPSBWS0VZ
X0YxICsgKGkgLSAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpAQCAtNjEzLDcgKzgzOSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OmtleURvd24oY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKICAgICBl
dmVudERvd24ubW9kaWZpZXJzID0gMDsKICAgICBldmVudERvd24ud2luZG93c0tleUNvZGUgPSBj
b2RlOwogI2lmIE9TKExJTlVYKSAmJiBVU0UoR1RLKQotICAgIGV2ZW50RG93bi5uYXRpdmVLZXlD
b2RlID0gd2Via2l0X3N1cHBvcnQ6Ok5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29kZShjb2Rl
LCBuZWVkc1NoaWZ0S2V5TW9kaWZpZXIpOworICAgIGV2ZW50RG93bi5uYXRpdmVLZXlDb2RlID0g
TmF0aXZlS2V5Q29kZUZvcldpbmRvd3NLZXlDb2RlKGNvZGUpOwogI2VuZGlmCiAKICAgICBpZiAo
Z2VuZXJhdGVDaGFyKSB7CkBAIC03NzUsNyArMTAwMSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnJl
cGxheVNhdmVkRXZlbnRzKCkKICAgICAgICAgc3dpdGNoIChlLnR5cGUpIHsKICAgICAgICAgY2Fz
ZSBTYXZlZEV2ZW50OjpNb3VzZU1vdmU6IHsKICAgICAgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZl
bnQ7Ci0gICAgICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUs
IHByZXNzZWRCdXR0b24sIGUucG9zLCAmZXZlbnQpOworICAgICAgICAgICAgaW5pdE1vdXNlRXZl
bnQoV2ViSW5wdXRFdmVudDo6TW91c2VNb3ZlLCBwcmVzc2VkQnV0dG9uLCBlLnBvcywgJmV2ZW50
LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICAgICAgICAgIGRvTW91
c2VNb3ZlKGV2ZW50KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC03ODQsNyAr
MTAxMCw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnJlcGxheVNhdmVkRXZlbnRzKCkKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFNhdmVkRXZlbnQ6Ok1vdXNlVXA6IHsKICAgICAgICAg
ICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgICAgICBpbml0TW91c2VFdmVudChXZWJJ
bnB1dEV2ZW50OjpNb3VzZVVwLCBlLmJ1dHRvblR5cGUsIGxhc3RNb3VzZVBvcywgJmV2ZW50KTsK
KyAgICAgICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGUuYnV0
dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9k
ZWxlZ2F0ZSkpOwogICAgICAgICAgICAgZG9Nb3VzZVVwKGV2ZW50KTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CkBAIC04NDMsMTAgKzEwNjksMTAgQEAgdm9pZCBFdmVudFNlbmRlcjo6
Y29udGV4dENsaWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXMKICAgICAvLyBHZW5lcmF0ZSByaWdodCBtb3VzZSBkb3duIGFuZCB1cC4KICAgICBXZWJN
b3VzZUV2ZW50IGV2ZW50OwogICAgIHByZXNzZWRCdXR0b24gPSBXZWJNb3VzZUV2ZW50OjpCdXR0
b25SaWdodDsKLSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZURvd24sIFdl
Yk1vdXNlRXZlbnQ6OkJ1dHRvblJpZ2h0LCBsYXN0TW91c2VQb3MsICZldmVudCk7CisgICAgaW5p
dE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpCdXR0
b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9k
ZWxlZ2F0ZSkpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiAKLSAg
ICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBXZWJNb3VzZUV2ZW50OjpC
dXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdl
YklucHV0RXZlbnQ6Ok1vdXNlVXAsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvblJpZ2h0LCBsYXN0TW91
c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAg
d2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50KGV2ZW50KTsKIAogICAgIHByZXNzZWRCdXR0b24g
PSBXZWJNb3VzZUV2ZW50OjpCdXR0b25Ob25lOwpAQCAtOTA2LDcgKzExMzIsNyBAQCB2b2lkIEV2
ZW50U2VuZGVyOjpiZWdpbkRyYWdXaXRoRmlsZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmlsZXMuc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgV2ViRHJhZ0RhdGE6Okl0ZW0gaXRlbTsKICAgICAgICAgaXRlbS5z
dG9yYWdlVHlwZSA9IFdlYkRyYWdEYXRhOjpJdGVtOjpTdG9yYWdlVHlwZUZpbGVuYW1lOwotICAg
ICAgICBpdGVtLmZpbGVuYW1lRGF0YSA9IHdlYmtpdF9zdXBwb3J0OjpHZXRBYnNvbHV0ZVdlYlN0
cmluZ0Zyb21VVEY4UGF0aChmaWxlc1tpXSk7CisgICAgICAgIGl0ZW0uZmlsZW5hbWVEYXRhID0g
bV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoZmlsZXNbaV0pOwog
ICAgICAgICBjdXJyZW50RHJhZ0RhdGEuYWRkSXRlbShpdGVtKTsKICAgICAgICAgYWJzb2x1dGVG
aWxlbmFtZXNbaV0gPSBpdGVtLmZpbGVuYW1lRGF0YTsKICAgICB9CkBAIC0xMDE0LDcgKzEyNDAs
NyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpzZW5kQ3VycmVudFRvdWNoRXZlbnQoY29uc3QgV2ViSW5w
dXRFdmVudDo6VHlwZSB0eXBlKQogICAgIFdlYlRvdWNoRXZlbnQgdG91Y2hFdmVudDsKICAgICB0
b3VjaEV2ZW50LnR5cGUgPSB0eXBlOwogICAgIHRvdWNoRXZlbnQubW9kaWZpZXJzID0gdG91Y2hN
b2RpZmllcnM7Ci0gICAgdG91Y2hFdmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2
ZW50VGltZVNlYygpOworICAgIHRvdWNoRXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJl
bnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAgICAgdG91Y2hFdmVudC50b3VjaGVzTGVuZ3Ro
ID0gdG91Y2hQb2ludHMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b3Vj
aFBvaW50cy5zaXplKCk7ICsraSkKICAgICAgICAgdG91Y2hFdmVudC50b3VjaGVzW2ldID0gdG91
Y2hQb2ludHNbaV07CkBAIC0xMDU0LDcgKzEyODAsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpoYW5k
bGVNb3VzZVdoZWVsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KgogICAgICAgICBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzID0gYXJndW1lbnRzWzNdLnRvQm9v
bGVhbigpOwogCiAgICAgV2ViTW91c2VXaGVlbEV2ZW50IGV2ZW50OwotICAgIGluaXRNb3VzZUV2
ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWwsIHByZXNzZWRCdXR0b24sIGxhc3RNb3VzZVBv
cywgJmV2ZW50KTsKKyAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVdoZWVs
LCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGlt
ZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgZXZlbnQud2hlZWxUaWNrc1ggPSBzdGF0aWNfY2FzdDxm
bG9hdD4oaG9yaXpvbnRhbCk7CiAgICAgZXZlbnQud2hlZWxUaWNrc1kgPSBzdGF0aWNfY2FzdDxm
bG9hdD4odmVydGljYWwpOwogICAgIGV2ZW50LmRlbHRhWCA9IGV2ZW50LndoZWVsVGlja3NYOwpA
QCAtMTIxNyw3ICsxNDQzLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2VzdHVyZUV2ZW50KFdlYklu
cHV0RXZlbnQ6OlR5cGUgdHlwZSwgY29uc3QgQ3BwQXJndW1lbnRMaXN0JgogCiAgICAgZXZlbnQu
Z2xvYmFsWCA9IGV2ZW50Lng7CiAgICAgZXZlbnQuZ2xvYmFsWSA9IGV2ZW50Lnk7Ci0gICAgZXZl
bnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICBldmVu
dC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsK
ICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOwogfQogCkBAIC0xMjI5LDcg
KzE0NTUsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlRmxpbmdDYW5jZWwoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbgogCiAgICAgV2ViR2VzdHVyZUV2ZW50
IGV2ZW50OwogICAgIGV2ZW50LnR5cGUgPSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5j
ZWw7Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMo
KTsKKyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYyht
X2RlbGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOwogfQog
CkBAIC0xMjUzLDcgKzE0NzksNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlRmxpbmdTdGFy
dChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudAogCiAgICAgZXZl
bnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WCA9IHN0YXRpY19jYXN0PGZsb2F0Pihhcmd1bWVu
dHNbMl0udG9Eb3VibGUoKSk7CiAgICAgZXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WSA9
IHN0YXRpY19jYXN0PGZsb2F0Pihhcmd1bWVudHNbM10udG9Eb3VibGUoKSk7Ci0gICAgZXZlbnQu
dGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICBldmVudC50
aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsKICAg
ICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQoZXZlbnQpOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxl
Z2F0ZS5oCmluZGV4IGU2MjZlY2NkMDFlMjA2MDk3MzcyMmMwNDc4M2MzYjEzZTMxYzA4MjMuLjA0
OThmY2IzZjNmMTM2NDk2MzNkNTJlMTZhYTE4ZmEyMzlhMjA3NTIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxl
Z2F0ZS5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRh
c2soV2ViVGVzdFJ1bm5lcjo6V2ViVGFzayopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdERl
bGF5ZWRUYXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqLCBsb25nIGxvbmcgbXMpID0gMDsKICAg
ICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNv
bnN0IFdlYktpdDo6V2ViVmVjdG9yPFdlYktpdDo6V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFt
ZXMpID0gMDsKKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBnZXRDdXJyZW50VGltZUluTWlsbGlzZWNv
bmQoKSA9IDA7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdlYlN0
cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkgPSAwOwogfTsKIAogI2Vu
ZGlmIC8vIFRlc3REZWxlZ2F0ZV9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGU2ZWFkMTU1
MTU3YTFiMDM1MWVmOTE1MjRmYjc0ZmFhODRlNWU1YmUuLmYwZGE3OTgzMTE3ZWMzODEyNzZiNWE3
OGE1NWU0OGVhZGRkNzFlMjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC0zMiw1MSArMzIs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXIuaCIKIAotI2lu
Y2x1ZGUgIldlYkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJXZWJCaW5kaW5ncy5o
IgotI2luY2x1ZGUgIldlYkNvbnNvbGVNZXNzYWdlLmgiCi0jaW5jbHVkZSAiV2ViRGV2aWNlT3Jp
ZW50YXRpb24uaCIKLSNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCIK
LSNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgotI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKLSNpbmNs
dWRlICJXZWJGaW5kT3B0aW9ucy5oIgotI2luY2x1ZGUgIldlYkZyYW1lLmgiCi0jaW5jbHVkZSAi
V2ViR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCi0jaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5oIgot
I2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgotI2luY2x1ZGUgIldlYkludGVudC5oIgotI2lu
Y2x1ZGUgIldlYkludGVudFJlcXVlc3QuaCIKLSNpbmNsdWRlICJXZWJLaXQuaCIKLSNpbmNsdWRl
ICJXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKLSNpbmNsdWRlICJXZWJQcmludFBhcmFtcy5o
IgotI2luY2x1ZGUgIldlYlNjcmlwdFNvdXJjZS5oIgotI2luY2x1ZGUgIldlYlNlY3VyaXR5UG9s
aWN5LmgiCi0jaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJXZWJTdXJyb3VuZGlu
Z1RleHQuaCIKLSNpbmNsdWRlICJXZWJWaWV3LmgiCi0jaW5jbHVkZSAiV2ViV29ya2VySW5mby5o
IgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRhdGEuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTaXplLmgiCi0j
aW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0jaW5jbHVkZSAidjgvaW5jbHVkZS92OC5oIgot
I2luY2x1ZGUgIndlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0LmgiCi0jaW5jbHVkZSA8YWxn
b3JpdGhtPgotI2luY2x1ZGUgPGNsb2NhbGU+Ci0jaW5jbHVkZSA8Y3N0ZGxpYj4KLSNpbmNsdWRl
IDxsaW1pdHM+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIE9TKExJTlVYKSB8fCBP
UyhBTkRST0lEKQotI2luY2x1ZGUgImxpbnV4L1dlYkZvbnRSZW5kZXJpbmcuaCIKLSNlbmRpZgot
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci11c2lu
ZyBuYW1lc3BhY2Ugc3RkOwotCiBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKIHsKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RS
dW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RSdW5uZXIuaAppbmRleCAzOWUxOWQ1NzM2NWQwM2M2Njg0MWY4N2YyNmFjZjQ1NDFlZTA3ZDdh
Li41MDMyNzFiNWQ5YjVjZWUwOTk4YmNhODUyYzNjYTA5Mzc1MGE2NWUyIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5oCkBAIC0zMywyMSArMzMsNiBAQAogI2RlZmluZSBUZXN0UnVubmVyX2gKIAogI2luY2x1
ZGUgIkNwcEJvdW5kQ2xhc3MuaCIKLSNpbmNsdWRlICJXZWJEZWxpdmVyZWRJbnRlbnRDbGllbnQu
aCIKLSNpbmNsdWRlICJXZWJUZXh0RGlyZWN0aW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2Vi
QXJyYXlCdWZmZXJWaWV3LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0jaW5j
bHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVk
ZSA8d3RmL093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYkdlb2xvY2F0
aW9uQ2xpZW50TW9jazsKLX0KLQotbmFtZXNwYWNlIHdlYmtpdF9zdXBwb3J0IHsKLWNsYXNzIFNj
b3BlZFRlbXBEaXJlY3Rvcnk7Ci19CiAKIGNsYXNzIFRlc3RSdW5uZXIgOiBwdWJsaWMgQ3BwQm91
bmRDbGFzcyB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAKaW5k
ZXggZjdkYjE3MTk4ZTY3ZjhhOGQ4MzIwZGU2NWVhNGI0MDliNjE5MGIzZi4uOWE4Njk1M2MzY2I4
NTM3NDBlYWE3OGJhZmZhMTg4YzRiNzI3MjhmOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJbnRl
cmZhY2VzLmNwcApAQCAtNjcsNiArNjcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBv
c3RUYXNrKFdlYlRhc2sqKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdlYlRh
c2sqLCBsb25nIGxvbmcgbXMpOwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0
ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1l
cyk7CisgICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCk7
CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21V
VEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCk7CiAKIHByaXZhdGU6CiAgICAgVGVzdElu
dGVyZmFjZXMgbV9pbnRlcmZhY2VzOwpAQCAtMTQ3LDYgKzE0OSwxNiBAQCBXZWJTdHJpbmcgV2Vi
VGVzdEludGVyZmFjZXM6OkludGVybmFsOjpyZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25z
dCBXZWJWZWN0bwogICAgIHJldHVybiBtX2RlbGVnYXRlLT5yZWdpc3Rlcklzb2xhdGVkRmlsZVN5
c3RlbShhYnNvbHV0ZUZpbGVuYW1lcyk7CiB9CiAKK2xvbmcgbG9uZyBXZWJUZXN0SW50ZXJmYWNl
czo6SW50ZXJuYWw6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpCit7CisgICAgcmV0dXJu
IG1fZGVsZWdhdGUtPmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpOworfQorCitXZWJLaXQ6
OldlYlN0cmluZyBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OmdldEFic29sdXRlV2ViU3Ry
aW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKQoreworICAgIHJldHVybiBt
X2RlbGVnYXRlLT5nZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChwYXRoKTsKK30KKwog
V2ViVGVzdEludGVyZmFjZXM6OldlYlRlc3RJbnRlcmZhY2VzKCkKIHsKICAgICBtX2ludGVybmFs
ID0gbmV3IEludGVybmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuY3BwCmluZGV4IGQzNzYyMmRiOTk1ODhmNzkxNWIyNDRlZjljYjdkMDVlMjEyZmM3MzEu
Ljg3ZWIyNTA4YmM0NDM2NWY2MzE2YjI3ZjUyMDlhZjg0OTExZDc5MzkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE1MDAsNiArMTUwMCwx
NiBAQCBXZWJTdHJpbmcgV2ViVmlld0hvc3Q6OnJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNv
bnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYgogICAgIHJldHVybiB3ZWJraXRfc3VwcG9ydDo6
UmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1dGVGaWxlbmFtZXMpOwogfQogCitsb25n
IGxvbmcgV2ViVmlld0hvc3Q6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpCit7CisgICAg
cmV0dXJuIHdlYmtpdF9zdXBwb3J0OjpHZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsKK30K
KworV2ViS2l0OjpXZWJTdHJpbmcgV2ViVmlld0hvc3Q6OmdldEFic29sdXRlV2ViU3RyaW5nRnJv
bVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKQoreworICAgIHJldHVybiB3ZWJraXRf
c3VwcG9ydDo6R2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgocGF0aCk7Cit9CisKIC8v
IFB1YmxpYyBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogV2ViVmlld0hvc3Q6OldlYlZpZXdIb3N0KFRlc3RTaGVs
bCogc2hlbGwpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApp
bmRleCA5YWY0N2UwNzhmNzZhZjA3YzQ0MDA4NzZmYTk3YWI5YTg1NGQ5NTI3Li44NjAwNzE5NGIw
NDM1NjcyYzAxNDk5OWQ1ODYwNTNlY2ZmNWY4YjRmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTEzOSw2ICsxMzksOCBAQCBjbGFzcyBXZWJWaWV3
SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYkZy
YW1lQ2xpZW50LAogICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhXZWJUZXN0UnVubmVyOjpXZWJU
YXNrKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBvc3REZWxheWVkVGFzayhXZWJUZXN0
UnVubmVyOjpXZWJUYXNrKiwgbG9uZyBsb25nIG1zKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFdl
YktpdDo6V2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYktpdDo6
V2ViVmVjdG9yPFdlYktpdDo6V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFtZXMpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJp
bmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpIE9WRVJSSURFOwogCiAgICAg
Ly8gTmF2aWdhdGlvbkhvc3QKICAgICB2aXJ0dWFsIGJvb2wgbmF2aWdhdGUoY29uc3QgVGVzdE5h
dmlnYXRpb25FbnRyeSYsIGJvb2wgcmVsb2FkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170712</attachid>
            <date>2012-10-25 12:35:31 -0700</date>
            <delta_ts>2012-10-25 15:00:25 -0700</delta_ts>
            <desc>Patch for landing, for realz</desc>
            <filename>bug-100344-20121025213404.patch</filename>
            <type>text/plain</type>
            <size>29350</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uNTQ3YjQxYjlmZDNhMjViZTZiN2NjZTRmNGQxM2FhZmUyN2VmZTAwYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDEyLTEwLTI1ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHJlbWFpbmluZyB1c2FnZXMgb2Ygd2Via2l0X3N1
cHBvcnQgZnJvbSB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBtb3N0IGltcG9ydGFudCBwYXJ0IGlzIHRvIG5vdCBy
ZWx5IG9uIGNhbGxpbmcgb3V0IHRvIGdkay9YMTEgdG8KKyAgICAgICAgdHJhbnNsYXRlIGtleWNv
ZGVzIHRvIGhhcmR3YXJlIGtleWNvZGVzLCBhcyB0aGlzIGlzIG5vdCBwb3NzaWJsZSBpbnNpZGUK
KyAgICAgICAgdGhlIHNhbmRib3guCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAod2Via2l0X3N1
cHBvcnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlRlc3REZWxlZ2F0ZS5oOgorICAgICAgICAoV2ViVGVzdERlbGVnYXRlKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50Lmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRT
ZW5kZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpFdmVudFNlbmRlcjo6ZG9EcmFnRHJvcCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpF
dmVudFNlbmRlcjo6dXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbik6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpFdmVudFNlbmRlcjo6bW91c2VEb3duKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OkV2ZW50U2VuZGVyOjptb3VzZVVwKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2Vu
ZGVyOjptb3VzZU1vdmVUbyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6
a2V5RG93bik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6cmVwbGF5U2F2
ZWRFdmVudHMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmNvbnRleHRD
bGljayk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6YmVnaW5EcmFnV2l0
aEZpbGVzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpzZW5kQ3VycmVu
dFRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OmhhbmRs
ZU1vdXNlV2hlZWwpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omdlc3R1
cmVFdmVudCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Z2VzdHVyZUZs
aW5nQ2FuY2VsKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpnZXN0dXJl
RmxpbmdTdGFydCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvVGVzdERlbGVnYXRlLmg6CisgICAgICAgIChUZXN0RGVsZWdhdGUpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5u
ZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJUZXN0SW50ZXJmYWNlcy5jcHA6CisgICAgICAgIChXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJu
YWwpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6Omdl
dEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9zdDo6Z2V0Q3Vy
cmVudFRpbWVJbk1pbGxpc2Vjb25kKToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpnZXRBYnNvbHV0
ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKwogMjAxMi0xMC0yNCAg
RGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBucnd0OiB0cnVu
Y2F0ZSBtZXRlciBsaW5lcyBwcm9wZXJseSBvbiB3aW5kb3dzCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgKaW5kZXggZWM0Nzc4ZmQ1YzQ2ZjhmMzI4NzU4
YTE1N2EzMjgyMTQ1NGI1YjIyMS4uY2NkZmM0Mzk0ZGY2ZGRjOWUwNGJmMTUzZjU5NTcwN2MxYjc2
ZjBiMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
aApAQCAtNDMsNyArNDMsMjMgQEAKICNkZWZpbmUgRFJUVGVzdFJ1bm5lcl9oCiAKICNpbmNsdWRl
ICJUZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgiCisjaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50
ZW50Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVGFzay5oIgorI2luY2x1ZGUgIldlYlRleHREaXJl
Y3Rpb24uaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJBcnJheUJ1ZmZlclZpZXcuaCIKKyNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkwuaCIK
KyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworY2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrOworfQorCituYW1l
c3BhY2Ugd2Via2l0X3N1cHBvcnQgeworY2xhc3MgU2NvcGVkVGVtcERpcmVjdG9yeTsKK30KKwog
CiBjbGFzcyBUZXN0U2hlbGw7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKaW5k
ZXggNmUyMTg4MTA3YmE5NzQ1YmU2ZDk1MzM4OTJlNGE3NGY3ZjNlNjAwNS4uYWI0N2Q0ZjlkY2Vh
NmQ3ZWM5MThiZGQxZTJlZjRkZWYyYzU4MmUwZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERl
bGVnYXRlLmgKQEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0
RGVsYXllZFRhc2soV2ViVGFzayosIGxvbmcgbG9uZyBtcykgPSAwOwogCiAgICAgdmlydHVhbCBX
ZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6
OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSA9IDA7Cisg
ICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgPSAwOwor
ICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRG
OFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlh
bnQuaAppbmRleCA2MGNjNjI3MWVjZmFkOWVkNjhiZGU0Mjg4NTE1Mzg0MjZkNmI4NDAzLi40N2Zk
NDY2YWZmMzJkNzljZWNiNDcwNjZhNzNiN2E1ZWM1Y2MwMGI5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50LmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5o
CkBAIC00Myw3ICs0Myw2IEBACiAjZGVmaW5lIENwcFZhcmlhbnRfaAogCiAjaW5jbHVkZSAiV2Vi
QmluZGluZ3MuaCIKLSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgog
I2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50
U2VuZGVyLmNwcAppbmRleCAyZjRhMDU1NGM1YzM2ZDNlZmI2OTBmNDdlOGMyZjg5M2NiZmFmOTNl
Li40M2Y5YjhiNDAyYzI1ODIzN2MyYjU1ZDg0NzlkYWU5MDdmNDc3ZjQ5IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZl
bnRTZW5kZXIuY3BwCkBAIC00NiwxMyArNDYsMTMgQEAKICNpbmNsdWRlICJUZXN0RGVsZWdhdGUu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJEcmFnT3Bl
cmF0aW9uLmgiCisjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKICNpbmNsdWRlICJXZWJUb3Vj
aFBvaW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRy
YWdEYXRhLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViUG9pbnQuaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJTdHJpbmcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJWZWN0b3IuaCIKLSNpbmNs
dWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIApAQCAtNzMsNiArNzMsMzEgQEAg
V2ViTW91c2VFdmVudDo6QnV0dG9uIEV2ZW50U2VuZGVyOjpsYXN0QnV0dG9uVHlwZSA9IFdlYk1v
dXNlRXZlbnQ6OkJ1dHRvbk5vbmU7CiAKIG5hbWVzcGFjZSB7CiAKKy8vIFRoZSBrZXljb2RlcyBt
YXRjaCB0aGUgdmFsdWVzIG9mIHRoZSB2aXJ0dWFsIGtleWNvZGVzIGZvdW5kIGhlcmUgaHR0cDov
L21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9kZDM3NTcz
MSh2PXZzLjg1KS5hc3B4CitlbnVtIHsKKyAgICBWS0VZX1JFVFVSTiAgID0gMHgwRCwKKyAgICBW
S0VZX1BSSU9SICAgID0gMHgyMSwKKyAgICBWS0VZX05FWFQgICAgID0gMHgyMiwKKyAgICBWS0VZ
X0VORCAgICAgID0gMHgyMywKKyAgICBWS0VZX0hPTUUgICAgID0gMHgyNCwKKyAgICBWS0VZX0xF
RlQgICAgID0gMHgyNSwKKyAgICBWS0VZX1VQICAgICAgID0gMHgyNiwKKyAgICBWS0VZX1JJR0hU
ICAgID0gMHgyNywKKyAgICBWS0VZX0RPV04gICAgID0gMHgyOCwKKyAgICBWS0VZX1NOQVBTSE9U
ID0gMHgyQywKKyAgICBWS0VZX0lOU0VSVCAgID0gMHgyRCwKKyAgICBWS0VZX0RFTEVURSAgID0g
MHgyRSwKKyAgICBWS0VZX0FQUFMgICAgID0gMHg1RCwKKyAgICBWS0VZX0YxICAgICAgID0gMHg3
MCwKKyAgICBWS0VZX0xTSElGVCAgID0gMHhBMCwKKyAgICBWS0VZX1JTSElGVCAgID0gMHhBMSwK
KyAgICBWS0VZX0xDT05UUk9MID0gMHhBMiwKKyAgICBWS0VZX1JDT05UUk9MID0gMHhBMywKKyAg
ICBWS0VZX0xNRU5VICAgID0gMHhBNCwKKyAgICBWS0VZX1JNRU5VICAgID0gMHhBNSwKK307CisK
Kwogc3RydWN0IFNhdmVkRXZlbnQgewogICAgIGVudW0gU2F2ZWRFdmVudFR5cGUgewogICAgICAg
ICBVbnNwZWNpZmllZCwKQEAgLTEyNSw5ICsxNTAsOSBAQCBpbmxpbmUgYm9vbCBvdXRzaWRlTXVs
dGlDbGlja1JhZGl1cyhjb25zdCBXZWJQb2ludCYgYSwgY29uc3QgV2ViUG9pbnQmIGIpCiAvLyBk
ZXBlbmRlbnQgKGUuZy4sIGRyYWdnaW5nIGhhcyBhIHRpbWVvdXQgdnMgc2VsZWN0aW9uKS4KIHVp
bnQzMiB0aW1lT2Zmc2V0TXMgPSAwOwogCi1kb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYygp
Citkb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQog
ewotICAgIHJldHVybiAod2Via2l0X3N1cHBvcnQ6OkdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29u
ZCgpICsgdGltZU9mZnNldE1zKSAvIDEwMDAuMDsKKyAgICByZXR1cm4gKGRlbGVnYXRlLT5nZXRD
dXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSArIHRpbWVPZmZzZXRNcykgLyAxMDAwLjA7CiB9CiAK
IHZvaWQgYWR2YW5jZUV2ZW50VGltZShpbnQzMl90IGRlbHRhTXMpCkBAIC0xMzUsNyArMTYwLDcg
QEAgdm9pZCBhZHZhbmNlRXZlbnRUaW1lKGludDMyX3QgZGVsdGFNcykKICAgICB0aW1lT2Zmc2V0
TXMgKz0gZGVsdGFNczsKIH0KIAotdm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpU
eXBlIHQsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJN
b3VzZUV2ZW50KiBlKQordm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHQs
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJNb3VzZUV2
ZW50KiBlLCBkb3VibGUgdHMpCiB7CiAgICAgZS0+dHlwZSA9IHQ7CiAgICAgZS0+YnV0dG9uID0g
YjsKQEAgLTE0NCw3ICsxNjksNyBAQCB2b2lkIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6
OlR5cGUgdCwgV2ViTW91c2VFdmVudDo6QnV0dG9uIGIsIGNvbnN0IFdlYlBvaQogICAgIGUtPnkg
PSBwb3MueTsKICAgICBlLT5nbG9iYWxYID0gcG9zLng7CiAgICAgZS0+Z2xvYmFsWSA9IHBvcy55
OwotICAgIGUtPnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCk7Cisg
ICAgZS0+dGltZVN0YW1wU2Vjb25kcyA9IHRzOwogICAgIGUtPmNsaWNrQ291bnQgPSBjbGlja0Nv
dW50OwogfQogCkBAIC0yMTQsMTYgKzIzOSwxNiBAQCBib29sIGdldEVkaXRDb21tYW5kKGNvbnN0
IFdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBzdHJpbmcqIG5hbWUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIHN3aXRjaCAoZXZlbnQud2luZG93c0tleUNvZGUpIHsKLSAgICBjYXNlIHdl
YmtpdF9zdXBwb3J0OjpWS0VZX0xFRlQ6CisgICAgY2FzZSBWS0VZX0xFRlQ6CiAgICAgICAgICpu
YW1lID0gIk1vdmVUb0JlZ2lubmluZ09mTGluZSI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
d2Via2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ6CisgICAgY2FzZSBWS0VZX1JJR0hUOgogICAgICAg
ICAqbmFtZSA9ICJNb3ZlVG9FbmRPZkxpbmUiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIHdl
YmtpdF9zdXBwb3J0OjpWS0VZX1VQOgorICAgIGNhc2UgVktFWV9VUDoKICAgICAgICAgKm5hbWUg
PSAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
d2Via2l0X3N1cHBvcnQ6OlZLRVlfRE9XTjoKKyAgICBjYXNlIFZLRVlfRE9XTjoKICAgICAgICAg
Km5hbWUgPSAiTW92ZVRvRW5kT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1
bHQ6CkBAIC0yNDgsNiArMjczLDIxNCBAQCBlbnVtIEtleUxvY2F0aW9uQ29kZSB7CiAgICAgRE9N
S2V5TG9jYXRpb25OdW1wYWQgICAgICAgID0gMHgwMwogfTsKIAorI2lmIE9TKExJTlVYKSAmJiBV
U0UoR1RLKQoraW50IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29kZShpbnQga2V5c3ltKQor
eworICAgIC8vIFNlZSAvdXNyL3NoYXJlL1gxMS94a2Iva2V5Y29kZXMvKgorICAgIHN0YXRpYyBj
b25zdCBpbnQgYXNjaWlUb0tleUNvZGVbXSA9IHsKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAg
ICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwK
KyAgICAgICAgMCwKKyAgICAgICAgMjIsCisgICAgICAgIDIzLAorICAgICAgICAwLAorICAgICAg
ICAwLAorICAgICAgICAwLAorICAgICAgICAzNiwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAg
ICAgICAgNTAsCisgICAgICAgIDM3LAorICAgICAgICA2NCwKKyAgICAgICAgMTI3LAorICAgICAg
ICA2NiwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAg
ICAgICAgMTMxLAorICAgICAgICAwLAorICAgICAgICA5LAorICAgICAgICAxMDAsCisgICAgICAg
IDEwMiwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgNjUsICAvLyAnICcKKyAgICAg
ICAgMTEyLCAvLyAnIScKKyAgICAgICAgMTE3LCAvLyAnIicKKyAgICAgICAgMTE1LCAvLyAnIycK
KyAgICAgICAgMTEwLCAvLyAnJCcKKyAgICAgICAgMTEzLCAvLyAnJScKKyAgICAgICAgMTExLCAv
LyAnJicKKyAgICAgICAgMTE0LCAvLyAnJycKKyAgICAgICAgMTE2LCAvLyAnKCcKKyAgICAgICAg
MCwgICAvLyAnKScKKyAgICAgICAgMTA3LCAvLyAnKicKKyAgICAgICAgMCwgICAvLyAnKycKKyAg
ICAgICAgMCwgICAvLyAnLCcKKyAgICAgICAgMTE4LCAvLyAnLScKKyAgICAgICAgMTE5LCAvLyAn
LicKKyAgICAgICAgMTQ2LCAvLyAnLycKKyAgICAgICAgMTksICAvLyAnMCcKKyAgICAgICAgMTAs
ICAvLyAnMScKKyAgICAgICAgMTEsICAvLyAnMicKKyAgICAgICAgMTIsICAvLyAnMycKKyAgICAg
ICAgMTMsICAvLyAnNCcKKyAgICAgICAgMTQsICAvLyAnNScKKyAgICAgICAgMTUsICAvLyAnNicK
KyAgICAgICAgMTYsICAvLyAnNycKKyAgICAgICAgMTcsICAvLyAnOCcKKyAgICAgICAgMTgsICAv
LyAnOScKKyAgICAgICAgMCwgICAvLyAnOicKKyAgICAgICAgMCwgICAvLyAnOycKKyAgICAgICAg
MCwgICAvLyAnPCcKKyAgICAgICAgMCwgICAvLyAnPScKKyAgICAgICAgMCwgICAvLyAnPicKKyAg
ICAgICAgMCwgICAvLyAnPycKKyAgICAgICAgMCwgICAvLyAnQCcKKyAgICAgICAgMzgsICAvLyAn
QScKKyAgICAgICAgNTYsICAvLyAnQicKKyAgICAgICAgNTQsICAvLyAnQycKKyAgICAgICAgNDAs
ICAvLyAnRCcKKyAgICAgICAgMjYsICAvLyAnRScKKyAgICAgICAgNDEsICAvLyAnRicKKyAgICAg
ICAgNDIsICAvLyAnRycKKyAgICAgICAgNDMsICAvLyAnSCcKKyAgICAgICAgMzEsICAvLyAnSScK
KyAgICAgICAgNDQsICAvLyAnSicKKyAgICAgICAgNDUsICAvLyAnSycKKyAgICAgICAgNDYsICAv
LyAnTCcKKyAgICAgICAgNTgsICAvLyAnTScKKyAgICAgICAgNTcsICAvLyAnTicKKyAgICAgICAg
MzIsICAvLyAnTycKKyAgICAgICAgMzMsICAvLyAnUCcKKyAgICAgICAgMjQsICAvLyAnUScKKyAg
ICAgICAgMjcsICAvLyAnUicKKyAgICAgICAgMzksICAvLyAnUycKKyAgICAgICAgMjgsICAvLyAn
VCcKKyAgICAgICAgMzAsICAvLyAnVScKKyAgICAgICAgNTUsICAvLyAnVicKKyAgICAgICAgMjUs
ICAvLyAnVycKKyAgICAgICAgNTMsICAvLyAnWCcKKyAgICAgICAgMjksICAvLyAnWScKKyAgICAg
ICAgNTIsICAvLyAnWicKKyAgICAgICAgMTMzLCAvLyAnWycKKyAgICAgICAgMTM0LCAvLyAnXCcK
KyAgICAgICAgMTM1LCAvLyAnXScKKyAgICAgICAgMCwgICAvLyAnXicKKyAgICAgICAgMCwgICAv
LyAnXycKKyAgICAgICAgOTAsICAvLyAnYCcKKyAgICAgICAgMzgsICAvLyAnYScKKyAgICAgICAg
NTYsICAvLyAnYicKKyAgICAgICAgNTQsICAvLyAnYycKKyAgICAgICAgNDAsICAvLyAnZCcKKyAg
ICAgICAgMjYsICAvLyAnZScKKyAgICAgICAgNDEsICAvLyAnZicKKyAgICAgICAgNDIsICAvLyAn
ZycKKyAgICAgICAgNDMsICAvLyAnaCcKKyAgICAgICAgMzEsICAvLyAnaScKKyAgICAgICAgNDQs
ICAvLyAnaicKKyAgICAgICAgNDUsICAvLyAnaycKKyAgICAgICAgNDYsICAvLyAnbCcKKyAgICAg
ICAgNTgsICAvLyAnbScKKyAgICAgICAgNTcsICAvLyAnbicKKyAgICAgICAgMzIsICAvLyAnbycK
KyAgICAgICAgMzMsICAvLyAncCcKKyAgICAgICAgMjQsICAvLyAncScKKyAgICAgICAgMjcsICAv
LyAncicKKyAgICAgICAgMzksICAvLyAncycKKyAgICAgICAgMjgsICAvLyAndCcKKyAgICAgICAg
MzAsICAvLyAndScKKyAgICAgICAgNTUsICAvLyAndicKKyAgICAgICAgMjUsICAvLyAndycKKyAg
ICAgICAgNTMsICAvLyAneCcKKyAgICAgICAgMjksICAvLyAneScKKyAgICAgICAgNTIsICAvLyAn
eicKKyAgICAgICAgOTYsICAvLyAneycKKyAgICAgICAgMCwgICAvLyAnfCcKKyAgICAgICAgMCwg
ICAvLyAnfScKKyAgICAgICAgMCwgICAvLyAnficKKyAgICAgICAgMCwgICAvLyBERUwKKyAgICB9
OworCisgICAgaWYgKGtleXN5bSA8PSAxMjcpCisgICAgICAgIHJldHVybiBhc2NpaVRvS2V5Q29k
ZVtrZXlzeW1dOworCisgICAgc3dpdGNoIChrZXlzeW0pIHsKKyAgICBjYXNlIFZLRVlfUFJJT1I6
CisgICAgICAgIHJldHVybiAxMTI7CisgICAgY2FzZSBWS0VZX05FWFQ6CisgICAgICAgIHJldHVy
biAxMTc7CisgICAgY2FzZSBWS0VZX0VORDoKKyAgICAgICAgcmV0dXJuIDExNTsKKyAgICBjYXNl
IFZLRVlfSE9NRToKKyAgICAgICAgcmV0dXJuIDExMDsKKyAgICBjYXNlIFZLRVlfTEVGVDoKKyAg
ICAgICAgcmV0dXJuIDExMzsKKyAgICBjYXNlIFZLRVlfVVA6CisgICAgICAgIHJldHVybiAxMTE7
CisgICAgY2FzZSBWS0VZX1JJR0hUOgorICAgICAgICByZXR1cm4gMTE0OworICAgIGNhc2UgVktF
WV9ET1dOOgorICAgICAgICByZXR1cm4gMTE2OworICAgIGNhc2UgVktFWV9TTkFQU0hPVDoKKyAg
ICAgICAgcmV0dXJuIDEwNzsKKyAgICBjYXNlIFZLRVlfSU5TRVJUOgorICAgICAgICByZXR1cm4g
MTE4OworICAgIGNhc2UgVktFWV9ERUxFVEU6CisgICAgICAgIHJldHVybiAxMTk7CisgICAgY2Fz
ZSBWS0VZX0FQUFM6CisgICAgICAgIHJldHVybiAxMzU7CisgICAgY2FzZSBWS0VZX0YxOgorICAg
IGNhc2UgVktFWV9GMSArIDE6CisgICAgY2FzZSBWS0VZX0YxICsgMjoKKyAgICBjYXNlIFZLRVlf
RjEgKyAzOgorICAgIGNhc2UgVktFWV9GMSArIDQ6CisgICAgY2FzZSBWS0VZX0YxICsgNToKKyAg
ICBjYXNlIFZLRVlfRjEgKyA2OgorICAgIGNhc2UgVktFWV9GMSArIDc6CisgICAgY2FzZSBWS0VZ
X0YxICsgODoKKyAgICBjYXNlIFZLRVlfRjEgKyA5OgorICAgIGNhc2UgVktFWV9GMSArIDEwOgor
ICAgIGNhc2UgVktFWV9GMSArIDExOgorICAgIGNhc2UgVktFWV9GMSArIDEyOgorICAgIGNhc2Ug
VktFWV9GMSArIDEzOgorICAgIGNhc2UgVktFWV9GMSArIDE0OgorICAgIGNhc2UgVktFWV9GMSAr
IDE1OgorICAgIGNhc2UgVktFWV9GMSArIDE2OgorICAgIGNhc2UgVktFWV9GMSArIDE3OgorICAg
IGNhc2UgVktFWV9GMSArIDE4OgorICAgIGNhc2UgVktFWV9GMSArIDE5OgorICAgIGNhc2UgVktF
WV9GMSArIDIwOgorICAgIGNhc2UgVktFWV9GMSArIDIxOgorICAgIGNhc2UgVktFWV9GMSArIDIy
OgorICAgIGNhc2UgVktFWV9GMSArIDIzOgorICAgICAgICByZXR1cm4gNjcgKyAoa2V5c3ltIC0g
VktFWV9GMSk7CisgICAgY2FzZSBWS0VZX0xTSElGVDoKKyAgICAgICAgcmV0dXJuIDUwOworICAg
IGNhc2UgVktFWV9SU0hJRlQ6CisgICAgICAgIHJldHVybiA2MjsKKyAgICBjYXNlIFZLRVlfTENP
TlRST0w6CisgICAgICAgIHJldHVybiAzNzsKKyAgICBjYXNlIFZLRVlfUkNPTlRST0w6CisgICAg
ICAgIHJldHVybiAxMDU7CisgICAgY2FzZSBWS0VZX0xNRU5VOgorICAgICAgICByZXR1cm4gNjQ7
CisgICAgY2FzZSBWS0VZX1JNRU5VOgorICAgICAgICByZXR1cm4gMTA4OworCisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAg
IH0KK30KKyNlbmRpZgorCiB9CiAKIEV2ZW50U2VuZGVyOjpFdmVudFNlbmRlcigpCkBAIC0zNDks
NyArNTgyLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVzZXQoKQogdm9pZCBFdmVudFNlbmRlcjo6
ZG9EcmFnRHJvcChjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsIFdlYkRyYWdPcGVyYXRpb25z
TWFzayBtYXNrKQogewogICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgaW5pdE1vdXNlRXZl
bnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3Ms
ICZldmVudCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBw
cmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNl
YyhtX2RlbGVnYXRlKSk7CiAgICAgV2ViUG9pbnQgY2xpZW50UG9pbnQoZXZlbnQueCwgZXZlbnQu
eSk7CiAgICAgV2ViUG9pbnQgc2NyZWVuUG9pbnQoZXZlbnQuZ2xvYmFsWCwgZXZlbnQuZ2xvYmFs
WSk7CiAgICAgY3VycmVudERyYWdEYXRhID0gZHJhZ0RhdGE7CkBAIC0zOTIsNyArNjI1LDcgQEAg
aW50IEV2ZW50U2VuZGVyOjpnZXRCdXR0b25OdW1iZXJGcm9tU2luZ2xlQXJnKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYgYXJndW1lbnRzKQogCiB2b2lkIEV2ZW50U2VuZGVyOjp1cGRhdGVDbGlja0Nv
dW50Rm9yQnV0dG9uKFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b25UeXBlKQogewotICAgIGlm
ICgoZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpIC0gbGFzdENsaWNrVGltZVNlYyA8IG11bHRpcGxl
Q2xpY2tUaW1lU2VjKQorICAgIGlmICgoZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRl
KSAtIGxhc3RDbGlja1RpbWVTZWMgPCBtdWx0aXBsZUNsaWNrVGltZVNlYykKICAgICAgICAgJiYg
KCFvdXRzaWRlTXVsdGlDbGlja1JhZGl1cyhsYXN0TW91c2VQb3MsIGxhc3RDbGlja1BvcykpCiAg
ICAgICAgICYmIChidXR0b25UeXBlID09IGxhc3RCdXR0b25UeXBlKSkKICAgICAgICAgKytjbGlj
a0NvdW50OwpAQCAtNDIyLDcgKzY1NSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Om1vdXNlRG93bihj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0CiAKICAg
ICBXZWJNb3VzZUV2ZW50IGV2ZW50OwogICAgIHByZXNzZWRCdXR0b24gPSBidXR0b25UeXBlOwot
ICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93biwgYnV0dG9uVHlwZSwg
bGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6
Ok1vdXNlRG93biwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRF
dmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID49IDIg
JiYgKGFyZ3VtZW50c1sxXS5pc09iamVjdCgpIHx8IGFyZ3VtZW50c1sxXS5pc1N0cmluZygpKSkK
ICAgICAgICAgYXBwbHlLZXlNb2RpZmllcnMoJihhcmd1bWVudHNbMV0pLCAmZXZlbnQpOwogICAg
IHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CkBAIC00NDgsNyArNjgxLDcgQEAg
dm9pZCBFdmVudFNlbmRlcjo6bW91c2VVcChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgICAgICByZXBsYXlTYXZlZEV2ZW50cygpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgIGluaXRNb3Vz
ZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGJ1dHRvblR5cGUsIGxhc3RNb3VzZVBvcywg
JmV2ZW50KTsKKyAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VVcCwg
YnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMo
bV9kZWxlZ2F0ZSkpOwogICAgICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAyICYmIChhcmd1
bWVudHNbMV0uaXNPYmplY3QoKSB8fCBhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkpCiAgICAgICAg
ICAgICBhcHBseUtleU1vZGlmaWVycygmKGFyZ3VtZW50c1sxXSksICZldmVudCk7CiAgICAgICAg
IGRvTW91c2VVcChldmVudCk7CkBAIC00OTcsNyArNzMwLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6
bW91c2VNb3ZlVG8oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQq
IHJlc3UKICAgICAgICAgbW91c2VFdmVudFF1ZXVlLmFwcGVuZChzYXZlZEV2ZW50KTsKICAgICB9
IGVsc2UgewogICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICBpbml0TW91c2VF
dmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIG1vdXNlUG9zLCAm
ZXZlbnQpOworICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUs
IHByZXNzZWRCdXR0b24sIG1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMo
bV9kZWxlZ2F0ZSkpOwogICAgICAgICBkb01vdXNlTW92ZShldmVudCk7CiAgICAgfQogfQpAQCAt
NTM1LDUwICs3NjgsNDMgQEAgdm9pZCBFdmVudFNlbmRlcjo6a2V5RG93bihjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgIGJvb2wgbmVlZHNT
aGlmdEtleU1vZGlmaWVyID0gZmFsc2U7CiAgICAgaWYgKCJcbiIgPT0gY29kZVN0cikgewogICAg
ICAgICBnZW5lcmF0ZUNoYXIgPSB0cnVlOwotICAgICAgICB0ZXh0ID0gY29kZSA9IHdlYmtpdF9z
dXBwb3J0OjpWS0VZX1JFVFVSTjsKKyAgICAgICAgdGV4dCA9IGNvZGUgPSBWS0VZX1JFVFVSTjsK
ICAgICB9IGVsc2UgaWYgKCJyaWdodEFycm93IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0g
d2Via2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ7CisgICAgICAgIGNvZGUgPSBWS0VZX1JJR0hUOwog
ICAgIGVsc2UgaWYgKCJkb3duQXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJr
aXRfc3VwcG9ydDo6VktFWV9ET1dOOworICAgICAgICBjb2RlID0gVktFWV9ET1dOOwogICAgIGVs
c2UgaWYgKCJsZWZ0QXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3Vw
cG9ydDo6VktFWV9MRUZUOworICAgICAgICBjb2RlID0gVktFWV9MRUZUOwogICAgIGVsc2UgaWYg
KCJ1cEFycm93IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZL
RVlfVVA7CisgICAgICAgIGNvZGUgPSBWS0VZX1VQOwogICAgIGVsc2UgaWYgKCJpbnNlcnQiID09
IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9JTlNFUlQ7Cisg
ICAgICAgIGNvZGUgPSBWS0VZX0lOU0VSVDsKICAgICBlbHNlIGlmICgiZGVsZXRlIiA9PSBjb2Rl
U3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfREVMRVRFOworICAgICAg
ICBjb2RlID0gVktFWV9ERUxFVEU7CiAgICAgZWxzZSBpZiAoInBhZ2VVcCIgPT0gY29kZVN0cikK
LSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX1BSSU9SOworICAgICAgICBjb2Rl
ID0gVktFWV9QUklPUjsKICAgICBlbHNlIGlmICgicGFnZURvd24iID09IGNvZGVTdHIpCi0gICAg
ICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ORVhUOworICAgICAgICBjb2RlID0gVktF
WV9ORVhUOwogICAgIGVsc2UgaWYgKCJob21lIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0g
d2Via2l0X3N1cHBvcnQ6OlZLRVlfSE9NRTsKKyAgICAgICAgY29kZSA9IFZLRVlfSE9NRTsKICAg
ICBlbHNlIGlmICgiZW5kIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBv
cnQ6OlZLRVlfRU5EOworICAgICAgICBjb2RlID0gVktFWV9FTkQ7CiAgICAgZWxzZSBpZiAoInBy
aW50U2NyZWVuIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZL
RVlfU05BUFNIT1Q7CisgICAgICAgIGNvZGUgPSBWS0VZX1NOQVBTSE9UOwogICAgIGVsc2UgaWYg
KCJtZW51IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Vi
a2l0X3N1cHBvcnQ6OlZLRVlfQVBQUy4KLSAgICAgICAgY29kZSA9IDB4NUQ7CisgICAgICAgIGNv
ZGUgPSBWS0VZX0FQUFM7CiAgICAgZWxzZSBpZiAoImxlZnRDb250cm9sIiA9PSBjb2RlU3RyKQot
ICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTENP
TlRST0wuCi0gICAgICAgIGNvZGUgPSAweEEyOworICAgICAgICBjb2RlID0gVktFWV9MQ09OVFJP
TDsKICAgICBlbHNlIGlmICgicmlnaHRDb250cm9sIiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBG
SVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUkNPTlRST0wuCi0gICAg
ICAgIGNvZGUgPSAweEEzOworICAgICAgICBjb2RlID0gVktFWV9SQ09OVFJPTDsKICAgICBlbHNl
IGlmICgibGVmdFNoaWZ0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRo
aXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTFNISUZULgotICAgICAgICBjb2RlID0gMHhBMDsK
KyAgICAgICAgY29kZSA9IFZLRVlfTFNISUZUOwogICAgIGVsc2UgaWYgKCJyaWdodFNoaWZ0IiA9
PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBv
cnQ6OlZLRVlfUlNISUZULgotICAgICAgICBjb2RlID0gMHhBMTsKKyAgICAgICAgY29kZSA9IFZL
RVlfUlNISUZUOwogICAgIGVsc2UgaWYgKCJsZWZ0QWx0IiA9PSBjb2RlU3RyKQotICAgICAgICAv
LyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTE1FTlUuCi0gICAg
ICAgIGNvZGUgPSAweEE0OworICAgICAgICBjb2RlID0gVktFWV9MTUVOVTsKICAgICBlbHNlIGlm
ICgicmlnaHRBbHQiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0
byB3ZWJraXRfc3VwcG9ydDo6VktFWV9STUVOVS4KLSAgICAgICAgY29kZSA9IDB4QTU7CisgICAg
ICAgIGNvZGUgPSBWS0VZX1JNRU5VOwogICAgIGVsc2UgewogICAgICAgICAvLyBDb21wYXJlIHRo
ZSBpbnB1dCBzdHJpbmcgd2l0aCB0aGUgZnVuY3Rpb24ta2V5IG5hbWVzIGRlZmluZWQgYnkgdGhl
CiAgICAgICAgIC8vIERPTSBzcGVjIChpLmUuICJGMSIsLi4uLCJGMjQiKS4gSWYgdGhlIGlucHV0
IHN0cmluZyBpcyBhIGZ1bmN0aW9uLWtleQpAQCAtNTg4LDcgKzgxNCw3IEBAIHZvaWQgRXZlbnRT
ZW5kZXI6OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQqIHJlc3VsdCkKICAgICAgICAgICAgIHNucHJpbnRmKGZ1bmN0aW9uQ2hhcnMsIDEwLCAiRiVk
IiwgaSk7CiAgICAgICAgICAgICBzdHJpbmcgZnVuY3Rpb25LZXlOYW1lKGZ1bmN0aW9uQ2hhcnMp
OwogICAgICAgICAgICAgaWYgKGZ1bmN0aW9uS2V5TmFtZSA9PSBjb2RlU3RyKSB7Ci0gICAgICAg
ICAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0YxICsgKGkgLSAxKTsKKyAgICAg
ICAgICAgICAgICBjb2RlID0gVktFWV9GMSArIChpIC0gMSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTYxMyw3ICs4MzksNyBAQCB2b2lkIEV2
ZW50U2VuZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBW
YXJpYW50KiByZXN1bHQpCiAgICAgZXZlbnREb3duLm1vZGlmaWVycyA9IDA7CiAgICAgZXZlbnRE
b3duLndpbmRvd3NLZXlDb2RlID0gY29kZTsKICNpZiBPUyhMSU5VWCkgJiYgVVNFKEdUSykKLSAg
ICBldmVudERvd24ubmF0aXZlS2V5Q29kZSA9IHdlYmtpdF9zdXBwb3J0OjpOYXRpdmVLZXlDb2Rl
Rm9yV2luZG93c0tleUNvZGUoY29kZSwgbmVlZHNTaGlmdEtleU1vZGlmaWVyKTsKKyAgICBldmVu
dERvd24ubmF0aXZlS2V5Q29kZSA9IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29kZShjb2Rl
KTsKICNlbmRpZgogCiAgICAgaWYgKGdlbmVyYXRlQ2hhcikgewpAQCAtNzc1LDcgKzEwMDEsNyBA
QCB2b2lkIEV2ZW50U2VuZGVyOjpyZXBsYXlTYXZlZEV2ZW50cygpCiAgICAgICAgIHN3aXRjaCAo
ZS50eXBlKSB7CiAgICAgICAgIGNhc2UgU2F2ZWRFdmVudDo6TW91c2VNb3ZlOiB7CiAgICAgICAg
ICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2Vi
SW5wdXRFdmVudDo6TW91c2VNb3ZlLCBwcmVzc2VkQnV0dG9uLCBlLnBvcywgJmV2ZW50KTsKKyAg
ICAgICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlTW92ZSwgcHJlc3Nl
ZEJ1dHRvbiwgZS5wb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRl
KSk7CiAgICAgICAgICAgICBkb01vdXNlTW92ZShldmVudCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQpAQCAtNzg0LDcgKzEwMTAsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpyZXBsYXlT
YXZlZEV2ZW50cygpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTYXZlZEV2ZW50
OjpNb3VzZVVwOiB7CiAgICAgICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICAg
ICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VVcCwgZS5idXR0b25UeXBlLCBs
YXN0TW91c2VQb3MsICZldmVudCk7CisgICAgICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1
dEV2ZW50OjpNb3VzZVVwLCBlLmJ1dHRvblR5cGUsIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBnZXRD
dXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICAgICAgICAgIGRvTW91c2VVcChl
dmVudCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtODQzLDEwICsxMDY5LDEw
IEBAIHZvaWQgRXZlbnRTZW5kZXI6OmNvbnRleHRDbGljayhjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzCiAgICAgLy8gR2VuZXJhdGUgcmlnaHQgbW91c2Ug
ZG93biBhbmQgdXAuCiAgICAgV2ViTW91c2VFdmVudCBldmVudDsKICAgICBwcmVzc2VkQnV0dG9u
ID0gV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQ7Ci0gICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5w
dXRFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25SaWdodCwgbGFzdE1vdXNl
UG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93
biwgV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBnZXRD
dXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlu
cHV0RXZlbnQoZXZlbnQpOwogCi0gICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91
c2VVcCwgV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50KTsK
KyAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBXZWJNb3VzZUV2ZW50
OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVT
ZWMobV9kZWxlZ2F0ZSkpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7
CiAKICAgICBwcmVzc2VkQnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uTm9uZTsKQEAgLTkw
Niw3ICsxMTMyLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6YmVnaW5EcmFnV2l0aEZpbGVzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW4KICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGZpbGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFdlYkRyYWdEYXRhOjpJdGVt
IGl0ZW07CiAgICAgICAgIGl0ZW0uc3RvcmFnZVR5cGUgPSBXZWJEcmFnRGF0YTo6SXRlbTo6U3Rv
cmFnZVR5cGVGaWxlbmFtZTsKLSAgICAgICAgaXRlbS5maWxlbmFtZURhdGEgPSB3ZWJraXRfc3Vw
cG9ydDo6R2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoZmlsZXNbaV0pOworICAgICAg
ICBpdGVtLmZpbGVuYW1lRGF0YSA9IG1fZGVsZWdhdGUtPmdldEFic29sdXRlV2ViU3RyaW5nRnJv
bVVURjhQYXRoKGZpbGVzW2ldKTsKICAgICAgICAgY3VycmVudERyYWdEYXRhLmFkZEl0ZW0oaXRl
bSk7CiAgICAgICAgIGFic29sdXRlRmlsZW5hbWVzW2ldID0gaXRlbS5maWxlbmFtZURhdGE7CiAg
ICAgfQpAQCAtMTAxNCw3ICsxMjQwLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6c2VuZEN1cnJlbnRU
b3VjaEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSkKICAgICBXZWJUb3VjaEV2
ZW50IHRvdWNoRXZlbnQ7CiAgICAgdG91Y2hFdmVudC50eXBlID0gdHlwZTsKICAgICB0b3VjaEV2
ZW50Lm1vZGlmaWVycyA9IHRvdWNoTW9kaWZpZXJzOwotICAgIHRvdWNoRXZlbnQudGltZVN0YW1w
U2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICB0b3VjaEV2ZW50LnRpbWVT
dGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpOwogICAgIHRv
dWNoRXZlbnQudG91Y2hlc0xlbmd0aCA9IHRvdWNoUG9pbnRzLnNpemUoKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgdG91Y2hQb2ludHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHRvdWNo
RXZlbnQudG91Y2hlc1tpXSA9IHRvdWNoUG9pbnRzW2ldOwpAQCAtMTA1NCw3ICsxMjgwLDcgQEAg
dm9pZCBFdmVudFNlbmRlcjo6aGFuZGxlTW91c2VXaGVlbChjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCoKICAgICAgICAgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRh
cyA9IGFyZ3VtZW50c1szXS50b0Jvb2xlYW4oKTsKIAogICAgIFdlYk1vdXNlV2hlZWxFdmVudCBl
dmVudDsKLSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVdoZWVsLCBwcmVz
c2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2Vi
SW5wdXRFdmVudDo6TW91c2VXaGVlbCwgcHJlc3NlZEJ1dHRvbiwgbGFzdE1vdXNlUG9zLCAmZXZl
bnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIGV2ZW50LndoZWVs
VGlja3NYID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGhvcml6b250YWwpOwogICAgIGV2ZW50LndoZWVs
VGlja3NZID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZlcnRpY2FsKTsKICAgICBldmVudC5kZWx0YVgg
PSBldmVudC53aGVlbFRpY2tzWDsKQEAgLTEyMTcsNyArMTQ0Myw3IEBAIHZvaWQgRXZlbnRTZW5k
ZXI6Omdlc3R1cmVFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHR5cGUsIGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYKIAogICAgIGV2ZW50Lmdsb2JhbFggPSBldmVudC54OwogICAgIGV2ZW50Lmdsb2Jh
bFkgPSBldmVudC55OwotICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZl
bnRUaW1lU2VjKCk7CisgICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVu
dFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAgICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50KGV2
ZW50KTsKIH0KIApAQCAtMTIyOSw3ICsxNDU1LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6Z2VzdHVy
ZUZsaW5nQ2FuY2VsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW4K
IAogICAgIFdlYkdlc3R1cmVFdmVudCBldmVudDsKICAgICBldmVudC50eXBlID0gV2ViSW5wdXRF
dmVudDo6R2VzdHVyZUZsaW5nQ2FuY2VsOwotICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBn
ZXRDdXJyZW50RXZlbnRUaW1lU2VjKCk7CisgICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdl
dEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAgICAgd2VidmlldygpLT5oYW5kbGVJ
bnB1dEV2ZW50KGV2ZW50KTsKIH0KIApAQCAtMTI1Myw3ICsxNDc5LDcgQEAgdm9pZCBFdmVudFNl
bmRlcjo6Z2VzdHVyZUZsaW5nU3RhcnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQKIAogICAgIGV2ZW50LmRhdGEuZmxpbmdTdGFydC52ZWxvY2l0eVggPSBzdGF0
aWNfY2FzdDxmbG9hdD4oYXJndW1lbnRzWzJdLnRvRG91YmxlKCkpOwogICAgIGV2ZW50LmRhdGEu
ZmxpbmdTdGFydC52ZWxvY2l0eVkgPSBzdGF0aWNfY2FzdDxmbG9hdD4oYXJndW1lbnRzWzNdLnRv
RG91YmxlKCkpOwotICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRU
aW1lU2VjKCk7CisgICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRp
bWVTZWMobV9kZWxlZ2F0ZSk7CiAgICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50KGV2ZW50
KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdERlbGVnYXRlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaAppbmRleCBlNjI2ZWNjZDAxZTIwNjA5NzM3MjJj
MDQ3ODNjM2IxM2UzMWMwODIzLi4wNDk4ZmNiM2YzZjEzNjQ5NjMzZDUyZTE2YWExOGZhMjM5YTIw
NzUyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0RGVsZWdhdGUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHBvc3REZWxheWVkVGFzayhXZWJUZXN0UnVubmVyOjpXZWJUYXNrKiwg
bG9uZyBsb25nIG1zKSA9IDA7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rl
cklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0
cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSA9IDA7CisgICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0
Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgPSAwOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJT
dHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcm
IHBhdGgpID0gMDsKIH07CiAKICNlbmRpZiAvLyBUZXN0RGVsZWdhdGVfaApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmNwcAppbmRleCBlNmVhZDE1NTE1N2ExYjAzNTFlZjkxNTI0ZmI3NGZhYTg0ZTVlNWJlLi5m
MGRhNzk4MzExN2VjMzgxMjc2YjVhNzhhNTVlNDhlYWRkZDcxZTIwIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmNwcApAQCAtMzIsNTEgKzMyLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJUZXN0UnVubmVyLmgiCiAKLSNpbmNsdWRlICJXZWJBbmltYXRpb25Db250cm9sbGVyLmgiCi0j
aW5jbHVkZSAiV2ViQmluZGluZ3MuaCIKLSNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgot
I2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiV2ViRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNb2NrLmgiCi0jaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKLSNpbmNsdWRl
ICJXZWJFbGVtZW50LmgiCi0jaW5jbHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJX
ZWJGcmFtZS5oIgotI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgotI2luY2x1
ZGUgIldlYklEQkZhY3RvcnkuaCIKLSNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKLSNpbmNs
dWRlICJXZWJJbnRlbnQuaCIKLSNpbmNsdWRlICJXZWJJbnRlbnRSZXF1ZXN0LmgiCi0jaW5jbHVk
ZSAiV2ViS2l0LmgiCi0jaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCi0jaW5j
bHVkZSAiV2ViUHJpbnRQYXJhbXMuaCIKLSNpbmNsdWRlICJXZWJTY3JpcHRTb3VyY2UuaCIKLSNp
bmNsdWRlICJXZWJTZWN1cml0eVBvbGljeS5oIgotI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCi0j
aW5jbHVkZSAiV2ViU3Vycm91bmRpbmdUZXh0LmgiCi0jaW5jbHVkZSAiV2ViVmlldy5oIgotI2lu
Y2x1ZGUgIldlYldvcmtlckluZm8uaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJEYXRhLmgiCi0j
aW5jbHVkZSAicGxhdGZvcm0vV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0jaW5jbHVkZSAi
cGxhdGZvcm0vV2ViU2l6ZS5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotI2luY2x1
ZGUgInY4L2luY2x1ZGUvdjguaCIKLSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3Vw
cG9ydC5oIgotI2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxjbG9jYWxlPgotI2luY2x1
ZGUgPGNzdGRsaWI+Ci0jaW5jbHVkZSA8bGltaXRzPgotI2luY2x1ZGUgPHNzdHJlYW0+Ci0jaW5j
bHVkZSA8d3RmL093bkFycmF5UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
Ci0KLSNpZiBPUyhMSU5VWCkgfHwgT1MoQU5EUk9JRCkKLSNpbmNsdWRlICJsaW51eC9XZWJGb250
UmVuZGVyaW5nLmgiCi0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQogVGVzdFJ1bm5lcjo6VGVz
dFJ1bm5lcigpCiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKaW5kZXggMzllMTlkNTczNjVkMDNjNjY4
NDFmODdmMjZhY2Y0NTQxZWUwN2Q3YS4uNTAzMjcxYjVkOWI1Y2VlMDk5OGJjYTg1MmMzY2EwOTM3
NTBhNjVlMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAtMzMsMjEgKzMzLDYgQEAKICNkZWZpbmUg
VGVzdFJ1bm5lcl9oCiAKICNpbmNsdWRlICJDcHBCb3VuZENsYXNzLmgiCi0jaW5jbHVkZSAiV2Vi
RGVsaXZlcmVkSW50ZW50Q2xpZW50LmgiCi0jaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlvbi5oIgot
I2luY2x1ZGUgInBsYXRmb3JtL1dlYkFycmF5QnVmZmVyVmlldy5oIgotI2luY2x1ZGUgInBsYXRm
b3JtL1dlYlN0cmluZy5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci1jbGFzcyBXZWJHZW9sb2NhdGlvbkNsaWVudE1vY2s7Ci19Ci0KLW5hbWVzcGFjZSB3ZWJr
aXRfc3VwcG9ydCB7Ci1jbGFzcyBTY29wZWRUZW1wRGlyZWN0b3J5OwotfQogCiBjbGFzcyBUZXN0
UnVubmVyIDogcHVibGljIENwcEJvdW5kQ2xhc3MgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFj
ZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2Vi
VGVzdEludGVyZmFjZXMuY3BwCmluZGV4IGY3ZGIxNzE5OGU2N2Y4YThkODMyMGRlNjVlYTRiNDA5
YjYxOTBiM2YuLjlhODY5NTNjM2NiODUzNzQwZWFhNzhiYWZmYTE4OGM0YjcyNzI4ZjggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRl
c3RJbnRlcmZhY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAKQEAgLTY3LDYgKzY3LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhXZWJUYXNrKik7CiAgICAgdmlydHVhbCB2b2lk
IHBvc3REZWxheWVkVGFzayhXZWJUYXNrKiwgbG9uZyBsb25nIG1zKTsKICAgICB2aXJ0dWFsIFdl
YlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJWZWN0b3I8V2ViU3Ry
aW5nPiYgYWJzb2x1dGVGaWxlbmFtZXMpOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJl
bnRUaW1lSW5NaWxsaXNlY29uZCgpOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0
QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpOwog
CiBwcml2YXRlOgogICAgIFRlc3RJbnRlcmZhY2VzIG1faW50ZXJmYWNlczsKQEAgLTE0Nyw2ICsx
NDksMTYgQEAgV2ViU3RyaW5nIFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6cmVnaXN0ZXJJ
c29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViVmVjdG8KICAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+
cmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1dGVGaWxlbmFtZXMpOwogfQogCitsb25n
IGxvbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRDdXJyZW50VGltZUluTWlsbGlz
ZWNvbmQoKQoreworICAgIHJldHVybiBtX2RlbGVnYXRlLT5nZXRDdXJyZW50VGltZUluTWlsbGlz
ZWNvbmQoKTsKK30KKworV2ViS2l0OjpXZWJTdHJpbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVy
bmFsOjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYg
cGF0aCkKK3sKKyAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9t
VVRGOFBhdGgocGF0aCk7Cit9CisKIFdlYlRlc3RJbnRlcmZhY2VzOjpXZWJUZXN0SW50ZXJmYWNl
cygpCiB7CiAgICAgbV9pbnRlcm5hbCA9IG5ldyBJbnRlcm5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCBkMzc2MjJkYjk5NTg4Zjc5MTVi
MjQ0ZWY5Y2I3ZDA1ZTIxMmZjNzMxLi44N2ViMjUwOGJjNDQzNjVmNjMxNmIyN2Y1MjA5YWY4NDkx
MWQ3OTM5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
Y3BwCkBAIC0xNTAwLDYgKzE1MDAsMTYgQEAgV2ViU3RyaW5nIFdlYlZpZXdIb3N0OjpyZWdpc3Rl
cklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgYWIKICAgICBy
ZXR1cm4gd2Via2l0X3N1cHBvcnQ6OlJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGFic29sdXRl
RmlsZW5hbWVzKTsKIH0KIAorbG9uZyBsb25nIFdlYlZpZXdIb3N0OjpnZXRDdXJyZW50VGltZUlu
TWlsbGlzZWNvbmQoKQoreworICAgIHJldHVybiB3ZWJraXRfc3VwcG9ydDo6R2V0Q3VycmVudFRp
bWVJbk1pbGxpc2Vjb25kKCk7Cit9CisKK1dlYktpdDo6V2ViU3RyaW5nIFdlYlZpZXdIb3N0Ojpn
ZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkK
K3sKKyAgICByZXR1cm4gd2Via2l0X3N1cHBvcnQ6OkdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVU
RjhQYXRoKHBhdGgpOworfQorCiAvLyBQdWJsaWMgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdlYlZpZXdIb3N0
OjpXZWJWaWV3SG9zdChUZXN0U2hlbGwqIHNoZWxsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXggOWFmNDdlMDc4Zjc2YWYwN2M0NDAwODc2ZmE5N2Fi
OWE4NTRkOTUyNy4uODYwMDcxOTRiMDQzNTY3MmMwMTQ5OTlkNTg2MDUzZWNmZjVmOGI0ZiAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xMzksNiAr
MTM5LDggQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50
LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRh
c2soV2ViVGVzdFJ1bm5lcjo6V2ViVGFzayopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBw
b3N0RGVsYXllZFRhc2soV2ViVGVzdFJ1bm5lcjo6V2ViVGFzayosIGxvbmcgbG9uZyBtcykgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmls
ZVN5c3RlbShjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29s
dXRlRmlsZW5hbWVzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBnZXRDdXJyZW50
VGltZUluTWlsbGlzZWNvbmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3Ry
aW5nIGdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBw
YXRoKSBPVkVSUklERTsKIAogICAgIC8vIE5hdmlnYXRpb25Ib3N0CiAgICAgdmlydHVhbCBib29s
IG5hdmlnYXRlKGNvbnN0IFRlc3ROYXZpZ2F0aW9uRW50cnkmLCBib29sIHJlbG9hZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170737</attachid>
            <date>2012-10-25 15:00:30 -0700</date>
            <delta_ts>2012-10-25 15:18:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100344-20121025235903.patch</filename>
            <type>text/plain</type>
            <size>34402</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uNWViMWZkNGNmNmVkMDJiNTcwMmM5N2QxYTA3ZjM5YmI2MmM3YjQyOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDEyLTEwLTI1ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHJlbWFpbmluZyB1c2FnZXMgb2Ygd2Via2l0X3N1
cHBvcnQgZnJvbSB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBtb3N0IGltcG9ydGFudCBwYXJ0IGlzIHRvIG5vdCBy
ZWx5IG9uIGNhbGxpbmcgb3V0IHRvIGdkay9YMTEgdG8KKyAgICAgICAgdHJhbnNsYXRlIGtleWNv
ZGVzIHRvIGhhcmR3YXJlIGtleWNvZGVzLCBhcyB0aGlzIGlzIG5vdCBwb3NzaWJsZSBpbnNpZGUK
KyAgICAgICAgdGhlIHNhbmRib3guCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS5neXBpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RS
dW5uZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICh3ZWJraXRfc3VwcG9ydCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVz
dERlbGVnYXRlLmg6CisgICAgICAgIChXZWJUZXN0RGVsZWdhdGUpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuaDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHA6
CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50
U2VuZGVyOjpkb0RyYWdEcm9wKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVy
Ojp1cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2
ZW50U2VuZGVyOjptb3VzZURvd24pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5k
ZXI6Om1vdXNlVXApOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Om1vdXNl
TW92ZVRvKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjprZXlEb3duKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpyZXBsYXlTYXZlZEV2ZW50cyk6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Y29udGV4dENsaWNrKToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpiZWdpbkRyYWdXaXRoRmlsZXMpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OnNlbmRDdXJyZW50VG91Y2hFdmVu
dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6aGFuZGxlTW91c2VXaGVl
bCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Z2VzdHVyZUV2ZW50KToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpnZXN0dXJlRmxpbmdDYW5jZWwp
OgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omdlc3R1cmVGbGluZ1N0YXJ0
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9LZXlD
b2RlTWFwcGluZy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAg
IChXZWJUZXN0UnVubmVyOjpOYXRpdmVLZXlDb2RlRm9yV2luZG93c0tleUNvZGUpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBwaW5n
Lmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuaC4KKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oOgorICAg
ICAgICAoVGVzdERlbGVnYXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwOgorICAg
ICAgICAoV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vj
b25kKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4
UGF0aCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
OgorICAgICAgICAoV2ViVmlld0hvc3Q6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCk6Cisg
ICAgICAgIChXZWJWaWV3SG9zdDo6Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisgICAgICAg
IChXZWJWaWV3SG9zdCk6CisKIDIwMTItMTAtMjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgbnJ3dDogdHJ1bmNhdGUgbWV0ZXIgbGluZXMgcHJvcGVybHkg
b24gd2luZG93cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUuZ3lwaSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKaW5kZXgg
MjY3MjJlY2U3Mjk2ZWVlZjhiMWM4ZmYzODBmNmM4NGE2ZTQ4MGVlMC4uOTkxNzMyOGE2YTFiZjhh
MDY5YTlhZjlmZDUyZDg4YmY0OGQzNmM2ZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS5neXBpCkBAIC04Myw2ICs4Myw4IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5oJywKKyAgICAgICAgICAgICdjaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9LZXlDb2RlTWFwcGluZy5jcHAnLAorICAgICAgICAgICAgJ2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBwaW5nLmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGV4dElucHV0Q29udHJvbGxlci5jcHAnLApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCmluZGV4IGVjNDc3OGZkNWM0
NmY4ZjMyODc1OGExNTdhMzI4MjE0NTRiNWIyMjEuLmNjZGZjNDM5NGRmNmRkYzllMDRiZjE1M2Y1
OTU3MDdjMWI3NmYwYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0RSVFRlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRU
ZXN0UnVubmVyLmgKQEAgLTQzLDcgKzQzLDIzIEBACiAjZGVmaW5lIERSVFRlc3RSdW5uZXJfaAog
CiAjaW5jbHVkZSAiVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIgorI2luY2x1ZGUgIldlYkRl
bGl2ZXJlZEludGVudENsaWVudC5oIgogI2luY2x1ZGUgIldlYlRhc2suaCIKKyNpbmNsdWRlICJX
ZWJUZXh0RGlyZWN0aW9uLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViQXJyYXlCdWZmZXJWaWV3
LmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAicGxhdGZvcm0v
V2ViVVJMLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkdlb2xvY2F0aW9uQ2xpZW50TW9jazsK
K30KKworbmFtZXNwYWNlIHdlYmtpdF9zdXBwb3J0IHsKK2NsYXNzIFNjb3BlZFRlbXBEaXJlY3Rv
cnk7Cit9CisKIAogY2xhc3MgVGVzdFNoZWxsOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxl
Z2F0ZS5oCmluZGV4IDZlMjE4ODEwN2JhOTc0NWJlNmQ5NTMzODkyZTRhNzRmN2YzZTYwMDUuLmFi
NDdkNGY5ZGNlYTZkN2VjOTE4YmRkMWUyZWY0ZGVmMmM1ODJlMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0
ZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGlj
L1dlYlRlc3REZWxlZ2F0ZS5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdlYlRhc2sqLCBsb25nIGxvbmcgbXMpID0gMDsKIAogICAg
IHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgcmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29u
c3QgV2ViS2l0OjpXZWJWZWN0b3I8V2ViS2l0OjpXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1l
cykgPSAwOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29u
ZCgpID0gMDsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2ViU3Ry
aW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKSA9IDA7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9D
cHBWYXJpYW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9DcHBWYXJpYW50LmgKaW5kZXggNjBjYzYyNzFlY2ZhZDllZDY4YmRlNDI4ODUxNTM4NDI2ZDZi
ODQwMy4uNDdmZDQ2NmFmZjMyZDc5Y2VjYjQ3MDY2YTczYjdhNWVjNWNjMDBiOSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFu
dC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0Nw
cFZhcmlhbnQuaApAQCAtNDMsNyArNDMsNiBAQAogI2RlZmluZSBDcHBWYXJpYW50X2gKIAogI2lu
Y2x1ZGUgIldlYkJpbmRpbmdzLmgiCi0jaW5jbHVkZSAid2Via2l0L3N1cHBvcnQvd2Via2l0X3N1
cHBvcnQuaCIKICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9F
dmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9FdmVudFNlbmRlci5jcHAKaW5kZXggMmY0YTA1NTRjNWMzNmQzZWZiNjkwZjQ3ZThjMmY4
OTNjYmZhZjkzZS4uMmEzMDBhODAwZmI4NzllOTEyNjQzMDgyYWQ0NWQwY2U3ZDBiOWYxMyAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZl
bnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0V2ZW50U2VuZGVyLmNwcApAQCAtNDMsMTYgKzQzLDE3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnRTZW5kZXIuaCIKIAorI2luY2x1ZGUgIktleUNvZGVNYXBw
aW5nLmgiCiAjaW5jbHVkZSAiVGVzdERlbGVnYXRlLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1l
bnVEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ09wZXJhdGlvbi5oIgorI2luY2x1ZGUgIldlYkV2
ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hQb2ludC5oIgogI2luY2x1ZGUgIldlYlZp
ZXcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJEcmFnRGF0YS5oIgogI2luY2x1ZGUgInBsYXRm
b3JtL1dlYlBvaW50LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVk
ZSAicGxhdGZvcm0vV2ViVmVjdG9yLmgiCi0jaW5jbHVkZSAid2Via2l0L3N1cHBvcnQvd2Via2l0
X3N1cHBvcnQuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5n
RXh0cmFzLmg+CiAKQEAgLTEyNSw5ICsxMjYsOSBAQCBpbmxpbmUgYm9vbCBvdXRzaWRlTXVsdGlD
bGlja1JhZGl1cyhjb25zdCBXZWJQb2ludCYgYSwgY29uc3QgV2ViUG9pbnQmIGIpCiAvLyBkZXBl
bmRlbnQgKGUuZy4sIGRyYWdnaW5nIGhhcyBhIHRpbWVvdXQgdnMgc2VsZWN0aW9uKS4KIHVpbnQz
MiB0aW1lT2Zmc2V0TXMgPSAwOwogCi1kb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpCitk
b3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewot
ICAgIHJldHVybiAod2Via2l0X3N1cHBvcnQ6OkdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgp
ICsgdGltZU9mZnNldE1zKSAvIDEwMDAuMDsKKyAgICByZXR1cm4gKGRlbGVnYXRlLT5nZXRDdXJy
ZW50VGltZUluTWlsbGlzZWNvbmQoKSArIHRpbWVPZmZzZXRNcykgLyAxMDAwLjA7CiB9CiAKIHZv
aWQgYWR2YW5jZUV2ZW50VGltZShpbnQzMl90IGRlbHRhTXMpCkBAIC0xMzUsNyArMTM2LDcgQEAg
dm9pZCBhZHZhbmNlRXZlbnRUaW1lKGludDMyX3QgZGVsdGFNcykKICAgICB0aW1lT2Zmc2V0TXMg
Kz0gZGVsdGFNczsKIH0KIAotdm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBl
IHQsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJNb3Vz
ZUV2ZW50KiBlKQordm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHQsIFdl
Yk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJNb3VzZUV2ZW50
KiBlLCBkb3VibGUgdHMpCiB7CiAgICAgZS0+dHlwZSA9IHQ7CiAgICAgZS0+YnV0dG9uID0gYjsK
QEAgLTE0NCw3ICsxNDUsNyBAQCB2b2lkIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5
cGUgdCwgV2ViTW91c2VFdmVudDo6QnV0dG9uIGIsIGNvbnN0IFdlYlBvaQogICAgIGUtPnkgPSBw
b3MueTsKICAgICBlLT5nbG9iYWxYID0gcG9zLng7CiAgICAgZS0+Z2xvYmFsWSA9IHBvcy55Owot
ICAgIGUtPnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCk7CisgICAg
ZS0+dGltZVN0YW1wU2Vjb25kcyA9IHRzOwogICAgIGUtPmNsaWNrQ291bnQgPSBjbGlja0NvdW50
OwogfQogCkBAIC0yMTQsMTYgKzIxNSwxNiBAQCBib29sIGdldEVkaXRDb21tYW5kKGNvbnN0IFdl
YktleWJvYXJkRXZlbnQmIGV2ZW50LCBzdHJpbmcqIG5hbWUpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIHN3aXRjaCAoZXZlbnQud2luZG93c0tleUNvZGUpIHsKLSAgICBjYXNlIHdlYmtp
dF9zdXBwb3J0OjpWS0VZX0xFRlQ6CisgICAgY2FzZSBWS0VZX0xFRlQ6CiAgICAgICAgICpuYW1l
ID0gIk1vdmVUb0JlZ2lubmluZ09mTGluZSI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ugd2Vi
a2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ6CisgICAgY2FzZSBWS0VZX1JJR0hUOgogICAgICAgICAq
bmFtZSA9ICJNb3ZlVG9FbmRPZkxpbmUiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIHdlYmtp
dF9zdXBwb3J0OjpWS0VZX1VQOgorICAgIGNhc2UgVktFWV9VUDoKICAgICAgICAgKm5hbWUgPSAi
TW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ugd2Vi
a2l0X3N1cHBvcnQ6OlZLRVlfRE9XTjoKKyAgICBjYXNlIFZLRVlfRE9XTjoKICAgICAgICAgKm5h
bWUgPSAiTW92ZVRvRW5kT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6
CkBAIC0zNDksNyArMzUwLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVzZXQoKQogdm9pZCBFdmVu
dFNlbmRlcjo6ZG9EcmFnRHJvcChjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsIFdlYkRyYWdP
cGVyYXRpb25zTWFzayBtYXNrKQogewogICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgaW5p
dE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBwcmVzc2VkQnV0dG9uLCBsYXN0
TW91c2VQb3MsICZldmVudCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91
c2VEb3duLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2
ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgV2ViUG9pbnQgY2xpZW50UG9pbnQoZXZlbnQu
eCwgZXZlbnQueSk7CiAgICAgV2ViUG9pbnQgc2NyZWVuUG9pbnQoZXZlbnQuZ2xvYmFsWCwgZXZl
bnQuZ2xvYmFsWSk7CiAgICAgY3VycmVudERyYWdEYXRhID0gZHJhZ0RhdGE7CkBAIC0zOTIsNyAr
MzkzLDcgQEAgaW50IEV2ZW50U2VuZGVyOjpnZXRCdXR0b25OdW1iZXJGcm9tU2luZ2xlQXJnKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzKQogCiB2b2lkIEV2ZW50U2VuZGVyOjp1cGRh
dGVDbGlja0NvdW50Rm9yQnV0dG9uKFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b25UeXBlKQog
ewotICAgIGlmICgoZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpIC0gbGFzdENsaWNrVGltZVNlYyA8
IG11bHRpcGxlQ2xpY2tUaW1lU2VjKQorICAgIGlmICgoZ2V0Q3VycmVudEV2ZW50VGltZVNlYyht
X2RlbGVnYXRlKSAtIGxhc3RDbGlja1RpbWVTZWMgPCBtdWx0aXBsZUNsaWNrVGltZVNlYykKICAg
ICAgICAgJiYgKCFvdXRzaWRlTXVsdGlDbGlja1JhZGl1cyhsYXN0TW91c2VQb3MsIGxhc3RDbGlj
a1BvcykpCiAgICAgICAgICYmIChidXR0b25UeXBlID09IGxhc3RCdXR0b25UeXBlKSkKICAgICAg
ICAgKytjbGlja0NvdW50OwpAQCAtNDIyLDcgKzQyMyw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Om1v
dXNlRG93bihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVz
dWx0CiAKICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwogICAgIHByZXNzZWRCdXR0b24gPSBidXR0
b25UeXBlOwotICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93biwgYnV0
dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklu
cHV0RXZlbnQ6Ok1vdXNlRG93biwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdl
dEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIGlmIChhcmd1bWVudHMuc2l6
ZSgpID49IDIgJiYgKGFyZ3VtZW50c1sxXS5pc09iamVjdCgpIHx8IGFyZ3VtZW50c1sxXS5pc1N0
cmluZygpKSkKICAgICAgICAgYXBwbHlLZXlNb2RpZmllcnMoJihhcmd1bWVudHNbMV0pLCAmZXZl
bnQpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CkBAIC00NDgsNyAr
NDQ5LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6bW91c2VVcChjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgICAgICByZXBsYXlTYXZlZEV2ZW50
cygpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAg
IGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGJ1dHRvblR5cGUsIGxhc3RN
b3VzZVBvcywgJmV2ZW50KTsKKyAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6
TW91c2VVcCwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVu
dFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAy
ICYmIChhcmd1bWVudHNbMV0uaXNPYmplY3QoKSB8fCBhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkp
CiAgICAgICAgICAgICBhcHBseUtleU1vZGlmaWVycygmKGFyZ3VtZW50c1sxXSksICZldmVudCk7
CiAgICAgICAgIGRvTW91c2VVcChldmVudCk7CkBAIC00OTcsNyArNDk4LDcgQEAgdm9pZCBFdmVu
dFNlbmRlcjo6bW91c2VNb3ZlVG8oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENw
cFZhcmlhbnQqIHJlc3UKICAgICAgICAgbW91c2VFdmVudFF1ZXVlLmFwcGVuZChzYXZlZEV2ZW50
KTsKICAgICB9IGVsc2UgewogICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICBp
bml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIG1v
dXNlUG9zLCAmZXZlbnQpOworICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpN
b3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIG1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVu
dFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgICAgICBkb01vdXNlTW92ZShldmVudCk7CiAgICAg
fQogfQpAQCAtNTM1LDUwICs1MzYsNDMgQEAgdm9pZCBFdmVudFNlbmRlcjo6a2V5RG93bihjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgIGJv
b2wgbmVlZHNTaGlmdEtleU1vZGlmaWVyID0gZmFsc2U7CiAgICAgaWYgKCJcbiIgPT0gY29kZVN0
cikgewogICAgICAgICBnZW5lcmF0ZUNoYXIgPSB0cnVlOwotICAgICAgICB0ZXh0ID0gY29kZSA9
IHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JFVFVSTjsKKyAgICAgICAgdGV4dCA9IGNvZGUgPSBWS0VZ
X1JFVFVSTjsKICAgICB9IGVsc2UgaWYgKCJyaWdodEFycm93IiA9PSBjb2RlU3RyKQotICAgICAg
ICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ7CisgICAgICAgIGNvZGUgPSBWS0VZ
X1JJR0hUOwogICAgIGVsc2UgaWYgKCJkb3duQXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNv
ZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ET1dOOworICAgICAgICBjb2RlID0gVktFWV9ET1dO
OwogICAgIGVsc2UgaWYgKCJsZWZ0QXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3
ZWJraXRfc3VwcG9ydDo6VktFWV9MRUZUOworICAgICAgICBjb2RlID0gVktFWV9MRUZUOwogICAg
IGVsc2UgaWYgKCJ1cEFycm93IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1
cHBvcnQ6OlZLRVlfVVA7CisgICAgICAgIGNvZGUgPSBWS0VZX1VQOwogICAgIGVsc2UgaWYgKCJp
bnNlcnQiID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9J
TlNFUlQ7CisgICAgICAgIGNvZGUgPSBWS0VZX0lOU0VSVDsKICAgICBlbHNlIGlmICgiZGVsZXRl
IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfREVMRVRF
OworICAgICAgICBjb2RlID0gVktFWV9ERUxFVEU7CiAgICAgZWxzZSBpZiAoInBhZ2VVcCIgPT0g
Y29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX1BSSU9SOworICAg
ICAgICBjb2RlID0gVktFWV9QUklPUjsKICAgICBlbHNlIGlmICgicGFnZURvd24iID09IGNvZGVT
dHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ORVhUOworICAgICAgICBj
b2RlID0gVktFWV9ORVhUOwogICAgIGVsc2UgaWYgKCJob21lIiA9PSBjb2RlU3RyKQotICAgICAg
ICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfSE9NRTsKKyAgICAgICAgY29kZSA9IFZLRVlf
SE9NRTsKICAgICBlbHNlIGlmICgiZW5kIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Vi
a2l0X3N1cHBvcnQ6OlZLRVlfRU5EOworICAgICAgICBjb2RlID0gVktFWV9FTkQ7CiAgICAgZWxz
ZSBpZiAoInByaW50U2NyZWVuIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1
cHBvcnQ6OlZLRVlfU05BUFNIT1Q7CisgICAgICAgIGNvZGUgPSBWS0VZX1NOQVBTSE9UOwogICAg
IGVsc2UgaWYgKCJtZW51IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRo
aXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfQVBQUy4KLSAgICAgICAgY29kZSA9IDB4NUQ7Cisg
ICAgICAgIGNvZGUgPSBWS0VZX0FQUFM7CiAgICAgZWxzZSBpZiAoImxlZnRDb250cm9sIiA9PSBj
b2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6
OlZLRVlfTENPTlRST0wuCi0gICAgICAgIGNvZGUgPSAweEEyOworICAgICAgICBjb2RlID0gVktF
WV9MQ09OVFJPTDsKICAgICBlbHNlIGlmICgicmlnaHRDb250cm9sIiA9PSBjb2RlU3RyKQotICAg
ICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUkNPTlRS
T0wuCi0gICAgICAgIGNvZGUgPSAweEEzOworICAgICAgICBjb2RlID0gVktFWV9SQ09OVFJPTDsK
ICAgICBlbHNlIGlmICgibGVmdFNoaWZ0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTog
Q2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTFNISUZULgotICAgICAgICBjb2Rl
ID0gMHhBMDsKKyAgICAgICAgY29kZSA9IFZLRVlfTFNISUZUOwogICAgIGVsc2UgaWYgKCJyaWdo
dFNoaWZ0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Vi
a2l0X3N1cHBvcnQ6OlZLRVlfUlNISUZULgotICAgICAgICBjb2RlID0gMHhBMTsKKyAgICAgICAg
Y29kZSA9IFZLRVlfUlNISUZUOwogICAgIGVsc2UgaWYgKCJsZWZ0QWx0IiA9PSBjb2RlU3RyKQot
ICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTE1F
TlUuCi0gICAgICAgIGNvZGUgPSAweEE0OworICAgICAgICBjb2RlID0gVktFWV9MTUVOVTsKICAg
ICBlbHNlIGlmICgicmlnaHRBbHQiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFu
Z2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9STUVOVS4KLSAgICAgICAgY29kZSA9IDB4
QTU7CisgICAgICAgIGNvZGUgPSBWS0VZX1JNRU5VOwogICAgIGVsc2UgewogICAgICAgICAvLyBD
b21wYXJlIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB0aGUgZnVuY3Rpb24ta2V5IG5hbWVzIGRlZmlu
ZWQgYnkgdGhlCiAgICAgICAgIC8vIERPTSBzcGVjIChpLmUuICJGMSIsLi4uLCJGMjQiKS4gSWYg
dGhlIGlucHV0IHN0cmluZyBpcyBhIGZ1bmN0aW9uLWtleQpAQCAtNTg4LDcgKzU4Miw3IEBAIHZv
aWQgRXZlbnRTZW5kZXI6OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKICAgICAgICAgICAgIHNucHJpbnRmKGZ1bmN0aW9uQ2hhcnMs
IDEwLCAiRiVkIiwgaSk7CiAgICAgICAgICAgICBzdHJpbmcgZnVuY3Rpb25LZXlOYW1lKGZ1bmN0
aW9uQ2hhcnMpOwogICAgICAgICAgICAgaWYgKGZ1bmN0aW9uS2V5TmFtZSA9PSBjb2RlU3RyKSB7
Ci0gICAgICAgICAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0YxICsgKGkgLSAx
KTsKKyAgICAgICAgICAgICAgICBjb2RlID0gVktFWV9GMSArIChpIC0gMSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTYxMyw3ICs2MDcsNyBA
QCB2b2lkIEV2ZW50U2VuZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiAgICAgZXZlbnREb3duLm1vZGlmaWVycyA9IDA7CiAg
ICAgZXZlbnREb3duLndpbmRvd3NLZXlDb2RlID0gY29kZTsKICNpZiBPUyhMSU5VWCkgJiYgVVNF
KEdUSykKLSAgICBldmVudERvd24ubmF0aXZlS2V5Q29kZSA9IHdlYmtpdF9zdXBwb3J0OjpOYXRp
dmVLZXlDb2RlRm9yV2luZG93c0tleUNvZGUoY29kZSwgbmVlZHNTaGlmdEtleU1vZGlmaWVyKTsK
KyAgICBldmVudERvd24ubmF0aXZlS2V5Q29kZSA9IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5
Q29kZShjb2RlKTsKICNlbmRpZgogCiAgICAgaWYgKGdlbmVyYXRlQ2hhcikgewpAQCAtNzc1LDcg
Kzc2OSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnJlcGxheVNhdmVkRXZlbnRzKCkKICAgICAgICAg
c3dpdGNoIChlLnR5cGUpIHsKICAgICAgICAgY2FzZSBTYXZlZEV2ZW50OjpNb3VzZU1vdmU6IHsK
ICAgICAgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgICAgICBpbml0TW91c2VF
dmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIGUucG9zLCAmZXZl
bnQpOworICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VNb3Zl
LCBwcmVzc2VkQnV0dG9uLCBlLnBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1f
ZGVsZWdhdGUpKTsKICAgICAgICAgICAgIGRvTW91c2VNb3ZlKGV2ZW50KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CkBAIC03ODQsNyArNzc4LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6
cmVwbGF5U2F2ZWRFdmVudHMoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU2F2
ZWRFdmVudDo6TW91c2VVcDogewogICAgICAgICAgICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAg
ICAgICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGUuYnV0dG9u
VHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQo
V2ViSW5wdXRFdmVudDo6TW91c2VVcCwgZS5idXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVu
dCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgICAgICAgICBkb01v
dXNlVXAoZXZlbnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg0MywxMCAr
ODM3LDEwIEBAIHZvaWQgRXZlbnRTZW5kZXI6OmNvbnRleHRDbGljayhjb25zdCBDcHBBcmd1bWVu
dExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzCiAgICAgLy8gR2VuZXJhdGUgcmlnaHQg
bW91c2UgZG93biBhbmQgdXAuCiAgICAgV2ViTW91c2VFdmVudCBldmVudDsKICAgICBwcmVzc2Vk
QnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQ7Ci0gICAgaW5pdE1vdXNlRXZlbnQo
V2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25SaWdodCwgbGFz
dE1vdXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1v
dXNlRG93biwgV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50
LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICB3ZWJ2aWV3KCktPmhh
bmRsZUlucHV0RXZlbnQoZXZlbnQpOwogCi0gICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVu
dDo6TW91c2VVcCwgV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2
ZW50KTsKKyAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBXZWJNb3Vz
ZUV2ZW50OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVu
dFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChl
dmVudCk7CiAKICAgICBwcmVzc2VkQnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uTm9uZTsK
QEAgLTkwNiw3ICs5MDAsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpiZWdpbkRyYWdXaXRoRmlsZXMo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbgogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgZmlsZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgV2ViRHJhZ0RhdGE6
Okl0ZW0gaXRlbTsKICAgICAgICAgaXRlbS5zdG9yYWdlVHlwZSA9IFdlYkRyYWdEYXRhOjpJdGVt
OjpTdG9yYWdlVHlwZUZpbGVuYW1lOwotICAgICAgICBpdGVtLmZpbGVuYW1lRGF0YSA9IHdlYmtp
dF9zdXBwb3J0OjpHZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChmaWxlc1tpXSk7Cisg
ICAgICAgIGl0ZW0uZmlsZW5hbWVEYXRhID0gbV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1dGVXZWJTdHJp
bmdGcm9tVVRGOFBhdGgoZmlsZXNbaV0pOwogICAgICAgICBjdXJyZW50RHJhZ0RhdGEuYWRkSXRl
bShpdGVtKTsKICAgICAgICAgYWJzb2x1dGVGaWxlbmFtZXNbaV0gPSBpdGVtLmZpbGVuYW1lRGF0
YTsKICAgICB9CkBAIC0xMDE0LDcgKzEwMDgsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpzZW5kQ3Vy
cmVudFRvdWNoRXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudDo6VHlwZSB0eXBlKQogICAgIFdlYlRv
dWNoRXZlbnQgdG91Y2hFdmVudDsKICAgICB0b3VjaEV2ZW50LnR5cGUgPSB0eXBlOwogICAgIHRv
dWNoRXZlbnQubW9kaWZpZXJzID0gdG91Y2hNb2RpZmllcnM7Ci0gICAgdG91Y2hFdmVudC50aW1l
U3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpOworICAgIHRvdWNoRXZlbnQu
dGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAg
ICAgdG91Y2hFdmVudC50b3VjaGVzTGVuZ3RoID0gdG91Y2hQb2ludHMuc2l6ZSgpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b3VjaFBvaW50cy5zaXplKCk7ICsraSkKICAgICAgICAg
dG91Y2hFdmVudC50b3VjaGVzW2ldID0gdG91Y2hQb2ludHNbaV07CkBAIC0xMDU0LDcgKzEwNDgs
NyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpoYW5kbGVNb3VzZVdoZWVsKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KgogICAgICAgICBoYXNQcmVjaXNlU2Nyb2xsaW5n
RGVsdGFzID0gYXJndW1lbnRzWzNdLnRvQm9vbGVhbigpOwogCiAgICAgV2ViTW91c2VXaGVlbEV2
ZW50IGV2ZW50OwotICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWws
IHByZXNzZWRCdXR0b24sIGxhc3RNb3VzZVBvcywgJmV2ZW50KTsKKyAgICBpbml0TW91c2VFdmVu
dChXZWJJbnB1dEV2ZW50OjpNb3VzZVdoZWVsLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3Ms
ICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgZXZlbnQu
d2hlZWxUaWNrc1ggPSBzdGF0aWNfY2FzdDxmbG9hdD4oaG9yaXpvbnRhbCk7CiAgICAgZXZlbnQu
d2hlZWxUaWNrc1kgPSBzdGF0aWNfY2FzdDxmbG9hdD4odmVydGljYWwpOwogICAgIGV2ZW50LmRl
bHRhWCA9IGV2ZW50LndoZWVsVGlja3NYOwpAQCAtMTIxNyw3ICsxMjExLDcgQEAgdm9pZCBFdmVu
dFNlbmRlcjo6Z2VzdHVyZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSwgY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JgogCiAgICAgZXZlbnQuZ2xvYmFsWCA9IGV2ZW50Lng7CiAgICAgZXZlbnQu
Z2xvYmFsWSA9IGV2ZW50Lnk7Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJl
bnRFdmVudFRpbWVTZWMoKTsKKyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVu
dEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZl
bnQoZXZlbnQpOwogfQogCkBAIC0xMjI5LDcgKzEyMjMsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpn
ZXN0dXJlRmxpbmdDYW5jZWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbgogCiAgICAgV2ViR2VzdHVyZUV2ZW50IGV2ZW50OwogICAgIGV2ZW50LnR5cGUgPSBXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5jZWw7Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25k
cyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRz
ID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhh
bmRsZUlucHV0RXZlbnQoZXZlbnQpOwogfQogCkBAIC0xMjUzLDcgKzEyNDcsNyBAQCB2b2lkIEV2
ZW50U2VuZGVyOjpnZXN0dXJlRmxpbmdTdGFydChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudAogCiAgICAgZXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WCA9
IHN0YXRpY19jYXN0PGZsb2F0Pihhcmd1bWVudHNbMl0udG9Eb3VibGUoKSk7CiAgICAgZXZlbnQu
ZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WSA9IHN0YXRpY19jYXN0PGZsb2F0Pihhcmd1bWVudHNb
M10udG9Eb3VibGUoKSk7Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRF
dmVudFRpbWVTZWMoKTsKKyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2
ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQo
ZXZlbnQpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9LZXlDb2RlTWFwcGluZy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9LZXlDb2RlTWFwcGluZy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjA2
ZWY2MzQwZjc5YzQ0NjY0NzU0NjAxNWJkNGRkYWYxMGQ3MjA1ZQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBw
aW5nLmNwcApAQCAtMCwwICsxLDI0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJL
ZXlDb2RlTWFwcGluZy5oIgorCituYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CisKK2ludCBOYXRp
dmVLZXlDb2RlRm9yV2luZG93c0tleUNvZGUoaW50IGtleXN5bSkKK3sKKyNpZiBPUyhMSU5VWCkg
JiYgVVNFKEdUSykKKyAgICAvLyBTZWUgL3Vzci9zaGFyZS9YMTEveGtiL2tleWNvZGVzLyoKKyAg
ICBzdGF0aWMgY29uc3QgaW50IGFzY2lpVG9LZXlDb2RlW10gPSB7CisgICAgICAgIDAsCisgICAg
ICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisg
ICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDIyLAorICAgICAgICAyMywKKyAgICAgICAg
MCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMzYsCisgICAgICAgIDAsCisgICAg
ICAgIDAsCisgICAgICAgIDUwLAorICAgICAgICAzNywKKyAgICAgICAgNjQsCisgICAgICAgIDEy
NywKKyAgICAgICAgNjYsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAg
ICAgIDAsCisgICAgICAgIDEzMSwKKyAgICAgICAgMCwKKyAgICAgICAgOSwKKyAgICAgICAgMTAw
LAorICAgICAgICAxMDIsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDY1LCAvLyAn
ICcKKyAgICAgICAgMTEyLCAvLyAnIScKKyAgICAgICAgMTE3LCAvLyAnIicKKyAgICAgICAgMTE1
LCAvLyAnIycKKyAgICAgICAgMTEwLCAvLyAnJCcKKyAgICAgICAgMTEzLCAvLyAnJScKKyAgICAg
ICAgMTExLCAvLyAnJicKKyAgICAgICAgMTE0LCAvLyAnJycKKyAgICAgICAgMTE2LCAvLyAnKCcK
KyAgICAgICAgMCwgLy8gJyknCisgICAgICAgIDEwNywgLy8gJyonCisgICAgICAgIDAsIC8vICcr
JworICAgICAgICAwLCAvLyAnLCcKKyAgICAgICAgMTE4LCAvLyAnLScKKyAgICAgICAgMTE5LCAv
LyAnLicKKyAgICAgICAgMTQ2LCAvLyAnLycKKyAgICAgICAgMTksIC8vICcwJworICAgICAgICAx
MCwgLy8gJzEnCisgICAgICAgIDExLCAvLyAnMicKKyAgICAgICAgMTIsIC8vICczJworICAgICAg
ICAxMywgLy8gJzQnCisgICAgICAgIDE0LCAvLyAnNScKKyAgICAgICAgMTUsIC8vICc2JworICAg
ICAgICAxNiwgLy8gJzcnCisgICAgICAgIDE3LCAvLyAnOCcKKyAgICAgICAgMTgsIC8vICc5Jwor
ICAgICAgICAwLCAvLyAnOicKKyAgICAgICAgMCwgLy8gJzsnCisgICAgICAgIDAsIC8vICc8Jwor
ICAgICAgICAwLCAvLyAnPScKKyAgICAgICAgMCwgLy8gJz4nCisgICAgICAgIDAsIC8vICc/Jwor
ICAgICAgICAwLCAvLyAnQCcKKyAgICAgICAgMzgsIC8vICdBJworICAgICAgICA1NiwgLy8gJ0In
CisgICAgICAgIDU0LCAvLyAnQycKKyAgICAgICAgNDAsIC8vICdEJworICAgICAgICAyNiwgLy8g
J0UnCisgICAgICAgIDQxLCAvLyAnRicKKyAgICAgICAgNDIsIC8vICdHJworICAgICAgICA0Mywg
Ly8gJ0gnCisgICAgICAgIDMxLCAvLyAnSScKKyAgICAgICAgNDQsIC8vICdKJworICAgICAgICA0
NSwgLy8gJ0snCisgICAgICAgIDQ2LCAvLyAnTCcKKyAgICAgICAgNTgsIC8vICdNJworICAgICAg
ICA1NywgLy8gJ04nCisgICAgICAgIDMyLCAvLyAnTycKKyAgICAgICAgMzMsIC8vICdQJworICAg
ICAgICAyNCwgLy8gJ1EnCisgICAgICAgIDI3LCAvLyAnUicKKyAgICAgICAgMzksIC8vICdTJwor
ICAgICAgICAyOCwgLy8gJ1QnCisgICAgICAgIDMwLCAvLyAnVScKKyAgICAgICAgNTUsIC8vICdW
JworICAgICAgICAyNSwgLy8gJ1cnCisgICAgICAgIDUzLCAvLyAnWCcKKyAgICAgICAgMjksIC8v
ICdZJworICAgICAgICA1MiwgLy8gJ1onCisgICAgICAgIDEzMywgLy8gJ1snCisgICAgICAgIDEz
NCwgLy8gJ1wnCisgICAgICAgIDEzNSwgLy8gJ10nCisgICAgICAgIDAsIC8vICdeJworICAgICAg
ICAwLCAvLyAnXycKKyAgICAgICAgOTAsIC8vICdgJworICAgICAgICAzOCwgLy8gJ2EnCisgICAg
ICAgIDU2LCAvLyAnYicKKyAgICAgICAgNTQsIC8vICdjJworICAgICAgICA0MCwgLy8gJ2QnCisg
ICAgICAgIDI2LCAvLyAnZScKKyAgICAgICAgNDEsIC8vICdmJworICAgICAgICA0MiwgLy8gJ2cn
CisgICAgICAgIDQzLCAvLyAnaCcKKyAgICAgICAgMzEsIC8vICdpJworICAgICAgICA0NCwgLy8g
J2onCisgICAgICAgIDQ1LCAvLyAnaycKKyAgICAgICAgNDYsIC8vICdsJworICAgICAgICA1OCwg
Ly8gJ20nCisgICAgICAgIDU3LCAvLyAnbicKKyAgICAgICAgMzIsIC8vICdvJworICAgICAgICAz
MywgLy8gJ3AnCisgICAgICAgIDI0LCAvLyAncScKKyAgICAgICAgMjcsIC8vICdyJworICAgICAg
ICAzOSwgLy8gJ3MnCisgICAgICAgIDI4LCAvLyAndCcKKyAgICAgICAgMzAsIC8vICd1JworICAg
ICAgICA1NSwgLy8gJ3YnCisgICAgICAgIDI1LCAvLyAndycKKyAgICAgICAgNTMsIC8vICd4Jwor
ICAgICAgICAyOSwgLy8gJ3knCisgICAgICAgIDUyLCAvLyAneicKKyAgICAgICAgOTYsIC8vICd7
JworICAgICAgICAwLCAvLyAnfCcKKyAgICAgICAgMCwgLy8gJ30nCisgICAgICAgIDAsIC8vICd+
JworICAgICAgICAwLCAvLyBERUwKKyAgICB9OworCisgICAgaWYgKGtleXN5bSA8PSAxMjcpCisg
ICAgICAgIHJldHVybiBhc2NpaVRvS2V5Q29kZVtrZXlzeW1dOworCisgICAgc3dpdGNoIChrZXlz
eW0pIHsKKyAgICBjYXNlIFZLRVlfUFJJT1I6CisgICAgICAgIHJldHVybiAxMTI7CisgICAgY2Fz
ZSBWS0VZX05FWFQ6CisgICAgICAgIHJldHVybiAxMTc7CisgICAgY2FzZSBWS0VZX0VORDoKKyAg
ICAgICAgcmV0dXJuIDExNTsKKyAgICBjYXNlIFZLRVlfSE9NRToKKyAgICAgICAgcmV0dXJuIDEx
MDsKKyAgICBjYXNlIFZLRVlfTEVGVDoKKyAgICAgICAgcmV0dXJuIDExMzsKKyAgICBjYXNlIFZL
RVlfVVA6CisgICAgICAgIHJldHVybiAxMTE7CisgICAgY2FzZSBWS0VZX1JJR0hUOgorICAgICAg
ICByZXR1cm4gMTE0OworICAgIGNhc2UgVktFWV9ET1dOOgorICAgICAgICByZXR1cm4gMTE2Owor
ICAgIGNhc2UgVktFWV9TTkFQU0hPVDoKKyAgICAgICAgcmV0dXJuIDEwNzsKKyAgICBjYXNlIFZL
RVlfSU5TRVJUOgorICAgICAgICByZXR1cm4gMTE4OworICAgIGNhc2UgVktFWV9ERUxFVEU6Cisg
ICAgICAgIHJldHVybiAxMTk7CisgICAgY2FzZSBWS0VZX0FQUFM6CisgICAgICAgIHJldHVybiAx
MzU7CisgICAgY2FzZSBWS0VZX0YxOgorICAgIGNhc2UgVktFWV9GMSArIDE6CisgICAgY2FzZSBW
S0VZX0YxICsgMjoKKyAgICBjYXNlIFZLRVlfRjEgKyAzOgorICAgIGNhc2UgVktFWV9GMSArIDQ6
CisgICAgY2FzZSBWS0VZX0YxICsgNToKKyAgICBjYXNlIFZLRVlfRjEgKyA2OgorICAgIGNhc2Ug
VktFWV9GMSArIDc6CisgICAgY2FzZSBWS0VZX0YxICsgODoKKyAgICBjYXNlIFZLRVlfRjEgKyA5
OgorICAgIGNhc2UgVktFWV9GMSArIDEwOgorICAgIGNhc2UgVktFWV9GMSArIDExOgorICAgIGNh
c2UgVktFWV9GMSArIDEyOgorICAgIGNhc2UgVktFWV9GMSArIDEzOgorICAgIGNhc2UgVktFWV9G
MSArIDE0OgorICAgIGNhc2UgVktFWV9GMSArIDE1OgorICAgIGNhc2UgVktFWV9GMSArIDE2Ogor
ICAgIGNhc2UgVktFWV9GMSArIDE3OgorICAgIGNhc2UgVktFWV9GMSArIDE4OgorICAgIGNhc2Ug
VktFWV9GMSArIDE5OgorICAgIGNhc2UgVktFWV9GMSArIDIwOgorICAgIGNhc2UgVktFWV9GMSAr
IDIxOgorICAgIGNhc2UgVktFWV9GMSArIDIyOgorICAgIGNhc2UgVktFWV9GMSArIDIzOgorICAg
ICAgICByZXR1cm4gNjcgKyAoa2V5c3ltIC0gVktFWV9GMSk7CisgICAgY2FzZSBWS0VZX0xTSElG
VDoKKyAgICAgICAgcmV0dXJuIDUwOworICAgIGNhc2UgVktFWV9SU0hJRlQ6CisgICAgICAgIHJl
dHVybiA2MjsKKyAgICBjYXNlIFZLRVlfTENPTlRST0w6CisgICAgICAgIHJldHVybiAzNzsKKyAg
ICBjYXNlIFZLRVlfUkNPTlRST0w6CisgICAgICAgIHJldHVybiAxMDU7CisgICAgY2FzZSBWS0VZ
X0xNRU5VOgorICAgICAgICByZXR1cm4gNjQ7CisgICAgY2FzZSBWS0VZX1JNRU5VOgorICAgICAg
ICByZXR1cm4gMTA4OworCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5k
aWYKK30KKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvS2V5Q29kZU1hcHBpbmcuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBwaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc0NjlmYWM0
YTVjMTE1MDJjOTM1ZTFkZDI4ZGZlNzQyYjhiNmFlMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBwaW5nLmgK
QEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgS2V5Q29kZU1hcHBpbmdfaAorI2RlZmluZSBLZXlDb2Rl
TWFwcGluZ19oCisKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKworLy8gVGhlIGtleWNvZGVz
IG1hdGNoIHRoZSB2YWx1ZXMgb2YgdGhlIHZpcnR1YWwga2V5Y29kZXMgZm91bmQgaGVyZSBodHRw
Oi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2RkMzc1
NzMxKHY9dnMuODUpLmFzcHgKK2VudW0geworICAgIFZLRVlfUkVUVVJOICAgPSAweDBELAorICAg
IFZLRVlfUFJJT1IgICAgPSAweDIxLAorICAgIFZLRVlfTkVYVCAgICAgPSAweDIyLAorICAgIFZL
RVlfRU5EICAgICAgPSAweDIzLAorICAgIFZLRVlfSE9NRSAgICAgPSAweDI0LAorICAgIFZLRVlf
TEVGVCAgICAgPSAweDI1LAorICAgIFZLRVlfVVAgICAgICAgPSAweDI2LAorICAgIFZLRVlfUklH
SFQgICAgPSAweDI3LAorICAgIFZLRVlfRE9XTiAgICAgPSAweDI4LAorICAgIFZLRVlfU05BUFNI
T1QgPSAweDJDLAorICAgIFZLRVlfSU5TRVJUICAgPSAweDJELAorICAgIFZLRVlfREVMRVRFICAg
PSAweDJFLAorICAgIFZLRVlfQVBQUyAgICAgPSAweDVELAorICAgIFZLRVlfRjEgICAgICAgPSAw
eDcwLAorICAgIFZLRVlfTFNISUZUICAgPSAweEEwLAorICAgIFZLRVlfUlNISUZUICAgPSAweEEx
LAorICAgIFZLRVlfTENPTlRST0wgPSAweEEyLAorICAgIFZLRVlfUkNPTlRST0wgPSAweEEzLAor
ICAgIFZLRVlfTE1FTlUgICAgPSAweEE0LAorICAgIFZLRVlfUk1FTlUgICAgPSAweEE1LAorfTsK
KworLy8gTWFwIGEgd2luZG93cyBrZXljb2RlIHRvIGEgbmF0aXZlIGtleWNvZGUgb24gT1MoTElO
VVgpICYmIFVTRShHVEspLgoraW50IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29kZShpbnQg
a2V5c3ltKTsKKworfQorCisjZW5kaWYgLy8gS2V5Q29kZU1hcHBpbmdfaApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRl
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVs
ZWdhdGUuaAppbmRleCBlNjI2ZWNjZDAxZTIwNjA5NzM3MjJjMDQ3ODNjM2IxM2UzMWMwODIzLi4w
NDk4ZmNiM2YzZjEzNjQ5NjMzZDUyZTE2YWExOGZhMjM5YTIwNzUyIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVs
ZWdhdGUuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBvc3RU
YXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RE
ZWxheWVkVGFzayhXZWJUZXN0UnVubmVyOjpXZWJUYXNrKiwgbG9uZyBsb25nIG1zKSA9IDA7CiAg
ICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShj
b25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5h
bWVzKSA9IDA7CisgICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vj
b25kKCkgPSAwOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJT
dHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpID0gMDsKIH07CiAKICNl
bmRpZiAvLyBUZXN0RGVsZWdhdGVfaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCBlNmVhZDE1
NTE1N2ExYjAzNTFlZjkxNTI0ZmI3NGZhYTg0ZTVlNWJlLi5mMGRhNzk4MzExN2VjMzgxMjc2YjVh
NzhhNTVlNDhlYWRkZDcxZTIwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMzIsNTEgKzMy
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXN0UnVubmVyLmgiCiAKLSNp
bmNsdWRlICJXZWJBbmltYXRpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiV2ViQmluZGluZ3Mu
aCIKLSNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgotI2luY2x1ZGUgIldlYkRldmljZU9y
aWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmgi
Ci0jaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJXZWJFbGVtZW50LmgiCi0jaW5j
bHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJXZWJGcmFtZS5oIgotI2luY2x1ZGUg
IldlYkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgotI2luY2x1ZGUgIldlYklEQkZhY3RvcnkuaCIK
LSNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKLSNpbmNsdWRlICJXZWJJbnRlbnQuaCIKLSNp
bmNsdWRlICJXZWJJbnRlbnRSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiV2ViS2l0LmgiCi0jaW5jbHVk
ZSAiV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCi0jaW5jbHVkZSAiV2ViUHJpbnRQYXJhbXMu
aCIKLSNpbmNsdWRlICJXZWJTY3JpcHRTb3VyY2UuaCIKLSNpbmNsdWRlICJXZWJTZWN1cml0eVBv
bGljeS5oIgotI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiV2ViU3Vycm91bmRp
bmdUZXh0LmgiCi0jaW5jbHVkZSAiV2ViVmlldy5oIgotI2luY2x1ZGUgIldlYldvcmtlckluZm8u
aCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJEYXRhLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU2l6ZS5oIgot
I2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotI2luY2x1ZGUgInY4L2luY2x1ZGUvdjguaCIK
LSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgotI2luY2x1ZGUgPGFs
Z29yaXRobT4KLSNpbmNsdWRlIDxjbG9jYWxlPgotI2luY2x1ZGUgPGNzdGRsaWI+Ci0jaW5jbHVk
ZSA8bGltaXRzPgotI2luY2x1ZGUgPHNzdHJlYW0+Ci0jaW5jbHVkZSA8d3RmL093bkFycmF5UHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBPUyhMSU5VWCkgfHwg
T1MoQU5EUk9JRCkKLSNpbmNsdWRlICJsaW51eC9XZWJGb250UmVuZGVyaW5nLmgiCi0jZW5kaWYK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKLQogVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcigpCiB7CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmgKaW5kZXggMzllMTlkNTczNjVkMDNjNjY4NDFmODdmMjZhY2Y0NTQxZWUwN2Q3
YS4uNTAzMjcxYjVkOWI1Y2VlMDk5OGJjYTg1MmMzY2EwOTM3NTBhNjVlMiAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RS
dW5uZXIuaApAQCAtMzMsMjEgKzMzLDYgQEAKICNkZWZpbmUgVGVzdFJ1bm5lcl9oCiAKICNpbmNs
dWRlICJDcHBCb3VuZENsYXNzLmgiCi0jaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50
LmgiCi0jaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlvbi5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dl
YkFycmF5QnVmZmVyVmlldy5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgotI2lu
Y2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJHZW9sb2Nh
dGlvbkNsaWVudE1vY2s7Ci19Ci0KLW5hbWVzcGFjZSB3ZWJraXRfc3VwcG9ydCB7Ci1jbGFzcyBT
Y29wZWRUZW1wRGlyZWN0b3J5OwotfQogCiBjbGFzcyBUZXN0UnVubmVyIDogcHVibGljIENwcEJv
dW5kQ2xhc3MgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwCmlu
ZGV4IGY3ZGIxNzE5OGU2N2Y4YThkODMyMGRlNjVlYTRiNDA5YjYxOTBiM2YuLjlhODY5NTNjM2Ni
ODUzNzQwZWFhNzhiYWZmYTE4OGM0YjcyNzI4ZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50
ZXJmYWNlcy5jcHAKQEAgLTY3LDYgKzY3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBw
b3N0VGFzayhXZWJUYXNrKik7CiAgICAgdmlydHVhbCB2b2lkIHBvc3REZWxheWVkVGFzayhXZWJU
YXNrKiwgbG9uZyBsb25nIG1zKTsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyByZWdpc3Rlcklzb2xh
dGVkRmlsZVN5c3RlbShjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFt
ZXMpOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgp
OworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9t
VVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpOwogCiBwcml2YXRlOgogICAgIFRlc3RJ
bnRlcmZhY2VzIG1faW50ZXJmYWNlczsKQEAgLTE0Nyw2ICsxNDksMTYgQEAgV2ViU3RyaW5nIFdl
YlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6cmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29u
c3QgV2ViVmVjdG8KICAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+cmVnaXN0ZXJJc29sYXRlZEZpbGVT
eXN0ZW0oYWJzb2x1dGVGaWxlbmFtZXMpOwogfQogCitsb25nIGxvbmcgV2ViVGVzdEludGVyZmFj
ZXM6OkludGVybmFsOjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKQoreworICAgIHJldHVy
biBtX2RlbGVnYXRlLT5nZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsKK30KKworV2ViS2l0
OjpXZWJTdHJpbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRBYnNvbHV0ZVdlYlN0
cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKK3sKKyAgICByZXR1cm4g
bV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgocGF0aCk7Cit9CisK
IFdlYlRlc3RJbnRlcmZhY2VzOjpXZWJUZXN0SW50ZXJmYWNlcygpCiB7CiAgICAgbV9pbnRlcm5h
bCA9IG5ldyBJbnRlcm5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmNwcAppbmRleCBkMzc2MjJkYjk5NTg4Zjc5MTViMjQ0ZWY5Y2I3ZDA1ZTIxMmZjNzMx
Li44N2ViMjUwOGJjNDQzNjVmNjMxNmIyN2Y1MjA5YWY4NDkxMWQ3OTM5IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xNTAwLDYgKzE1MDAs
MTYgQEAgV2ViU3RyaW5nIFdlYlZpZXdIb3N0OjpyZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShj
b25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgYWIKICAgICByZXR1cm4gd2Via2l0X3N1cHBvcnQ6
OlJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGFic29sdXRlRmlsZW5hbWVzKTsKIH0KIAorbG9u
ZyBsb25nIFdlYlZpZXdIb3N0OjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKQoreworICAg
IHJldHVybiB3ZWJraXRfc3VwcG9ydDo6R2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCk7Cit9
CisKK1dlYktpdDo6V2ViU3RyaW5nIFdlYlZpZXdIb3N0OjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zy
b21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKK3sKKyAgICByZXR1cm4gd2Via2l0
X3N1cHBvcnQ6OkdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKHBhdGgpOworfQorCiAv
LyBQdWJsaWMgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdlYlZpZXdIb3N0OjpXZWJWaWV3SG9zdChUZXN0U2hl
bGwqIHNoZWxsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgK
aW5kZXggOWFmNDdlMDc4Zjc2YWYwN2M0NDAwODc2ZmE5N2FiOWE4NTRkOTUyNy4uODYwMDcxOTRi
MDQzNTY3MmMwMTQ5OTlkNTg2MDUzZWNmZjVmOGI0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xMzksNiArMTM5LDggQEAgY2xhc3MgV2ViVmll
d0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJG
cmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soV2ViVGVzdFJ1bm5lcjo6V2Vi
VGFzayopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2soV2ViVGVz
dFJ1bm5lcjo6V2ViVGFzayosIGxvbmcgbG9uZyBtcykgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBX
ZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6
OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2ViU3Ry
aW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKSBPVkVSUklERTsKIAogICAg
IC8vIE5hdmlnYXRpb25Ib3N0CiAgICAgdmlydHVhbCBib29sIG5hdmlnYXRlKGNvbnN0IFRlc3RO
YXZpZ2F0aW9uRW50cnkmLCBib29sIHJlbG9hZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170742</attachid>
            <date>2012-10-25 15:18:45 -0700</date>
            <delta_ts>2012-10-29 02:55:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100344-20121026001717.patch</filename>
            <type>text/plain</type>
            <size>34461</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNDI5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzIyNzhjNzY0NDc5YThjZDM3NDEwYjRkZDg0ZThjMzhk
Yjk1OWM2ZC4uNWViMWZkNGNmNmVkMDJiNTcwMmM5N2QxYTA3ZjM5YmI2MmM3YjQyOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDEyLTEwLTI1ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHJlbWFpbmluZyB1c2FnZXMgb2Ygd2Via2l0X3N1
cHBvcnQgZnJvbSB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBtb3N0IGltcG9ydGFudCBwYXJ0IGlzIHRvIG5vdCBy
ZWx5IG9uIGNhbGxpbmcgb3V0IHRvIGdkay9YMTEgdG8KKyAgICAgICAgdHJhbnNsYXRlIGtleWNv
ZGVzIHRvIGhhcmR3YXJlIGtleWNvZGVzLCBhcyB0aGlzIGlzIG5vdCBwb3NzaWJsZSBpbnNpZGUK
KyAgICAgICAgdGhlIHNhbmRib3guCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS5neXBpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RS
dW5uZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICh3ZWJraXRfc3VwcG9ydCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVz
dERlbGVnYXRlLmg6CisgICAgICAgIChXZWJUZXN0RGVsZWdhdGUpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuaDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHA6
CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50
U2VuZGVyOjpkb0RyYWdEcm9wKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVy
Ojp1cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2
ZW50U2VuZGVyOjptb3VzZURvd24pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5k
ZXI6Om1vdXNlVXApOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Om1vdXNl
TW92ZVRvKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjprZXlEb3duKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpyZXBsYXlTYXZlZEV2ZW50cyk6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Y29udGV4dENsaWNrKToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpiZWdpbkRyYWdXaXRoRmlsZXMpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OnNlbmRDdXJyZW50VG91Y2hFdmVu
dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6aGFuZGxlTW91c2VXaGVl
bCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Z2VzdHVyZUV2ZW50KToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpnZXN0dXJlRmxpbmdDYW5jZWwp
OgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omdlc3R1cmVGbGluZ1N0YXJ0
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9LZXlD
b2RlTWFwcGluZy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAg
IChXZWJUZXN0UnVubmVyOjpOYXRpdmVLZXlDb2RlRm9yV2luZG93c0tleUNvZGUpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBwaW5n
Lmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuaC4KKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oOgorICAg
ICAgICAoVGVzdERlbGVnYXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwOgorICAg
ICAgICAoV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vj
b25kKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4
UGF0aCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
OgorICAgICAgICAoV2ViVmlld0hvc3Q6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCk6Cisg
ICAgICAgIChXZWJWaWV3SG9zdDo6Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisgICAgICAg
IChXZWJWaWV3SG9zdCk6CisKIDIwMTItMTAtMjQgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgbnJ3dDogdHJ1bmNhdGUgbWV0ZXIgbGluZXMgcHJvcGVybHkg
b24gd2luZG93cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUuZ3lwaSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKaW5kZXgg
MjY3MjJlY2U3Mjk2ZWVlZjhiMWM4ZmYzODBmNmM4NGE2ZTQ4MGVlMC4uOTkxNzMyOGE2YTFiZjhh
MDY5YTlhZjlmZDUyZDg4YmY0OGQzNmM2ZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS5neXBpCkBAIC04Myw2ICs4Myw4IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5oJywKKyAgICAgICAgICAgICdjaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9LZXlDb2RlTWFwcGluZy5jcHAnLAorICAgICAgICAgICAgJ2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBwaW5nLmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGV4dElucHV0Q29udHJvbGxlci5jcHAnLApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCmluZGV4IGVjNDc3OGZkNWM0
NmY4ZjMyODc1OGExNTdhMzI4MjE0NTRiNWIyMjEuLmNjZGZjNDM5NGRmNmRkYzllMDRiZjE1M2Y1
OTU3MDdjMWI3NmYwYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0RSVFRlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRU
ZXN0UnVubmVyLmgKQEAgLTQzLDcgKzQzLDIzIEBACiAjZGVmaW5lIERSVFRlc3RSdW5uZXJfaAog
CiAjaW5jbHVkZSAiVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIgorI2luY2x1ZGUgIldlYkRl
bGl2ZXJlZEludGVudENsaWVudC5oIgogI2luY2x1ZGUgIldlYlRhc2suaCIKKyNpbmNsdWRlICJX
ZWJUZXh0RGlyZWN0aW9uLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViQXJyYXlCdWZmZXJWaWV3
LmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAicGxhdGZvcm0v
V2ViVVJMLmgiCisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkdlb2xvY2F0aW9uQ2xpZW50TW9jazsK
K30KKworbmFtZXNwYWNlIHdlYmtpdF9zdXBwb3J0IHsKK2NsYXNzIFNjb3BlZFRlbXBEaXJlY3Rv
cnk7Cit9CisKIAogY2xhc3MgVGVzdFNoZWxsOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxl
Z2F0ZS5oCmluZGV4IDZlMjE4ODEwN2JhOTc0NWJlNmQ5NTMzODkyZTRhNzRmN2YzZTYwMDUuLmFi
NDdkNGY5ZGNlYTZkN2VjOTE4YmRkMWUyZWY0ZGVmMmM1ODJlMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0
ZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGlj
L1dlYlRlc3REZWxlZ2F0ZS5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdlYlRhc2sqLCBsb25nIGxvbmcgbXMpID0gMDsKIAogICAg
IHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgcmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29u
c3QgV2ViS2l0OjpXZWJWZWN0b3I8V2ViS2l0OjpXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1l
cykgPSAwOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29u
ZCgpID0gMDsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2ViU3Ry
aW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKSA9IDA7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9D
cHBWYXJpYW50LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9DcHBWYXJpYW50LmgKaW5kZXggNjBjYzYyNzFlY2ZhZDllZDY4YmRlNDI4ODUxNTM4NDI2ZDZi
ODQwMy4uNDdmZDQ2NmFmZjMyZDc5Y2VjYjQ3MDY2YTczYjdhNWVjNWNjMDBiOSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFu
dC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0Nw
cFZhcmlhbnQuaApAQCAtNDMsNyArNDMsNiBAQAogI2RlZmluZSBDcHBWYXJpYW50X2gKIAogI2lu
Y2x1ZGUgIldlYkJpbmRpbmdzLmgiCi0jaW5jbHVkZSAid2Via2l0L3N1cHBvcnQvd2Via2l0X3N1
cHBvcnQuaCIKICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9F
dmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9FdmVudFNlbmRlci5jcHAKaW5kZXggMmY0YTA1NTRjNWMzNmQzZWZiNjkwZjQ3ZThjMmY4
OTNjYmZhZjkzZS4uMmEzMDBhODAwZmI4NzllOTEyNjQzMDgyYWQ0NWQwY2U3ZDBiOWYxMyAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZl
bnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0V2ZW50U2VuZGVyLmNwcApAQCAtNDMsMTYgKzQzLDE3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnRTZW5kZXIuaCIKIAorI2luY2x1ZGUgIktleUNvZGVNYXBw
aW5nLmgiCiAjaW5jbHVkZSAiVGVzdERlbGVnYXRlLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1l
bnVEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ09wZXJhdGlvbi5oIgorI2luY2x1ZGUgIldlYkV2
ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAiV2ViVG91Y2hQb2ludC5oIgogI2luY2x1ZGUgIldlYlZp
ZXcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJEcmFnRGF0YS5oIgogI2luY2x1ZGUgInBsYXRm
b3JtL1dlYlBvaW50LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVk
ZSAicGxhdGZvcm0vV2ViVmVjdG9yLmgiCi0jaW5jbHVkZSAid2Via2l0L3N1cHBvcnQvd2Via2l0
X3N1cHBvcnQuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5n
RXh0cmFzLmg+CiAKQEAgLTEyNSw5ICsxMjYsOSBAQCBpbmxpbmUgYm9vbCBvdXRzaWRlTXVsdGlD
bGlja1JhZGl1cyhjb25zdCBXZWJQb2ludCYgYSwgY29uc3QgV2ViUG9pbnQmIGIpCiAvLyBkZXBl
bmRlbnQgKGUuZy4sIGRyYWdnaW5nIGhhcyBhIHRpbWVvdXQgdnMgc2VsZWN0aW9uKS4KIHVpbnQz
MiB0aW1lT2Zmc2V0TXMgPSAwOwogCi1kb3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpCitk
b3VibGUgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogewot
ICAgIHJldHVybiAod2Via2l0X3N1cHBvcnQ6OkdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgp
ICsgdGltZU9mZnNldE1zKSAvIDEwMDAuMDsKKyAgICByZXR1cm4gKGRlbGVnYXRlLT5nZXRDdXJy
ZW50VGltZUluTWlsbGlzZWNvbmQoKSArIHRpbWVPZmZzZXRNcykgLyAxMDAwLjA7CiB9CiAKIHZv
aWQgYWR2YW5jZUV2ZW50VGltZShpbnQzMl90IGRlbHRhTXMpCkBAIC0xMzUsNyArMTM2LDcgQEAg
dm9pZCBhZHZhbmNlRXZlbnRUaW1lKGludDMyX3QgZGVsdGFNcykKICAgICB0aW1lT2Zmc2V0TXMg
Kz0gZGVsdGFNczsKIH0KIAotdm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBl
IHQsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJNb3Vz
ZUV2ZW50KiBlKQordm9pZCBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpUeXBlIHQsIFdl
Yk1vdXNlRXZlbnQ6OkJ1dHRvbiBiLCBjb25zdCBXZWJQb2ludCYgcG9zLCBXZWJNb3VzZUV2ZW50
KiBlLCBkb3VibGUgdHMpCiB7CiAgICAgZS0+dHlwZSA9IHQ7CiAgICAgZS0+YnV0dG9uID0gYjsK
QEAgLTE0NCw3ICsxNDUsNyBAQCB2b2lkIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5
cGUgdCwgV2ViTW91c2VFdmVudDo6QnV0dG9uIGIsIGNvbnN0IFdlYlBvaQogICAgIGUtPnkgPSBw
b3MueTsKICAgICBlLT5nbG9iYWxYID0gcG9zLng7CiAgICAgZS0+Z2xvYmFsWSA9IHBvcy55Owot
ICAgIGUtPnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCk7CisgICAg
ZS0+dGltZVN0YW1wU2Vjb25kcyA9IHRzOwogICAgIGUtPmNsaWNrQ291bnQgPSBjbGlja0NvdW50
OwogfQogCkBAIC0yMTQsMTYgKzIxNSwxNiBAQCBib29sIGdldEVkaXRDb21tYW5kKGNvbnN0IFdl
YktleWJvYXJkRXZlbnQmIGV2ZW50LCBzdHJpbmcqIG5hbWUpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIHN3aXRjaCAoZXZlbnQud2luZG93c0tleUNvZGUpIHsKLSAgICBjYXNlIHdlYmtp
dF9zdXBwb3J0OjpWS0VZX0xFRlQ6CisgICAgY2FzZSBWS0VZX0xFRlQ6CiAgICAgICAgICpuYW1l
ID0gIk1vdmVUb0JlZ2lubmluZ09mTGluZSI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ugd2Vi
a2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ6CisgICAgY2FzZSBWS0VZX1JJR0hUOgogICAgICAgICAq
bmFtZSA9ICJNb3ZlVG9FbmRPZkxpbmUiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIHdlYmtp
dF9zdXBwb3J0OjpWS0VZX1VQOgorICAgIGNhc2UgVktFWV9VUDoKICAgICAgICAgKm5hbWUgPSAi
TW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ugd2Vi
a2l0X3N1cHBvcnQ6OlZLRVlfRE9XTjoKKyAgICBjYXNlIFZLRVlfRE9XTjoKICAgICAgICAgKm5h
bWUgPSAiTW92ZVRvRW5kT2ZEb2N1bWVudCI7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6
CkBAIC0zNDksNyArMzUwLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6cmVzZXQoKQogdm9pZCBFdmVu
dFNlbmRlcjo6ZG9EcmFnRHJvcChjb25zdCBXZWJEcmFnRGF0YSYgZHJhZ0RhdGEsIFdlYkRyYWdP
cGVyYXRpb25zTWFzayBtYXNrKQogewogICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgaW5p
dE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBwcmVzc2VkQnV0dG9uLCBsYXN0
TW91c2VQb3MsICZldmVudCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91
c2VEb3duLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2
ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgV2ViUG9pbnQgY2xpZW50UG9pbnQoZXZlbnQu
eCwgZXZlbnQueSk7CiAgICAgV2ViUG9pbnQgc2NyZWVuUG9pbnQoZXZlbnQuZ2xvYmFsWCwgZXZl
bnQuZ2xvYmFsWSk7CiAgICAgY3VycmVudERyYWdEYXRhID0gZHJhZ0RhdGE7CkBAIC0zOTIsNyAr
MzkzLDcgQEAgaW50IEV2ZW50U2VuZGVyOjpnZXRCdXR0b25OdW1iZXJGcm9tU2luZ2xlQXJnKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzKQogCiB2b2lkIEV2ZW50U2VuZGVyOjp1cGRh
dGVDbGlja0NvdW50Rm9yQnV0dG9uKFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b25UeXBlKQog
ewotICAgIGlmICgoZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpIC0gbGFzdENsaWNrVGltZVNlYyA8
IG11bHRpcGxlQ2xpY2tUaW1lU2VjKQorICAgIGlmICgoZ2V0Q3VycmVudEV2ZW50VGltZVNlYyht
X2RlbGVnYXRlKSAtIGxhc3RDbGlja1RpbWVTZWMgPCBtdWx0aXBsZUNsaWNrVGltZVNlYykKICAg
ICAgICAgJiYgKCFvdXRzaWRlTXVsdGlDbGlja1JhZGl1cyhsYXN0TW91c2VQb3MsIGxhc3RDbGlj
a1BvcykpCiAgICAgICAgICYmIChidXR0b25UeXBlID09IGxhc3RCdXR0b25UeXBlKSkKICAgICAg
ICAgKytjbGlja0NvdW50OwpAQCAtNDIyLDcgKzQyMyw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Om1v
dXNlRG93bihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVz
dWx0CiAKICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwogICAgIHByZXNzZWRCdXR0b24gPSBidXR0
b25UeXBlOwotICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlRG93biwgYnV0
dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklu
cHV0RXZlbnQ6Ok1vdXNlRG93biwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdl
dEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIGlmIChhcmd1bWVudHMuc2l6
ZSgpID49IDIgJiYgKGFyZ3VtZW50c1sxXS5pc09iamVjdCgpIHx8IGFyZ3VtZW50c1sxXS5pc1N0
cmluZygpKSkKICAgICAgICAgYXBwbHlLZXlNb2RpZmllcnMoJihhcmd1bWVudHNbMV0pLCAmZXZl
bnQpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CkBAIC00NDgsNyAr
NDQ5LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6bW91c2VVcChjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgICAgICByZXBsYXlTYXZlZEV2ZW50
cygpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAg
IGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGJ1dHRvblR5cGUsIGxhc3RN
b3VzZVBvcywgJmV2ZW50KTsKKyAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6
TW91c2VVcCwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVu
dFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAy
ICYmIChhcmd1bWVudHNbMV0uaXNPYmplY3QoKSB8fCBhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkp
CiAgICAgICAgICAgICBhcHBseUtleU1vZGlmaWVycygmKGFyZ3VtZW50c1sxXSksICZldmVudCk7
CiAgICAgICAgIGRvTW91c2VVcChldmVudCk7CkBAIC00OTcsNyArNDk4LDcgQEAgdm9pZCBFdmVu
dFNlbmRlcjo6bW91c2VNb3ZlVG8oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENw
cFZhcmlhbnQqIHJlc3UKICAgICAgICAgbW91c2VFdmVudFF1ZXVlLmFwcGVuZChzYXZlZEV2ZW50
KTsKICAgICB9IGVsc2UgewogICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICBp
bml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIG1v
dXNlUG9zLCAmZXZlbnQpOworICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpN
b3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIG1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVu
dFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgICAgICBkb01vdXNlTW92ZShldmVudCk7CiAgICAg
fQogfQpAQCAtNTM1LDUwICs1MzYsNDMgQEAgdm9pZCBFdmVudFNlbmRlcjo6a2V5RG93bihjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgIGJv
b2wgbmVlZHNTaGlmdEtleU1vZGlmaWVyID0gZmFsc2U7CiAgICAgaWYgKCJcbiIgPT0gY29kZVN0
cikgewogICAgICAgICBnZW5lcmF0ZUNoYXIgPSB0cnVlOwotICAgICAgICB0ZXh0ID0gY29kZSA9
IHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JFVFVSTjsKKyAgICAgICAgdGV4dCA9IGNvZGUgPSBWS0VZ
X1JFVFVSTjsKICAgICB9IGVsc2UgaWYgKCJyaWdodEFycm93IiA9PSBjb2RlU3RyKQotICAgICAg
ICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUklHSFQ7CisgICAgICAgIGNvZGUgPSBWS0VZ
X1JJR0hUOwogICAgIGVsc2UgaWYgKCJkb3duQXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNv
ZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ET1dOOworICAgICAgICBjb2RlID0gVktFWV9ET1dO
OwogICAgIGVsc2UgaWYgKCJsZWZ0QXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3
ZWJraXRfc3VwcG9ydDo6VktFWV9MRUZUOworICAgICAgICBjb2RlID0gVktFWV9MRUZUOwogICAg
IGVsc2UgaWYgKCJ1cEFycm93IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1
cHBvcnQ6OlZLRVlfVVA7CisgICAgICAgIGNvZGUgPSBWS0VZX1VQOwogICAgIGVsc2UgaWYgKCJp
bnNlcnQiID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9J
TlNFUlQ7CisgICAgICAgIGNvZGUgPSBWS0VZX0lOU0VSVDsKICAgICBlbHNlIGlmICgiZGVsZXRl
IiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfREVMRVRF
OworICAgICAgICBjb2RlID0gVktFWV9ERUxFVEU7CiAgICAgZWxzZSBpZiAoInBhZ2VVcCIgPT0g
Y29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX1BSSU9SOworICAg
ICAgICBjb2RlID0gVktFWV9QUklPUjsKICAgICBlbHNlIGlmICgicGFnZURvd24iID09IGNvZGVT
dHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ORVhUOworICAgICAgICBj
b2RlID0gVktFWV9ORVhUOwogICAgIGVsc2UgaWYgKCJob21lIiA9PSBjb2RlU3RyKQotICAgICAg
ICBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfSE9NRTsKKyAgICAgICAgY29kZSA9IFZLRVlf
SE9NRTsKICAgICBlbHNlIGlmICgiZW5kIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Vi
a2l0X3N1cHBvcnQ6OlZLRVlfRU5EOworICAgICAgICBjb2RlID0gVktFWV9FTkQ7CiAgICAgZWxz
ZSBpZiAoInByaW50U2NyZWVuIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0gd2Via2l0X3N1
cHBvcnQ6OlZLRVlfU05BUFNIT1Q7CisgICAgICAgIGNvZGUgPSBWS0VZX1NOQVBTSE9UOwogICAg
IGVsc2UgaWYgKCJtZW51IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRo
aXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfQVBQUy4KLSAgICAgICAgY29kZSA9IDB4NUQ7Cisg
ICAgICAgIGNvZGUgPSBWS0VZX0FQUFM7CiAgICAgZWxzZSBpZiAoImxlZnRDb250cm9sIiA9PSBj
b2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6
OlZLRVlfTENPTlRST0wuCi0gICAgICAgIGNvZGUgPSAweEEyOworICAgICAgICBjb2RlID0gVktF
WV9MQ09OVFJPTDsKICAgICBlbHNlIGlmICgicmlnaHRDb250cm9sIiA9PSBjb2RlU3RyKQotICAg
ICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUkNPTlRS
T0wuCi0gICAgICAgIGNvZGUgPSAweEEzOworICAgICAgICBjb2RlID0gVktFWV9SQ09OVFJPTDsK
ICAgICBlbHNlIGlmICgibGVmdFNoaWZ0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTog
Q2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTFNISUZULgotICAgICAgICBjb2Rl
ID0gMHhBMDsKKyAgICAgICAgY29kZSA9IFZLRVlfTFNISUZUOwogICAgIGVsc2UgaWYgKCJyaWdo
dFNoaWZ0IiA9PSBjb2RlU3RyKQotICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Vi
a2l0X3N1cHBvcnQ6OlZLRVlfUlNISUZULgotICAgICAgICBjb2RlID0gMHhBMTsKKyAgICAgICAg
Y29kZSA9IFZLRVlfUlNISUZUOwogICAgIGVsc2UgaWYgKCJsZWZ0QWx0IiA9PSBjb2RlU3RyKQot
ICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTE1F
TlUuCi0gICAgICAgIGNvZGUgPSAweEE0OworICAgICAgICBjb2RlID0gVktFWV9MTUVOVTsKICAg
ICBlbHNlIGlmICgicmlnaHRBbHQiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFu
Z2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9STUVOVS4KLSAgICAgICAgY29kZSA9IDB4
QTU7CisgICAgICAgIGNvZGUgPSBWS0VZX1JNRU5VOwogICAgIGVsc2UgewogICAgICAgICAvLyBD
b21wYXJlIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB0aGUgZnVuY3Rpb24ta2V5IG5hbWVzIGRlZmlu
ZWQgYnkgdGhlCiAgICAgICAgIC8vIERPTSBzcGVjIChpLmUuICJGMSIsLi4uLCJGMjQiKS4gSWYg
dGhlIGlucHV0IHN0cmluZyBpcyBhIGZ1bmN0aW9uLWtleQpAQCAtNTg4LDcgKzU4Miw3IEBAIHZv
aWQgRXZlbnRTZW5kZXI6OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKICAgICAgICAgICAgIHNucHJpbnRmKGZ1bmN0aW9uQ2hhcnMs
IDEwLCAiRiVkIiwgaSk7CiAgICAgICAgICAgICBzdHJpbmcgZnVuY3Rpb25LZXlOYW1lKGZ1bmN0
aW9uQ2hhcnMpOwogICAgICAgICAgICAgaWYgKGZ1bmN0aW9uS2V5TmFtZSA9PSBjb2RlU3RyKSB7
Ci0gICAgICAgICAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0YxICsgKGkgLSAx
KTsKKyAgICAgICAgICAgICAgICBjb2RlID0gVktFWV9GMSArIChpIC0gMSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTYxMyw3ICs2MDcsNyBA
QCB2b2lkIEV2ZW50U2VuZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiAgICAgZXZlbnREb3duLm1vZGlmaWVycyA9IDA7CiAg
ICAgZXZlbnREb3duLndpbmRvd3NLZXlDb2RlID0gY29kZTsKICNpZiBPUyhMSU5VWCkgJiYgVVNF
KEdUSykKLSAgICBldmVudERvd24ubmF0aXZlS2V5Q29kZSA9IHdlYmtpdF9zdXBwb3J0OjpOYXRp
dmVLZXlDb2RlRm9yV2luZG93c0tleUNvZGUoY29kZSwgbmVlZHNTaGlmdEtleU1vZGlmaWVyKTsK
KyAgICBldmVudERvd24ubmF0aXZlS2V5Q29kZSA9IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5
Q29kZShjb2RlKTsKICNlbmRpZgogCiAgICAgaWYgKGdlbmVyYXRlQ2hhcikgewpAQCAtNzc1LDcg
Kzc2OSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnJlcGxheVNhdmVkRXZlbnRzKCkKICAgICAgICAg
c3dpdGNoIChlLnR5cGUpIHsKICAgICAgICAgY2FzZSBTYXZlZEV2ZW50OjpNb3VzZU1vdmU6IHsK
ICAgICAgICAgICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgICAgICBpbml0TW91c2VF
dmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIGUucG9zLCAmZXZl
bnQpOworICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VNb3Zl
LCBwcmVzc2VkQnV0dG9uLCBlLnBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1f
ZGVsZWdhdGUpKTsKICAgICAgICAgICAgIGRvTW91c2VNb3ZlKGV2ZW50KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CkBAIC03ODQsNyArNzc4LDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6
cmVwbGF5U2F2ZWRFdmVudHMoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU2F2
ZWRFdmVudDo6TW91c2VVcDogewogICAgICAgICAgICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAg
ICAgICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIGUuYnV0dG9u
VHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQo
V2ViSW5wdXRFdmVudDo6TW91c2VVcCwgZS5idXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVu
dCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgICAgICAgICBkb01v
dXNlVXAoZXZlbnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTg0MywxMCAr
ODM3LDEwIEBAIHZvaWQgRXZlbnRTZW5kZXI6OmNvbnRleHRDbGljayhjb25zdCBDcHBBcmd1bWVu
dExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzCiAgICAgLy8gR2VuZXJhdGUgcmlnaHQg
bW91c2UgZG93biBhbmQgdXAuCiAgICAgV2ViTW91c2VFdmVudCBldmVudDsKICAgICBwcmVzc2Vk
QnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQ7Ci0gICAgaW5pdE1vdXNlRXZlbnQo
V2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpCdXR0b25SaWdodCwgbGFz
dE1vdXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1v
dXNlRG93biwgV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2ZW50
LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICB3ZWJ2aWV3KCktPmhh
bmRsZUlucHV0RXZlbnQoZXZlbnQpOwogCi0gICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVu
dDo6TW91c2VVcCwgV2ViTW91c2VFdmVudDo6QnV0dG9uUmlnaHQsIGxhc3RNb3VzZVBvcywgJmV2
ZW50KTsKKyAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBXZWJNb3Vz
ZUV2ZW50OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVu
dFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChl
dmVudCk7CiAKICAgICBwcmVzc2VkQnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uTm9uZTsK
QEAgLTkwNiw3ICs5MDAsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpiZWdpbkRyYWdXaXRoRmlsZXMo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbgogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgZmlsZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgV2ViRHJhZ0RhdGE6
Okl0ZW0gaXRlbTsKICAgICAgICAgaXRlbS5zdG9yYWdlVHlwZSA9IFdlYkRyYWdEYXRhOjpJdGVt
OjpTdG9yYWdlVHlwZUZpbGVuYW1lOwotICAgICAgICBpdGVtLmZpbGVuYW1lRGF0YSA9IHdlYmtp
dF9zdXBwb3J0OjpHZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChmaWxlc1tpXSk7Cisg
ICAgICAgIGl0ZW0uZmlsZW5hbWVEYXRhID0gbV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1dGVXZWJTdHJp
bmdGcm9tVVRGOFBhdGgoZmlsZXNbaV0pOwogICAgICAgICBjdXJyZW50RHJhZ0RhdGEuYWRkSXRl
bShpdGVtKTsKICAgICAgICAgYWJzb2x1dGVGaWxlbmFtZXNbaV0gPSBpdGVtLmZpbGVuYW1lRGF0
YTsKICAgICB9CkBAIC0xMDE0LDcgKzEwMDgsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpzZW5kQ3Vy
cmVudFRvdWNoRXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudDo6VHlwZSB0eXBlKQogICAgIFdlYlRv
dWNoRXZlbnQgdG91Y2hFdmVudDsKICAgICB0b3VjaEV2ZW50LnR5cGUgPSB0eXBlOwogICAgIHRv
dWNoRXZlbnQubW9kaWZpZXJzID0gdG91Y2hNb2RpZmllcnM7Ci0gICAgdG91Y2hFdmVudC50aW1l
U3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpOworICAgIHRvdWNoRXZlbnQu
dGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSk7CiAg
ICAgdG91Y2hFdmVudC50b3VjaGVzTGVuZ3RoID0gdG91Y2hQb2ludHMuc2l6ZSgpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b3VjaFBvaW50cy5zaXplKCk7ICsraSkKICAgICAgICAg
dG91Y2hFdmVudC50b3VjaGVzW2ldID0gdG91Y2hQb2ludHNbaV07CkBAIC0xMDU0LDcgKzEwNDgs
NyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpoYW5kbGVNb3VzZVdoZWVsKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KgogICAgICAgICBoYXNQcmVjaXNlU2Nyb2xsaW5n
RGVsdGFzID0gYXJndW1lbnRzWzNdLnRvQm9vbGVhbigpOwogCiAgICAgV2ViTW91c2VXaGVlbEV2
ZW50IGV2ZW50OwotICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWws
IHByZXNzZWRCdXR0b24sIGxhc3RNb3VzZVBvcywgJmV2ZW50KTsKKyAgICBpbml0TW91c2VFdmVu
dChXZWJJbnB1dEV2ZW50OjpNb3VzZVdoZWVsLCBwcmVzc2VkQnV0dG9uLCBsYXN0TW91c2VQb3Ms
ICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAgICAgZXZlbnQu
d2hlZWxUaWNrc1ggPSBzdGF0aWNfY2FzdDxmbG9hdD4oaG9yaXpvbnRhbCk7CiAgICAgZXZlbnQu
d2hlZWxUaWNrc1kgPSBzdGF0aWNfY2FzdDxmbG9hdD4odmVydGljYWwpOwogICAgIGV2ZW50LmRl
bHRhWCA9IGV2ZW50LndoZWVsVGlja3NYOwpAQCAtMTIxNyw3ICsxMjExLDcgQEAgdm9pZCBFdmVu
dFNlbmRlcjo6Z2VzdHVyZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5cGUgdHlwZSwgY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JgogCiAgICAgZXZlbnQuZ2xvYmFsWCA9IGV2ZW50Lng7CiAgICAgZXZlbnQu
Z2xvYmFsWSA9IGV2ZW50Lnk7Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJl
bnRFdmVudFRpbWVTZWMoKTsKKyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVu
dEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZl
bnQoZXZlbnQpOwogfQogCkBAIC0xMjI5LDcgKzEyMjMsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpn
ZXN0dXJlRmxpbmdDYW5jZWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbgogCiAgICAgV2ViR2VzdHVyZUV2ZW50IGV2ZW50OwogICAgIGV2ZW50LnR5cGUgPSBXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdDYW5jZWw7Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25k
cyA9IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRz
ID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhh
bmRsZUlucHV0RXZlbnQoZXZlbnQpOwogfQogCkBAIC0xMjUzLDcgKzEyNDcsNyBAQCB2b2lkIEV2
ZW50U2VuZGVyOjpnZXN0dXJlRmxpbmdTdGFydChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudAogCiAgICAgZXZlbnQuZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WCA9
IHN0YXRpY19jYXN0PGZsb2F0Pihhcmd1bWVudHNbMl0udG9Eb3VibGUoKSk7CiAgICAgZXZlbnQu
ZGF0YS5mbGluZ1N0YXJ0LnZlbG9jaXR5WSA9IHN0YXRpY19jYXN0PGZsb2F0Pihhcmd1bWVudHNb
M10udG9Eb3VibGUoKSk7Ci0gICAgZXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGdldEN1cnJlbnRF
dmVudFRpbWVTZWMoKTsKKyAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2
ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsKICAgICB3ZWJ2aWV3KCktPmhhbmRsZUlucHV0RXZlbnQo
ZXZlbnQpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9LZXlDb2RlTWFwcGluZy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9LZXlDb2RlTWFwcGluZy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRm
OGFjYzg4MDRjZWQ1NmI5NWY5ZTczMWMwZmJiYjNjNDY4MTc5OAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBw
aW5nLmNwcApAQCAtMCwwICsxLDI0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJL
ZXlDb2RlTWFwcGluZy5oIgorCisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CisKK25hbWVz
cGFjZSBXZWJUZXN0UnVubmVyIHsKKworaW50IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29k
ZShpbnQga2V5c3ltKQoreworI2lmIE9TKExJTlVYKSAmJiBVU0UoR1RLKQorICAgIC8vIFNlZSAv
dXNyL3NoYXJlL1gxMS94a2Iva2V5Y29kZXMvKgorICAgIHN0YXRpYyBjb25zdCBpbnQgYXNjaWlU
b0tleUNvZGVbXSA9IHsKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAg
ICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAg
ICAgICAgMjIsCisgICAgICAgIDIzLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAw
LAorICAgICAgICAzNiwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgNTAsCisgICAg
ICAgIDM3LAorICAgICAgICA2NCwKKyAgICAgICAgMTI3LAorICAgICAgICA2NiwKKyAgICAgICAg
MCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgMTMxLAorICAg
ICAgICAwLAorICAgICAgICA5LAorICAgICAgICAxMDAsCisgICAgICAgIDEwMiwKKyAgICAgICAg
MCwKKyAgICAgICAgMCwKKyAgICAgICAgNjUsIC8vICcgJworICAgICAgICAxMTIsIC8vICchJwor
ICAgICAgICAxMTcsIC8vICciJworICAgICAgICAxMTUsIC8vICcjJworICAgICAgICAxMTAsIC8v
ICckJworICAgICAgICAxMTMsIC8vICclJworICAgICAgICAxMTEsIC8vICcmJworICAgICAgICAx
MTQsIC8vICcnJworICAgICAgICAxMTYsIC8vICcoJworICAgICAgICAwLCAvLyAnKScKKyAgICAg
ICAgMTA3LCAvLyAnKicKKyAgICAgICAgMCwgLy8gJysnCisgICAgICAgIDAsIC8vICcsJworICAg
ICAgICAxMTgsIC8vICctJworICAgICAgICAxMTksIC8vICcuJworICAgICAgICAxNDYsIC8vICcv
JworICAgICAgICAxOSwgLy8gJzAnCisgICAgICAgIDEwLCAvLyAnMScKKyAgICAgICAgMTEsIC8v
ICcyJworICAgICAgICAxMiwgLy8gJzMnCisgICAgICAgIDEzLCAvLyAnNCcKKyAgICAgICAgMTQs
IC8vICc1JworICAgICAgICAxNSwgLy8gJzYnCisgICAgICAgIDE2LCAvLyAnNycKKyAgICAgICAg
MTcsIC8vICc4JworICAgICAgICAxOCwgLy8gJzknCisgICAgICAgIDAsIC8vICc6JworICAgICAg
ICAwLCAvLyAnOycKKyAgICAgICAgMCwgLy8gJzwnCisgICAgICAgIDAsIC8vICc9JworICAgICAg
ICAwLCAvLyAnPicKKyAgICAgICAgMCwgLy8gJz8nCisgICAgICAgIDAsIC8vICdAJworICAgICAg
ICAzOCwgLy8gJ0EnCisgICAgICAgIDU2LCAvLyAnQicKKyAgICAgICAgNTQsIC8vICdDJworICAg
ICAgICA0MCwgLy8gJ0QnCisgICAgICAgIDI2LCAvLyAnRScKKyAgICAgICAgNDEsIC8vICdGJwor
ICAgICAgICA0MiwgLy8gJ0cnCisgICAgICAgIDQzLCAvLyAnSCcKKyAgICAgICAgMzEsIC8vICdJ
JworICAgICAgICA0NCwgLy8gJ0onCisgICAgICAgIDQ1LCAvLyAnSycKKyAgICAgICAgNDYsIC8v
ICdMJworICAgICAgICA1OCwgLy8gJ00nCisgICAgICAgIDU3LCAvLyAnTicKKyAgICAgICAgMzIs
IC8vICdPJworICAgICAgICAzMywgLy8gJ1AnCisgICAgICAgIDI0LCAvLyAnUScKKyAgICAgICAg
MjcsIC8vICdSJworICAgICAgICAzOSwgLy8gJ1MnCisgICAgICAgIDI4LCAvLyAnVCcKKyAgICAg
ICAgMzAsIC8vICdVJworICAgICAgICA1NSwgLy8gJ1YnCisgICAgICAgIDI1LCAvLyAnVycKKyAg
ICAgICAgNTMsIC8vICdYJworICAgICAgICAyOSwgLy8gJ1knCisgICAgICAgIDUyLCAvLyAnWicK
KyAgICAgICAgMTMzLCAvLyAnWycKKyAgICAgICAgMTM0LCAvLyAnXCcKKyAgICAgICAgMTM1LCAv
LyAnXScKKyAgICAgICAgMCwgLy8gJ14nCisgICAgICAgIDAsIC8vICdfJworICAgICAgICA5MCwg
Ly8gJ2AnCisgICAgICAgIDM4LCAvLyAnYScKKyAgICAgICAgNTYsIC8vICdiJworICAgICAgICA1
NCwgLy8gJ2MnCisgICAgICAgIDQwLCAvLyAnZCcKKyAgICAgICAgMjYsIC8vICdlJworICAgICAg
ICA0MSwgLy8gJ2YnCisgICAgICAgIDQyLCAvLyAnZycKKyAgICAgICAgNDMsIC8vICdoJworICAg
ICAgICAzMSwgLy8gJ2knCisgICAgICAgIDQ0LCAvLyAnaicKKyAgICAgICAgNDUsIC8vICdrJwor
ICAgICAgICA0NiwgLy8gJ2wnCisgICAgICAgIDU4LCAvLyAnbScKKyAgICAgICAgNTcsIC8vICdu
JworICAgICAgICAzMiwgLy8gJ28nCisgICAgICAgIDMzLCAvLyAncCcKKyAgICAgICAgMjQsIC8v
ICdxJworICAgICAgICAyNywgLy8gJ3InCisgICAgICAgIDM5LCAvLyAncycKKyAgICAgICAgMjgs
IC8vICd0JworICAgICAgICAzMCwgLy8gJ3UnCisgICAgICAgIDU1LCAvLyAndicKKyAgICAgICAg
MjUsIC8vICd3JworICAgICAgICA1MywgLy8gJ3gnCisgICAgICAgIDI5LCAvLyAneScKKyAgICAg
ICAgNTIsIC8vICd6JworICAgICAgICA5NiwgLy8gJ3snCisgICAgICAgIDAsIC8vICd8JworICAg
ICAgICAwLCAvLyAnfScKKyAgICAgICAgMCwgLy8gJ34nCisgICAgICAgIDAsIC8vIERFTAorICAg
IH07CisKKyAgICBpZiAoa2V5c3ltIDw9IDEyNykKKyAgICAgICAgcmV0dXJuIGFzY2lpVG9LZXlD
b2RlW2tleXN5bV07CisKKyAgICBzd2l0Y2ggKGtleXN5bSkgeworICAgIGNhc2UgVktFWV9QUklP
UjoKKyAgICAgICAgcmV0dXJuIDExMjsKKyAgICBjYXNlIFZLRVlfTkVYVDoKKyAgICAgICAgcmV0
dXJuIDExNzsKKyAgICBjYXNlIFZLRVlfRU5EOgorICAgICAgICByZXR1cm4gMTE1OworICAgIGNh
c2UgVktFWV9IT01FOgorICAgICAgICByZXR1cm4gMTEwOworICAgIGNhc2UgVktFWV9MRUZUOgor
ICAgICAgICByZXR1cm4gMTEzOworICAgIGNhc2UgVktFWV9VUDoKKyAgICAgICAgcmV0dXJuIDEx
MTsKKyAgICBjYXNlIFZLRVlfUklHSFQ6CisgICAgICAgIHJldHVybiAxMTQ7CisgICAgY2FzZSBW
S0VZX0RPV046CisgICAgICAgIHJldHVybiAxMTY7CisgICAgY2FzZSBWS0VZX1NOQVBTSE9UOgor
ICAgICAgICByZXR1cm4gMTA3OworICAgIGNhc2UgVktFWV9JTlNFUlQ6CisgICAgICAgIHJldHVy
biAxMTg7CisgICAgY2FzZSBWS0VZX0RFTEVURToKKyAgICAgICAgcmV0dXJuIDExOTsKKyAgICBj
YXNlIFZLRVlfQVBQUzoKKyAgICAgICAgcmV0dXJuIDEzNTsKKyAgICBjYXNlIFZLRVlfRjE6Cisg
ICAgY2FzZSBWS0VZX0YxICsgMToKKyAgICBjYXNlIFZLRVlfRjEgKyAyOgorICAgIGNhc2UgVktF
WV9GMSArIDM6CisgICAgY2FzZSBWS0VZX0YxICsgNDoKKyAgICBjYXNlIFZLRVlfRjEgKyA1Ogor
ICAgIGNhc2UgVktFWV9GMSArIDY6CisgICAgY2FzZSBWS0VZX0YxICsgNzoKKyAgICBjYXNlIFZL
RVlfRjEgKyA4OgorICAgIGNhc2UgVktFWV9GMSArIDk6CisgICAgY2FzZSBWS0VZX0YxICsgMTA6
CisgICAgY2FzZSBWS0VZX0YxICsgMTE6CisgICAgY2FzZSBWS0VZX0YxICsgMTI6CisgICAgY2Fz
ZSBWS0VZX0YxICsgMTM6CisgICAgY2FzZSBWS0VZX0YxICsgMTQ6CisgICAgY2FzZSBWS0VZX0Yx
ICsgMTU6CisgICAgY2FzZSBWS0VZX0YxICsgMTY6CisgICAgY2FzZSBWS0VZX0YxICsgMTc6Cisg
ICAgY2FzZSBWS0VZX0YxICsgMTg6CisgICAgY2FzZSBWS0VZX0YxICsgMTk6CisgICAgY2FzZSBW
S0VZX0YxICsgMjA6CisgICAgY2FzZSBWS0VZX0YxICsgMjE6CisgICAgY2FzZSBWS0VZX0YxICsg
MjI6CisgICAgY2FzZSBWS0VZX0YxICsgMjM6CisgICAgICAgIHJldHVybiA2NyArIChrZXlzeW0g
LSBWS0VZX0YxKTsKKyAgICBjYXNlIFZLRVlfTFNISUZUOgorICAgICAgICByZXR1cm4gNTA7Cisg
ICAgY2FzZSBWS0VZX1JTSElGVDoKKyAgICAgICAgcmV0dXJuIDYyOworICAgIGNhc2UgVktFWV9M
Q09OVFJPTDoKKyAgICAgICAgcmV0dXJuIDM3OworICAgIGNhc2UgVktFWV9SQ09OVFJPTDoKKyAg
ICAgICAgcmV0dXJuIDEwNTsKKyAgICBjYXNlIFZLRVlfTE1FTlU6CisgICAgICAgIHJldHVybiA2
NDsKKyAgICBjYXNlIFZLRVlfUk1FTlU6CisgICAgICAgIHJldHVybiAxMDg7CisKKyAgICBkZWZh
dWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oa2V5c3ltKTsKKyAgICByZXR1cm4gMDsKKyNl
bmRpZgorfQorCit9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9LZXlDb2RlTWFwcGluZy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvS2V5Q29kZU1hcHBpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzQ2OWZh
YzRhNWMxMTUwMmM5MzVlMWRkMjhkZmU3NDJiOGI2YWUzCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvS2V5Q29kZU1hcHBpbmcu
aApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBLZXlDb2RlTWFwcGluZ19oCisjZGVmaW5lIEtleUNv
ZGVNYXBwaW5nX2gKKworbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCisvLyBUaGUga2V5Y29k
ZXMgbWF0Y2ggdGhlIHZhbHVlcyBvZiB0aGUgdmlydHVhbCBrZXljb2RlcyBmb3VuZCBoZXJlIGh0
dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvZGQz
NzU3MzEodj12cy44NSkuYXNweAorZW51bSB7CisgICAgVktFWV9SRVRVUk4gICA9IDB4MEQsCisg
ICAgVktFWV9QUklPUiAgICA9IDB4MjEsCisgICAgVktFWV9ORVhUICAgICA9IDB4MjIsCisgICAg
VktFWV9FTkQgICAgICA9IDB4MjMsCisgICAgVktFWV9IT01FICAgICA9IDB4MjQsCisgICAgVktF
WV9MRUZUICAgICA9IDB4MjUsCisgICAgVktFWV9VUCAgICAgICA9IDB4MjYsCisgICAgVktFWV9S
SUdIVCAgICA9IDB4MjcsCisgICAgVktFWV9ET1dOICAgICA9IDB4MjgsCisgICAgVktFWV9TTkFQ
U0hPVCA9IDB4MkMsCisgICAgVktFWV9JTlNFUlQgICA9IDB4MkQsCisgICAgVktFWV9ERUxFVEUg
ICA9IDB4MkUsCisgICAgVktFWV9BUFBTICAgICA9IDB4NUQsCisgICAgVktFWV9GMSAgICAgICA9
IDB4NzAsCisgICAgVktFWV9MU0hJRlQgICA9IDB4QTAsCisgICAgVktFWV9SU0hJRlQgICA9IDB4
QTEsCisgICAgVktFWV9MQ09OVFJPTCA9IDB4QTIsCisgICAgVktFWV9SQ09OVFJPTCA9IDB4QTMs
CisgICAgVktFWV9MTUVOVSAgICA9IDB4QTQsCisgICAgVktFWV9STUVOVSAgICA9IDB4QTUsCit9
OworCisvLyBNYXAgYSB3aW5kb3dzIGtleWNvZGUgdG8gYSBuYXRpdmUga2V5Y29kZSBvbiBPUyhM
SU5VWCkgJiYgVVNFKEdUSykuCitpbnQgTmF0aXZlS2V5Q29kZUZvcldpbmRvd3NLZXlDb2RlKGlu
dCBrZXlzeW0pOworCit9CisKKyNlbmRpZiAvLyBLZXlDb2RlTWFwcGluZ19oCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdh
dGUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RE
ZWxlZ2F0ZS5oCmluZGV4IGU2MjZlY2NkMDFlMjA2MDk3MzcyMmMwNDc4M2MzYjEzZTMxYzA4MjMu
LjA0OThmY2IzZjNmMTM2NDk2MzNkNTJlMTZhYTE4ZmEyMzlhMjA3NTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RE
ZWxlZ2F0ZS5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9z
dFRhc2soV2ViVGVzdFJ1bm5lcjo6V2ViVGFzayopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9z
dERlbGF5ZWRUYXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqLCBsb25nIGxvbmcgbXMpID0gMDsK
ICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVt
KGNvbnN0IFdlYktpdDo6V2ViVmVjdG9yPFdlYktpdDo6V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxl
bmFtZXMpID0gMDsKKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBnZXRDdXJyZW50VGltZUluTWlsbGlz
ZWNvbmQoKSA9IDA7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdl
YlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkgPSAwOwogfTsKIAog
I2VuZGlmIC8vIFRlc3REZWxlZ2F0ZV9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGU2ZWFk
MTU1MTU3YTFiMDM1MWVmOTE1MjRmYjc0ZmFhODRlNWU1YmUuLmYwZGE3OTgzMTE3ZWMzODEyNzZi
NWE3OGE1NWU0OGVhZGRkNzFlMjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC0zMiw1MSAr
MzIsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXIuaCIKIAot
I2luY2x1ZGUgIldlYkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJXZWJCaW5kaW5n
cy5oIgotI2luY2x1ZGUgIldlYkNvbnNvbGVNZXNzYWdlLmgiCi0jaW5jbHVkZSAiV2ViRGV2aWNl
T3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
aCIKLSNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgotI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKLSNp
bmNsdWRlICJXZWJGaW5kT3B0aW9ucy5oIgotI2luY2x1ZGUgIldlYkZyYW1lLmgiCi0jaW5jbHVk
ZSAiV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCi0jaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5o
IgotI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgotI2luY2x1ZGUgIldlYkludGVudC5oIgot
I2luY2x1ZGUgIldlYkludGVudFJlcXVlc3QuaCIKLSNpbmNsdWRlICJXZWJLaXQuaCIKLSNpbmNs
dWRlICJXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKLSNpbmNsdWRlICJXZWJQcmludFBhcmFt
cy5oIgotI2luY2x1ZGUgIldlYlNjcmlwdFNvdXJjZS5oIgotI2luY2x1ZGUgIldlYlNlY3VyaXR5
UG9saWN5LmgiCi0jaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJXZWJTdXJyb3Vu
ZGluZ1RleHQuaCIKLSNpbmNsdWRlICJXZWJWaWV3LmgiCi0jaW5jbHVkZSAiV2ViV29ya2VySW5m
by5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYkRhdGEuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTaXplLmgi
Ci0jaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0jaW5jbHVkZSAidjgvaW5jbHVkZS92OC5o
IgotI2luY2x1ZGUgIndlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0LmgiCi0jaW5jbHVkZSA8
YWxnb3JpdGhtPgotI2luY2x1ZGUgPGNsb2NhbGU+Ci0jaW5jbHVkZSA8Y3N0ZGxpYj4KLSNpbmNs
dWRlIDxsaW1pdHM+Ci0jaW5jbHVkZSA8c3N0cmVhbT4KLSNpbmNsdWRlIDx3dGYvT3duQXJyYXlQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotI2lmIE9TKExJTlVYKSB8
fCBPUyhBTkRST0lEKQotI2luY2x1ZGUgImxpbnV4L1dlYkZvbnRSZW5kZXJpbmcuaCIKLSNlbmRp
ZgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci11
c2luZyBuYW1lc3BhY2Ugc3RkOwotCiBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKIHsKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RSdW5uZXIuaAppbmRleCAzOWUxOWQ1NzM2NWQwM2M2Njg0MWY4N2YyNmFjZjQ1NDFlZTA3
ZDdhLi41MDMyNzFiNWQ5YjVjZWUwOTk4YmNhODUyYzNjYTA5Mzc1MGE2NWUyIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVz
dFJ1bm5lci5oCkBAIC0zMywyMSArMzMsNiBAQAogI2RlZmluZSBUZXN0UnVubmVyX2gKIAogI2lu
Y2x1ZGUgIkNwcEJvdW5kQ2xhc3MuaCIKLSNpbmNsdWRlICJXZWJEZWxpdmVyZWRJbnRlbnRDbGll
bnQuaCIKLSNpbmNsdWRlICJXZWJUZXh0RGlyZWN0aW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0v
V2ViQXJyYXlCdWZmZXJWaWV3LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0j
aW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5j
bHVkZSA8d3RmL093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYkdlb2xv
Y2F0aW9uQ2xpZW50TW9jazsKLX0KLQotbmFtZXNwYWNlIHdlYmtpdF9zdXBwb3J0IHsKLWNsYXNz
IFNjb3BlZFRlbXBEaXJlY3Rvcnk7Ci19CiAKIGNsYXNzIFRlc3RSdW5uZXIgOiBwdWJsaWMgQ3Bw
Qm91bmRDbGFzcyB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0SW50ZXJmYWNlcy5jcHAK
aW5kZXggZjdkYjE3MTk4ZTY3ZjhhOGQ4MzIwZGU2NWVhNGI0MDliNjE5MGIzZi4uOWE4Njk1M2Mz
Y2I4NTM3NDBlYWE3OGJhZmZhMTg4YzRiNzI3MjhmOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJ
bnRlcmZhY2VzLmNwcApAQCAtNjcsNiArNjcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHBvc3RUYXNrKFdlYlRhc2sqKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdERlbGF5ZWRUYXNrKFdl
YlRhc2sqLCBsb25nIGxvbmcgbXMpOwogICAgIHZpcnR1YWwgV2ViU3RyaW5nIHJlZ2lzdGVySXNv
bGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVu
YW1lcyk7CisgICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25k
KCk7CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyBnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zy
b21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCk7CiAKIHByaXZhdGU6CiAgICAgVGVz
dEludGVyZmFjZXMgbV9pbnRlcmZhY2VzOwpAQCAtMTQ3LDYgKzE0OSwxNiBAQCBXZWJTdHJpbmcg
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpyZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShj
b25zdCBXZWJWZWN0bwogICAgIHJldHVybiBtX2RlbGVnYXRlLT5yZWdpc3Rlcklzb2xhdGVkRmls
ZVN5c3RlbShhYnNvbHV0ZUZpbGVuYW1lcyk7CiB9CiAKK2xvbmcgbG9uZyBXZWJUZXN0SW50ZXJm
YWNlczo6SW50ZXJuYWw6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpCit7CisgICAgcmV0
dXJuIG1fZGVsZWdhdGUtPmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpOworfQorCitXZWJL
aXQ6OldlYlN0cmluZyBXZWJUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6OmdldEFic29sdXRlV2Vi
U3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKQoreworICAgIHJldHVy
biBtX2RlbGVnYXRlLT5nZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChwYXRoKTsKK30K
KwogV2ViVGVzdEludGVyZmFjZXM6OldlYlRlc3RJbnRlcmZhY2VzKCkKIHsKICAgICBtX2ludGVy
bmFsID0gbmV3IEludGVybmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwCmluZGV4IGQzNzYyMmRiOTk1ODhmNzkxNWIyNDRlZjljYjdkMDVlMjEyZmM3
MzEuLjg3ZWIyNTA4YmM0NDM2NWY2MzE2YjI3ZjUyMDlhZjg0OTExZDc5MzkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE1MDAsNiArMTUw
MCwxNiBAQCBXZWJTdHJpbmcgV2ViVmlld0hvc3Q6OnJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVt
KGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBhYgogICAgIHJldHVybiB3ZWJraXRfc3VwcG9y
dDo6UmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oYWJzb2x1dGVGaWxlbmFtZXMpOwogfQogCits
b25nIGxvbmcgV2ViVmlld0hvc3Q6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpCit7Cisg
ICAgcmV0dXJuIHdlYmtpdF9zdXBwb3J0OjpHZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsK
K30KKworV2ViS2l0OjpXZWJTdHJpbmcgV2ViVmlld0hvc3Q6OmdldEFic29sdXRlV2ViU3RyaW5n
RnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKQoreworICAgIHJldHVybiB3ZWJr
aXRfc3VwcG9ydDo6R2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgocGF0aCk7Cit9CisK
IC8vIFB1YmxpYyBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogV2ViVmlld0hvc3Q6OldlYlZpZXdIb3N0KFRlc3RT
aGVsbCogc2hlbGwpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
aAppbmRleCA5YWY0N2UwNzhmNzZhZjA3YzQ0MDA4NzZmYTk3YWI5YTg1NGQ5NTI3Li44NjAwNzE5
NGIwNDM1NjcyYzAxNDk5OWQ1ODYwNTNlY2ZmNWY4YjRmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTEzOSw2ICsxMzksOCBAQCBjbGFzcyBXZWJW
aWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6Oldl
YkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhXZWJUZXN0UnVubmVyOjpX
ZWJUYXNrKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHBvc3REZWxheWVkVGFzayhXZWJU
ZXN0UnVubmVyOjpXZWJUYXNrKiwgbG9uZyBsb25nIG1zKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IFdlYktpdDo6V2ViU3RyaW5nIHJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGNvbnN0IFdlYktp
dDo6V2ViVmVjdG9yPFdlYktpdDo6V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxlbmFtZXMpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJT
dHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpIE9WRVJSSURFOwogCiAg
ICAgLy8gTmF2aWdhdGlvbkhvc3QKICAgICB2aXJ0dWFsIGJvb2wgbmF2aWdhdGUoY29uc3QgVGVz
dE5hdmlnYXRpb25FbnRyeSYsIGJvb2wgcmVsb2FkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171186</attachid>
            <date>2012-10-29 02:55:53 -0700</date>
            <delta_ts>2012-10-29 03:50:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100344-20121029105420.patch</filename>
            <type>text/plain</type>
            <size>34462</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGM4MjhkZWQ1ZDg2MWU2OGNiMjc0NjFjYzQ2MGZmYjY2
ZmJiYzNjMi4uYmZkOTM4MTQ0MWNhMzNkZmU3NWMxMWRmZTFjYzk5OWVlNGFkNDIwYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDEyLTEwLTI1ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHJlbWFpbmluZyB1c2FnZXMgb2Ygd2Via2l0X3N1
cHBvcnQgZnJvbSB0aGUgVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIEJhcnRoLgorCisgICAgICAgIFRoZSBtb3N0IGltcG9ydGFudCBwYXJ0IGlzIHRvIG5vdCBy
ZWx5IG9uIGNhbGxpbmcgb3V0IHRvIGdkay9YMTEgdG8KKyAgICAgICAgdHJhbnNsYXRlIGtleWNv
ZGVzIHRvIGhhcmR3YXJlIGtleWNvZGVzLCBhcyB0aGlzIGlzIG5vdCBwb3NzaWJsZSBpbnNpZGUK
KyAgICAgICAgdGhlIHNhbmRib3guCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS5neXBpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RS
dW5uZXIuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICh3ZWJraXRfc3VwcG9ydCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVz
dERlbGVnYXRlLmg6CisgICAgICAgIChXZWJUZXN0RGVsZWdhdGUpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuaDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHA6
CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50
U2VuZGVyOjpkb0RyYWdEcm9wKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVy
Ojp1cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2
ZW50U2VuZGVyOjptb3VzZURvd24pOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5k
ZXI6Om1vdXNlVXApOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Om1vdXNl
TW92ZVRvKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjprZXlEb3duKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpyZXBsYXlTYXZlZEV2ZW50cyk6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Y29udGV4dENsaWNrKToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpiZWdpbkRyYWdXaXRoRmlsZXMpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6OnNlbmRDdXJyZW50VG91Y2hFdmVu
dCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6aGFuZGxlTW91c2VXaGVl
bCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjo6Z2VzdHVyZUV2ZW50KToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyOjpnZXN0dXJlRmxpbmdDYW5jZWwp
OgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6RXZlbnRTZW5kZXI6Omdlc3R1cmVGbGluZ1N0YXJ0
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9LZXlD
b2RlTWFwcGluZy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAg
IChXZWJUZXN0UnVubmVyOjpOYXRpdmVLZXlDb2RlRm9yV2luZG93c0tleUNvZGUpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBwaW5n
Lmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuaC4KKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oOgorICAg
ICAgICAoVGVzdERlbGVnYXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwOgorICAg
ICAgICAoV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6Z2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vj
b25kKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6
V2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4
UGF0aCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
OgorICAgICAgICAoV2ViVmlld0hvc3Q6OmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCk6Cisg
ICAgICAgIChXZWJWaWV3SG9zdDo6Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisgICAgICAg
IChXZWJWaWV3SG9zdCk6CisKIDIwMTItMTAtMjkgIEpvbmF0aGFuIERvbmcgIDxqb25hdGhhbi5k
b25nQHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBVbnJldmlld2VkLiBBZGQgam9uYXRo
YW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24gYXMgYSBjb21taXR0ZXIuCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQppbmRleCBiYTY3N2M0YjliZWZjZjQyODE0MTFjZDIz
NmQ2ZGI2ZDgyYjI4ZDM3Li5kZDc2OGQwNDk1NzI2ZjJiNjYwN2Y4MGY5MTc1N2ZkYmQyMWY3Nzk5
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKQEAgLTgzLDYgKzgz
LDggQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5o
JywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxl
ci5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250
cm9sbGVyLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVN
YXBwaW5nLmNwcCcsCisgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvS2V5Q29k
ZU1hcHBpbmcuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdElu
dGVyZmFjZXMuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
SW50ZXJmYWNlcy5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXh0
SW5wdXRDb250cm9sbGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9EUlRUZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9E
UlRUZXN0UnVubmVyLmgKaW5kZXggZWM0Nzc4ZmQ1YzQ2ZjhmMzI4NzU4YTE1N2EzMjgyMTQ1NGI1
YjIyMS4uY2NkZmM0Mzk0ZGY2ZGRjOWUwNGJmMTUzZjU5NTcwN2MxYjc2ZjBiMSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaApAQCAtNDMsNyArNDMs
MjMgQEAKICNkZWZpbmUgRFJUVGVzdFJ1bm5lcl9oCiAKICNpbmNsdWRlICJUZXN0UnVubmVyL3Ny
Yy9UZXN0UnVubmVyLmgiCisjaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViVGFzay5oIgorI2luY2x1ZGUgIldlYlRleHREaXJlY3Rpb24uaCIKKyNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJBcnJheUJ1ZmZlclZpZXcuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkwuaCIKKyNpbmNsdWRlIDx3dGYv
RGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Y2xhc3MgV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrOworfQorCituYW1lc3BhY2Ugd2Via2l0X3N1
cHBvcnQgeworY2xhc3MgU2NvcGVkVGVtcERpcmVjdG9yeTsKK30KKwogCiBjbGFzcyBUZXN0U2hl
bGw7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKaW5kZXggNmUyMTg4MTA3YmE5
NzQ1YmU2ZDk1MzM4OTJlNGE3NGY3ZjNlNjAwNS4uYWI0N2Q0ZjlkY2VhNmQ3ZWM5MThiZGQxZTJl
ZjRkZWYyYzU4MmUwZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKQEAgLTU5
LDYgKzU5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2soV2Vi
VGFzayosIGxvbmcgbG9uZyBtcykgPSAwOwogCiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmlu
ZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJL
aXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSA9IDA7CisgICAgdmlydHVhbCBsb25n
IGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgPSAwOworICAgIHZpcnR1YWwgV2Vi
S2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3Rk
OjpzdHJpbmcmIHBhdGgpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuaAppbmRleCA2MGNj
NjI3MWVjZmFkOWVkNjhiZGU0Mjg4NTE1Mzg0MjZkNmI4NDAzLi40N2ZkNDY2YWZmMzJkNzljZWNi
NDcwNjZhNzNiN2E1ZWM1Y2MwMGI5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5oCkBAIC00Myw3ICs0Myw2
IEBACiAjZGVmaW5lIENwcFZhcmlhbnRfaAogCiAjaW5jbHVkZSAiV2ViQmluZGluZ3MuaCIKLSNp
bmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgogI2luY2x1ZGUgPHN0cmlu
Zz4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmNwcAppbmRl
eCAyZjRhMDU1NGM1YzM2ZDNlZmI2OTBmNDdlOGMyZjg5M2NiZmFmOTNlLi4yYTMwMGE4MDBmYjg3
OWU5MTI2NDMwODJhZDQ1ZDBjZTdkMGI5ZjEzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuY3BwCkBA
IC00MywxNiArNDMsMTcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudFNl
bmRlci5oIgogCisjaW5jbHVkZSAiS2V5Q29kZU1hcHBpbmcuaCIKICNpbmNsdWRlICJUZXN0RGVs
ZWdhdGUuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudURhdGEuaCIKICNpbmNsdWRlICJXZWJE
cmFnT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiV2ViRXZlbnRTZW5kZXIuaCIKICNpbmNsdWRlICJX
ZWJUb3VjaFBvaW50LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2luY2x1ZGUgInBsYXRmb3Jt
L1dlYkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViUG9pbnQuaCIKICNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJWZWN0b3IuaCIK
LSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgogI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIApAQCAtMTI1LDkgKzEy
Niw5IEBAIGlubGluZSBib29sIG91dHNpZGVNdWx0aUNsaWNrUmFkaXVzKGNvbnN0IFdlYlBvaW50
JiBhLCBjb25zdCBXZWJQb2ludCYgYikKIC8vIGRlcGVuZGVudCAoZS5nLiwgZHJhZ2dpbmcgaGFz
IGEgdGltZW91dCB2cyBzZWxlY3Rpb24pLgogdWludDMyIHRpbWVPZmZzZXRNcyA9IDA7CiAKLWRv
dWJsZSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKCkKK2RvdWJsZSBnZXRDdXJyZW50RXZlbnRUaW1l
U2VjKFRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpCiB7Ci0gICAgcmV0dXJuICh3ZWJraXRfc3VwcG9y
dDo6R2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCkgKyB0aW1lT2Zmc2V0TXMpIC8gMTAwMC4w
OworICAgIHJldHVybiAoZGVsZWdhdGUtPmdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpICsg
dGltZU9mZnNldE1zKSAvIDEwMDAuMDsKIH0KIAogdm9pZCBhZHZhbmNlRXZlbnRUaW1lKGludDMy
X3QgZGVsdGFNcykKQEAgLTEzNSw3ICsxMzYsNyBAQCB2b2lkIGFkdmFuY2VFdmVudFRpbWUoaW50
MzJfdCBkZWx0YU1zKQogICAgIHRpbWVPZmZzZXRNcyArPSBkZWx0YU1zOwogfQogCi12b2lkIGlu
aXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5cGUgdCwgV2ViTW91c2VFdmVudDo6QnV0dG9u
IGIsIGNvbnN0IFdlYlBvaW50JiBwb3MsIFdlYk1vdXNlRXZlbnQqIGUpCit2b2lkIGluaXRNb3Vz
ZUV2ZW50KFdlYklucHV0RXZlbnQ6OlR5cGUgdCwgV2ViTW91c2VFdmVudDo6QnV0dG9uIGIsIGNv
bnN0IFdlYlBvaW50JiBwb3MsIFdlYk1vdXNlRXZlbnQqIGUsIGRvdWJsZSB0cykKIHsKICAgICBl
LT50eXBlID0gdDsKICAgICBlLT5idXR0b24gPSBiOwpAQCAtMTQ0LDcgKzE0NSw3IEBAIHZvaWQg
aW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6VHlwZSB0LCBXZWJNb3VzZUV2ZW50OjpCdXR0
b24gYiwgY29uc3QgV2ViUG9pCiAgICAgZS0+eSA9IHBvcy55OwogICAgIGUtPmdsb2JhbFggPSBw
b3MueDsKICAgICBlLT5nbG9iYWxZID0gcG9zLnk7Ci0gICAgZS0+dGltZVN0YW1wU2Vjb25kcyA9
IGdldEN1cnJlbnRFdmVudFRpbWVTZWMoKTsKKyAgICBlLT50aW1lU3RhbXBTZWNvbmRzID0gdHM7
CiAgICAgZS0+Y2xpY2tDb3VudCA9IGNsaWNrQ291bnQ7CiB9CiAKQEAgLTIxNCwxNiArMjE1LDE2
IEBAIGJvb2wgZ2V0RWRpdENvbW1hbmQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQsIHN0
cmluZyogbmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3dpdGNoIChldmVudC53
aW5kb3dzS2V5Q29kZSkgewotICAgIGNhc2Ugd2Via2l0X3N1cHBvcnQ6OlZLRVlfTEVGVDoKKyAg
ICBjYXNlIFZLRVlfTEVGVDoKICAgICAgICAgKm5hbWUgPSAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5l
IjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSB3ZWJraXRfc3VwcG9ydDo6VktFWV9SSUdIVDoK
KyAgICBjYXNlIFZLRVlfUklHSFQ6CiAgICAgICAgICpuYW1lID0gIk1vdmVUb0VuZE9mTGluZSI7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ugd2Via2l0X3N1cHBvcnQ6OlZLRVlfVVA6CisgICAg
Y2FzZSBWS0VZX1VQOgogICAgICAgICAqbmFtZSA9ICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50
IjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ET1dOOgor
ICAgIGNhc2UgVktFWV9ET1dOOgogICAgICAgICAqbmFtZSA9ICJNb3ZlVG9FbmRPZkRvY3VtZW50
IjsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKQEAgLTM0OSw3ICszNTAsNyBAQCB2b2lk
IEV2ZW50U2VuZGVyOjpyZXNldCgpCiB2b2lkIEV2ZW50U2VuZGVyOjpkb0RyYWdEcm9wKGNvbnN0
IFdlYkRyYWdEYXRhJiBkcmFnRGF0YSwgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG1hc2spCiB7CiAg
ICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50
OjpNb3VzZURvd24sIHByZXNzZWRCdXR0b24sIGxhc3RNb3VzZVBvcywgJmV2ZW50KTsKKyAgICBp
bml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZURvd24sIHByZXNzZWRCdXR0b24sIGxh
c3RNb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpKTsK
ICAgICBXZWJQb2ludCBjbGllbnRQb2ludChldmVudC54LCBldmVudC55KTsKICAgICBXZWJQb2lu
dCBzY3JlZW5Qb2ludChldmVudC5nbG9iYWxYLCBldmVudC5nbG9iYWxZKTsKICAgICBjdXJyZW50
RHJhZ0RhdGEgPSBkcmFnRGF0YTsKQEAgLTM5Miw3ICszOTMsNyBAQCBpbnQgRXZlbnRTZW5kZXI6
OmdldEJ1dHRvbk51bWJlckZyb21TaW5nbGVBcmcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMpCiAKIHZvaWQgRXZlbnRTZW5kZXI6OnVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b24oV2Vi
TW91c2VFdmVudDo6QnV0dG9uIGJ1dHRvblR5cGUpCiB7Ci0gICAgaWYgKChnZXRDdXJyZW50RXZl
bnRUaW1lU2VjKCkgLSBsYXN0Q2xpY2tUaW1lU2VjIDwgbXVsdGlwbGVDbGlja1RpbWVTZWMpCisg
ICAgaWYgKChnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpIC0gbGFzdENsaWNrVGlt
ZVNlYyA8IG11bHRpcGxlQ2xpY2tUaW1lU2VjKQogICAgICAgICAmJiAoIW91dHNpZGVNdWx0aUNs
aWNrUmFkaXVzKGxhc3RNb3VzZVBvcywgbGFzdENsaWNrUG9zKSkKICAgICAgICAgJiYgKGJ1dHRv
blR5cGUgPT0gbGFzdEJ1dHRvblR5cGUpKQogICAgICAgICArK2NsaWNrQ291bnQ7CkBAIC00MjIs
NyArNDIzLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6bW91c2VEb3duKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQKIAogICAgIFdlYk1vdXNlRXZlbnQg
ZXZlbnQ7CiAgICAgcHJlc3NlZEJ1dHRvbiA9IGJ1dHRvblR5cGU7Ci0gICAgaW5pdE1vdXNlRXZl
bnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBidXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZl
dmVudCk7CisgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBidXR0
b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2Rl
bGVnYXRlKSk7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPj0gMiAmJiAoYXJndW1lbnRzWzFd
LmlzT2JqZWN0KCkgfHwgYXJndW1lbnRzWzFdLmlzU3RyaW5nKCkpKQogICAgICAgICBhcHBseUtl
eU1vZGlmaWVycygmKGFyZ3VtZW50c1sxXSksICZldmVudCk7CiAgICAgd2VidmlldygpLT5oYW5k
bGVJbnB1dEV2ZW50KGV2ZW50KTsKQEAgLTQ0OCw3ICs0NDksNyBAQCB2b2lkIEV2ZW50U2VuZGVy
Ojptb3VzZVVwKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCiAgICAgICAgIHJlcGxheVNhdmVkRXZlbnRzKCk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgV2ViTW91c2VFdmVudCBldmVudDsKLSAgICAgICAgaW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRF
dmVudDo6TW91c2VVcCwgYnV0dG9uVHlwZSwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgICAg
ICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBidXR0b25UeXBlLCBsYXN0
TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAg
ICAgICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID49IDIgJiYgKGFyZ3VtZW50c1sxXS5pc09iamVj
dCgpIHx8IGFyZ3VtZW50c1sxXS5pc1N0cmluZygpKSkKICAgICAgICAgICAgIGFwcGx5S2V5TW9k
aWZpZXJzKCYoYXJndW1lbnRzWzFdKSwgJmV2ZW50KTsKICAgICAgICAgZG9Nb3VzZVVwKGV2ZW50
KTsKQEAgLTQ5Nyw3ICs0OTgsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjptb3VzZU1vdmVUbyhjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdQogICAgICAgICBt
b3VzZUV2ZW50UXVldWUuYXBwZW5kKHNhdmVkRXZlbnQpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IFdlYk1vdXNlRXZlbnQgZXZlbnQ7Ci0gICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZl
bnQ6Ok1vdXNlTW92ZSwgcHJlc3NlZEJ1dHRvbiwgbW91c2VQb3MsICZldmVudCk7CisgICAgICAg
IGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlTW92ZSwgcHJlc3NlZEJ1dHRvbiwg
bW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAg
ICAgICAgIGRvTW91c2VNb3ZlKGV2ZW50KTsKICAgICB9CiB9CkBAIC01MzUsNTAgKzUzNiw0MyBA
QCB2b2lkIEV2ZW50U2VuZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiAgICAgYm9vbCBuZWVkc1NoaWZ0S2V5TW9kaWZpZXIg
PSBmYWxzZTsKICAgICBpZiAoIlxuIiA9PSBjb2RlU3RyKSB7CiAgICAgICAgIGdlbmVyYXRlQ2hh
ciA9IHRydWU7Ci0gICAgICAgIHRleHQgPSBjb2RlID0gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUkVU
VVJOOworICAgICAgICB0ZXh0ID0gY29kZSA9IFZLRVlfUkVUVVJOOwogICAgIH0gZWxzZSBpZiAo
InJpZ2h0QXJyb3ciID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6
VktFWV9SSUdIVDsKKyAgICAgICAgY29kZSA9IFZLRVlfUklHSFQ7CiAgICAgZWxzZSBpZiAoImRv
d25BcnJvdyIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZ
X0RPV047CisgICAgICAgIGNvZGUgPSBWS0VZX0RPV047CiAgICAgZWxzZSBpZiAoImxlZnRBcnJv
dyIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0xFRlQ7
CisgICAgICAgIGNvZGUgPSBWS0VZX0xFRlQ7CiAgICAgZWxzZSBpZiAoInVwQXJyb3ciID09IGNv
ZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9VUDsKKyAgICAgICAg
Y29kZSA9IFZLRVlfVVA7CiAgICAgZWxzZSBpZiAoImluc2VydCIgPT0gY29kZVN0cikKLSAgICAg
ICAgY29kZSA9IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0lOU0VSVDsKKyAgICAgICAgY29kZSA9IFZL
RVlfSU5TRVJUOwogICAgIGVsc2UgaWYgKCJkZWxldGUiID09IGNvZGVTdHIpCi0gICAgICAgIGNv
ZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9ERUxFVEU7CisgICAgICAgIGNvZGUgPSBWS0VZX0RF
TEVURTsKICAgICBlbHNlIGlmICgicGFnZVVwIiA9PSBjb2RlU3RyKQotICAgICAgICBjb2RlID0g
d2Via2l0X3N1cHBvcnQ6OlZLRVlfUFJJT1I7CisgICAgICAgIGNvZGUgPSBWS0VZX1BSSU9SOwog
ICAgIGVsc2UgaWYgKCJwYWdlRG93biIgPT0gY29kZVN0cikKLSAgICAgICAgY29kZSA9IHdlYmtp
dF9zdXBwb3J0OjpWS0VZX05FWFQ7CisgICAgICAgIGNvZGUgPSBWS0VZX05FWFQ7CiAgICAgZWxz
ZSBpZiAoImhvbWUiID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6
VktFWV9IT01FOworICAgICAgICBjb2RlID0gVktFWV9IT01FOwogICAgIGVsc2UgaWYgKCJlbmQi
ID09IGNvZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9FTkQ7Cisg
ICAgICAgIGNvZGUgPSBWS0VZX0VORDsKICAgICBlbHNlIGlmICgicHJpbnRTY3JlZW4iID09IGNv
ZGVTdHIpCi0gICAgICAgIGNvZGUgPSB3ZWJraXRfc3VwcG9ydDo6VktFWV9TTkFQU0hPVDsKKyAg
ICAgICAgY29kZSA9IFZLRVlfU05BUFNIT1Q7CiAgICAgZWxzZSBpZiAoIm1lbnUiID09IGNvZGVT
dHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktF
WV9BUFBTLgotICAgICAgICBjb2RlID0gMHg1RDsKKyAgICAgICAgY29kZSA9IFZLRVlfQVBQUzsK
ICAgICBlbHNlIGlmICgibGVmdENvbnRyb2wiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1F
OiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MQ09OVFJPTC4KLSAgICAgICAg
Y29kZSA9IDB4QTI7CisgICAgICAgIGNvZGUgPSBWS0VZX0xDT05UUk9MOwogICAgIGVsc2UgaWYg
KCJyaWdodENvbnRyb2wiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhp
cyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9SQ09OVFJPTC4KLSAgICAgICAgY29kZSA9IDB4QTM7
CisgICAgICAgIGNvZGUgPSBWS0VZX1JDT05UUk9MOwogICAgIGVsc2UgaWYgKCJsZWZ0U2hpZnQi
ID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3Vw
cG9ydDo6VktFWV9MU0hJRlQuCi0gICAgICAgIGNvZGUgPSAweEEwOworICAgICAgICBjb2RlID0g
VktFWV9MU0hJRlQ7CiAgICAgZWxzZSBpZiAoInJpZ2h0U2hpZnQiID09IGNvZGVTdHIpCi0gICAg
ICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9SU0hJRlQu
Ci0gICAgICAgIGNvZGUgPSAweEExOworICAgICAgICBjb2RlID0gVktFWV9SU0hJRlQ7CiAgICAg
ZWxzZSBpZiAoImxlZnRBbHQiID09IGNvZGVTdHIpCi0gICAgICAgIC8vIEZJWE1FOiBDaGFuZ2Ug
dGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MTUVOVS4KLSAgICAgICAgY29kZSA9IDB4QTQ7
CisgICAgICAgIGNvZGUgPSBWS0VZX0xNRU5VOwogICAgIGVsc2UgaWYgKCJyaWdodEFsdCIgPT0g
Y29kZVN0cikKLSAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0
OjpWS0VZX1JNRU5VLgotICAgICAgICBjb2RlID0gMHhBNTsKKyAgICAgICAgY29kZSA9IFZLRVlf
Uk1FTlU7CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIENvbXBhcmUgdGhlIGlucHV0IHN0cmluZyB3
aXRoIHRoZSBmdW5jdGlvbi1rZXkgbmFtZXMgZGVmaW5lZCBieSB0aGUKICAgICAgICAgLy8gRE9N
IHNwZWMgKGkuZS4gIkYxIiwuLi4sIkYyNCIpLiBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIGEgZnVu
Y3Rpb24ta2V5CkBAIC01ODgsNyArNTgyLDcgQEAgdm9pZCBFdmVudFNlbmRlcjo6a2V5RG93bihj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogICAg
ICAgICAgICAgc25wcmludGYoZnVuY3Rpb25DaGFycywgMTAsICJGJWQiLCBpKTsKICAgICAgICAg
ICAgIHN0cmluZyBmdW5jdGlvbktleU5hbWUoZnVuY3Rpb25DaGFycyk7CiAgICAgICAgICAgICBp
ZiAoZnVuY3Rpb25LZXlOYW1lID09IGNvZGVTdHIpIHsKLSAgICAgICAgICAgICAgICBjb2RlID0g
d2Via2l0X3N1cHBvcnQ6OlZLRVlfRjEgKyAoaSAtIDEpOworICAgICAgICAgICAgICAgIGNvZGUg
PSBWS0VZX0YxICsgKGkgLSAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtNjEzLDcgKzYwNyw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OmtleURv
d24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkK
ICAgICBldmVudERvd24ubW9kaWZpZXJzID0gMDsKICAgICBldmVudERvd24ud2luZG93c0tleUNv
ZGUgPSBjb2RlOwogI2lmIE9TKExJTlVYKSAmJiBVU0UoR1RLKQotICAgIGV2ZW50RG93bi5uYXRp
dmVLZXlDb2RlID0gd2Via2l0X3N1cHBvcnQ6Ok5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29k
ZShjb2RlLCBuZWVkc1NoaWZ0S2V5TW9kaWZpZXIpOworICAgIGV2ZW50RG93bi5uYXRpdmVLZXlD
b2RlID0gTmF0aXZlS2V5Q29kZUZvcldpbmRvd3NLZXlDb2RlKGNvZGUpOwogI2VuZGlmCiAKICAg
ICBpZiAoZ2VuZXJhdGVDaGFyKSB7CkBAIC03NzUsNyArNzY5LDcgQEAgdm9pZCBFdmVudFNlbmRl
cjo6cmVwbGF5U2F2ZWRFdmVudHMoKQogICAgICAgICBzd2l0Y2ggKGUudHlwZSkgewogICAgICAg
ICBjYXNlIFNhdmVkRXZlbnQ6Ok1vdXNlTW92ZTogewogICAgICAgICAgICAgV2ViTW91c2VFdmVu
dCBldmVudDsKLSAgICAgICAgICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNl
TW92ZSwgcHJlc3NlZEJ1dHRvbiwgZS5wb3MsICZldmVudCk7CisgICAgICAgICAgICBpbml0TW91
c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmUsIHByZXNzZWRCdXR0b24sIGUucG9zLCAm
ZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMobV9kZWxlZ2F0ZSkpOwogICAgICAgICAgICAg
ZG9Nb3VzZU1vdmUoZXZlbnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTc4
NCw3ICs3NzgsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpyZXBsYXlTYXZlZEV2ZW50cygpCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTYXZlZEV2ZW50OjpNb3VzZVVwOiB7CiAgICAg
ICAgICAgICBXZWJNb3VzZUV2ZW50IGV2ZW50OwotICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQo
V2ViSW5wdXRFdmVudDo6TW91c2VVcCwgZS5idXR0b25UeXBlLCBsYXN0TW91c2VQb3MsICZldmVu
dCk7CisgICAgICAgICAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBl
LmJ1dHRvblR5cGUsIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRUaW1lU2Vj
KG1fZGVsZWdhdGUpKTsKICAgICAgICAgICAgIGRvTW91c2VVcChldmVudCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQpAQCAtODQzLDEwICs4MzcsMTAgQEAgdm9pZCBFdmVudFNlbmRl
cjo6Y29udGV4dENsaWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXMKICAgICAvLyBHZW5lcmF0ZSByaWdodCBtb3VzZSBkb3duIGFuZCB1cC4KICAgICBX
ZWJNb3VzZUV2ZW50IGV2ZW50OwogICAgIHByZXNzZWRCdXR0b24gPSBXZWJNb3VzZUV2ZW50OjpC
dXR0b25SaWdodDsKLSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZURvd24s
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvblJpZ2h0LCBsYXN0TW91c2VQb3MsICZldmVudCk7CisgICAg
aW5pdE1vdXNlRXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpC
dXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQsIGdldEN1cnJlbnRFdmVudFRpbWVTZWMo
bV9kZWxlZ2F0ZSkpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiAK
LSAgICBpbml0TW91c2VFdmVudChXZWJJbnB1dEV2ZW50OjpNb3VzZVVwLCBXZWJNb3VzZUV2ZW50
OjpCdXR0b25SaWdodCwgbGFzdE1vdXNlUG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50
KFdlYklucHV0RXZlbnQ6Ok1vdXNlVXAsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvblJpZ2h0LCBsYXN0
TW91c2VQb3MsICZldmVudCwgZ2V0Q3VycmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKSk7CiAg
ICAgd2VidmlldygpLT5oYW5kbGVJbnB1dEV2ZW50KGV2ZW50KTsKIAogICAgIHByZXNzZWRCdXR0
b24gPSBXZWJNb3VzZUV2ZW50OjpCdXR0b25Ob25lOwpAQCAtOTA2LDcgKzkwMCw3IEBAIHZvaWQg
RXZlbnRTZW5kZXI6OmJlZ2luRHJhZ1dpdGhGaWxlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFy
Z3VtZW50cywgQ3BwVmFyaWFuCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmaWxlcy5zaXpl
KCk7ICsraSkgewogICAgICAgICBXZWJEcmFnRGF0YTo6SXRlbSBpdGVtOwogICAgICAgICBpdGVt
LnN0b3JhZ2VUeXBlID0gV2ViRHJhZ0RhdGE6Okl0ZW06OlN0b3JhZ2VUeXBlRmlsZW5hbWU7Ci0g
ICAgICAgIGl0ZW0uZmlsZW5hbWVEYXRhID0gd2Via2l0X3N1cHBvcnQ6OkdldEFic29sdXRlV2Vi
U3RyaW5nRnJvbVVURjhQYXRoKGZpbGVzW2ldKTsKKyAgICAgICAgaXRlbS5maWxlbmFtZURhdGEg
PSBtX2RlbGVnYXRlLT5nZXRBYnNvbHV0ZVdlYlN0cmluZ0Zyb21VVEY4UGF0aChmaWxlc1tpXSk7
CiAgICAgICAgIGN1cnJlbnREcmFnRGF0YS5hZGRJdGVtKGl0ZW0pOwogICAgICAgICBhYnNvbHV0
ZUZpbGVuYW1lc1tpXSA9IGl0ZW0uZmlsZW5hbWVEYXRhOwogICAgIH0KQEAgLTEwMTQsNyArMTAw
OCw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OnNlbmRDdXJyZW50VG91Y2hFdmVudChjb25zdCBXZWJJ
bnB1dEV2ZW50OjpUeXBlIHR5cGUpCiAgICAgV2ViVG91Y2hFdmVudCB0b3VjaEV2ZW50OwogICAg
IHRvdWNoRXZlbnQudHlwZSA9IHR5cGU7CiAgICAgdG91Y2hFdmVudC5tb2RpZmllcnMgPSB0b3Vj
aE1vZGlmaWVyczsKLSAgICB0b3VjaEV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50
RXZlbnRUaW1lU2VjKCk7CisgICAgdG91Y2hFdmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3Vy
cmVudEV2ZW50VGltZVNlYyhtX2RlbGVnYXRlKTsKICAgICB0b3VjaEV2ZW50LnRvdWNoZXNMZW5n
dGggPSB0b3VjaFBvaW50cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRv
dWNoUG9pbnRzLnNpemUoKTsgKytpKQogICAgICAgICB0b3VjaEV2ZW50LnRvdWNoZXNbaV0gPSB0
b3VjaFBvaW50c1tpXTsKQEAgLTEwNTQsNyArMTA0OCw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Omhh
bmRsZU1vdXNlV2hlZWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQqCiAgICAgICAgIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMgPSBhcmd1bWVudHNbM10udG9C
b29sZWFuKCk7CiAKICAgICBXZWJNb3VzZVdoZWVsRXZlbnQgZXZlbnQ7Ci0gICAgaW5pdE1vdXNl
RXZlbnQoV2ViSW5wdXRFdmVudDo6TW91c2VXaGVlbCwgcHJlc3NlZEJ1dHRvbiwgbGFzdE1vdXNl
UG9zLCAmZXZlbnQpOworICAgIGluaXRNb3VzZUV2ZW50KFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hl
ZWwsIHByZXNzZWRCdXR0b24sIGxhc3RNb3VzZVBvcywgJmV2ZW50LCBnZXRDdXJyZW50RXZlbnRU
aW1lU2VjKG1fZGVsZWdhdGUpKTsKICAgICBldmVudC53aGVlbFRpY2tzWCA9IHN0YXRpY19jYXN0
PGZsb2F0Pihob3Jpem9udGFsKTsKICAgICBldmVudC53aGVlbFRpY2tzWSA9IHN0YXRpY19jYXN0
PGZsb2F0Pih2ZXJ0aWNhbCk7CiAgICAgZXZlbnQuZGVsdGFYID0gZXZlbnQud2hlZWxUaWNrc1g7
CkBAIC0xMjE3LDcgKzEyMTEsNyBAQCB2b2lkIEV2ZW50U2VuZGVyOjpnZXN0dXJlRXZlbnQoV2Vi
SW5wdXRFdmVudDo6VHlwZSB0eXBlLCBjb25zdCBDcHBBcmd1bWVudExpc3QmCiAKICAgICBldmVu
dC5nbG9iYWxYID0gZXZlbnQueDsKICAgICBldmVudC5nbG9iYWxZID0gZXZlbnQueTsKLSAgICBl
dmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpOworICAgIGV2
ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUp
OwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiB9CiAKQEAgLTEyMjks
NyArMTIyMyw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Omdlc3R1cmVGbGluZ0NhbmNlbChjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFuCiAKICAgICBXZWJHZXN0dXJlRXZl
bnQgZXZlbnQ7CiAgICAgZXZlbnQudHlwZSA9IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ0Nh
bmNlbDsKLSAgICBldmVudC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNl
YygpOworICAgIGV2ZW50LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2Vj
KG1fZGVsZWdhdGUpOwogICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiB9
CiAKQEAgLTEyNTMsNyArMTI0Nyw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6Omdlc3R1cmVGbGluZ1N0
YXJ0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50CiAKICAgICBl
dmVudC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlYID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFyZ3Vt
ZW50c1syXS50b0RvdWJsZSgpKTsKICAgICBldmVudC5kYXRhLmZsaW5nU3RhcnQudmVsb2NpdHlZ
ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFyZ3VtZW50c1szXS50b0RvdWJsZSgpKTsKLSAgICBldmVu
dC50aW1lU3RhbXBTZWNvbmRzID0gZ2V0Q3VycmVudEV2ZW50VGltZVNlYygpOworICAgIGV2ZW50
LnRpbWVTdGFtcFNlY29uZHMgPSBnZXRDdXJyZW50RXZlbnRUaW1lU2VjKG1fZGVsZWdhdGUpOwog
ICAgIHdlYnZpZXcoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBw
aW5nLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tl
eUNvZGVNYXBwaW5nLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzM5ZjJmMmJjZDI1YTg0MDZjMzQ2N2Y4ODRl
OGZiYTUzNDY5NzY1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvS2V5Q29kZU1hcHBpbmcuY3BwCkBAIC0wLDAgKzEsMjQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIktleUNvZGVNYXBwaW5nLmgiCisKKyNpbmNs
dWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKworbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCitp
bnQgTmF0aXZlS2V5Q29kZUZvcldpbmRvd3NLZXlDb2RlKGludCBrZXlzeW0pCit7CisjaWYgT1Mo
TElOVVgpICYmIFVTRShHVEspCisgICAgLy8gU2VlIC91c3Ivc2hhcmUvWDExL3hrYi9rZXljb2Rl
cy8qCisgICAgc3RhdGljIGNvbnN0IGludCBhc2NpaVRvS2V5Q29kZVtdID0geworICAgICAgICAw
LAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAg
ICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAyMiwKKyAgICAgICAgMjMsCisg
ICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDM2LAorICAgICAgICAw
LAorICAgICAgICAwLAorICAgICAgICA1MCwKKyAgICAgICAgMzcsCisgICAgICAgIDY0LAorICAg
ICAgICAxMjcsCisgICAgICAgIDY2LAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAw
LAorICAgICAgICAwLAorICAgICAgICAxMzEsCisgICAgICAgIDAsCisgICAgICAgIDksCisgICAg
ICAgIDEwMCwKKyAgICAgICAgMTAyLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICA2
NSwgLy8gJyAnCisgICAgICAgIDExMiwgLy8gJyEnCisgICAgICAgIDExNywgLy8gJyInCisgICAg
ICAgIDExNSwgLy8gJyMnCisgICAgICAgIDExMCwgLy8gJyQnCisgICAgICAgIDExMywgLy8gJyUn
CisgICAgICAgIDExMSwgLy8gJyYnCisgICAgICAgIDExNCwgLy8gJycnCisgICAgICAgIDExNiwg
Ly8gJygnCisgICAgICAgIDAsIC8vICcpJworICAgICAgICAxMDcsIC8vICcqJworICAgICAgICAw
LCAvLyAnKycKKyAgICAgICAgMCwgLy8gJywnCisgICAgICAgIDExOCwgLy8gJy0nCisgICAgICAg
IDExOSwgLy8gJy4nCisgICAgICAgIDE0NiwgLy8gJy8nCisgICAgICAgIDE5LCAvLyAnMCcKKyAg
ICAgICAgMTAsIC8vICcxJworICAgICAgICAxMSwgLy8gJzInCisgICAgICAgIDEyLCAvLyAnMycK
KyAgICAgICAgMTMsIC8vICc0JworICAgICAgICAxNCwgLy8gJzUnCisgICAgICAgIDE1LCAvLyAn
NicKKyAgICAgICAgMTYsIC8vICc3JworICAgICAgICAxNywgLy8gJzgnCisgICAgICAgIDE4LCAv
LyAnOScKKyAgICAgICAgMCwgLy8gJzonCisgICAgICAgIDAsIC8vICc7JworICAgICAgICAwLCAv
LyAnPCcKKyAgICAgICAgMCwgLy8gJz0nCisgICAgICAgIDAsIC8vICc+JworICAgICAgICAwLCAv
LyAnPycKKyAgICAgICAgMCwgLy8gJ0AnCisgICAgICAgIDM4LCAvLyAnQScKKyAgICAgICAgNTYs
IC8vICdCJworICAgICAgICA1NCwgLy8gJ0MnCisgICAgICAgIDQwLCAvLyAnRCcKKyAgICAgICAg
MjYsIC8vICdFJworICAgICAgICA0MSwgLy8gJ0YnCisgICAgICAgIDQyLCAvLyAnRycKKyAgICAg
ICAgNDMsIC8vICdIJworICAgICAgICAzMSwgLy8gJ0knCisgICAgICAgIDQ0LCAvLyAnSicKKyAg
ICAgICAgNDUsIC8vICdLJworICAgICAgICA0NiwgLy8gJ0wnCisgICAgICAgIDU4LCAvLyAnTScK
KyAgICAgICAgNTcsIC8vICdOJworICAgICAgICAzMiwgLy8gJ08nCisgICAgICAgIDMzLCAvLyAn
UCcKKyAgICAgICAgMjQsIC8vICdRJworICAgICAgICAyNywgLy8gJ1InCisgICAgICAgIDM5LCAv
LyAnUycKKyAgICAgICAgMjgsIC8vICdUJworICAgICAgICAzMCwgLy8gJ1UnCisgICAgICAgIDU1
LCAvLyAnVicKKyAgICAgICAgMjUsIC8vICdXJworICAgICAgICA1MywgLy8gJ1gnCisgICAgICAg
IDI5LCAvLyAnWScKKyAgICAgICAgNTIsIC8vICdaJworICAgICAgICAxMzMsIC8vICdbJworICAg
ICAgICAxMzQsIC8vICdcJworICAgICAgICAxMzUsIC8vICddJworICAgICAgICAwLCAvLyAnXicK
KyAgICAgICAgMCwgLy8gJ18nCisgICAgICAgIDkwLCAvLyAnYCcKKyAgICAgICAgMzgsIC8vICdh
JworICAgICAgICA1NiwgLy8gJ2InCisgICAgICAgIDU0LCAvLyAnYycKKyAgICAgICAgNDAsIC8v
ICdkJworICAgICAgICAyNiwgLy8gJ2UnCisgICAgICAgIDQxLCAvLyAnZicKKyAgICAgICAgNDIs
IC8vICdnJworICAgICAgICA0MywgLy8gJ2gnCisgICAgICAgIDMxLCAvLyAnaScKKyAgICAgICAg
NDQsIC8vICdqJworICAgICAgICA0NSwgLy8gJ2snCisgICAgICAgIDQ2LCAvLyAnbCcKKyAgICAg
ICAgNTgsIC8vICdtJworICAgICAgICA1NywgLy8gJ24nCisgICAgICAgIDMyLCAvLyAnbycKKyAg
ICAgICAgMzMsIC8vICdwJworICAgICAgICAyNCwgLy8gJ3EnCisgICAgICAgIDI3LCAvLyAncicK
KyAgICAgICAgMzksIC8vICdzJworICAgICAgICAyOCwgLy8gJ3QnCisgICAgICAgIDMwLCAvLyAn
dScKKyAgICAgICAgNTUsIC8vICd2JworICAgICAgICAyNSwgLy8gJ3cnCisgICAgICAgIDUzLCAv
LyAneCcKKyAgICAgICAgMjksIC8vICd5JworICAgICAgICA1MiwgLy8gJ3onCisgICAgICAgIDk2
LCAvLyAneycKKyAgICAgICAgMCwgLy8gJ3wnCisgICAgICAgIDAsIC8vICd9JworICAgICAgICAw
LCAvLyAnficKKyAgICAgICAgMCwgLy8gREVMCisgICAgfTsKKworICAgIGlmIChrZXlzeW0gPD0g
MTI3KQorICAgICAgICByZXR1cm4gYXNjaWlUb0tleUNvZGVba2V5c3ltXTsKKworICAgIHN3aXRj
aCAoa2V5c3ltKSB7CisgICAgY2FzZSBWS0VZX1BSSU9SOgorICAgICAgICByZXR1cm4gMTEyOwor
ICAgIGNhc2UgVktFWV9ORVhUOgorICAgICAgICByZXR1cm4gMTE3OworICAgIGNhc2UgVktFWV9F
TkQ6CisgICAgICAgIHJldHVybiAxMTU7CisgICAgY2FzZSBWS0VZX0hPTUU6CisgICAgICAgIHJl
dHVybiAxMTA7CisgICAgY2FzZSBWS0VZX0xFRlQ6CisgICAgICAgIHJldHVybiAxMTM7CisgICAg
Y2FzZSBWS0VZX1VQOgorICAgICAgICByZXR1cm4gMTExOworICAgIGNhc2UgVktFWV9SSUdIVDoK
KyAgICAgICAgcmV0dXJuIDExNDsKKyAgICBjYXNlIFZLRVlfRE9XTjoKKyAgICAgICAgcmV0dXJu
IDExNjsKKyAgICBjYXNlIFZLRVlfU05BUFNIT1Q6CisgICAgICAgIHJldHVybiAxMDc7CisgICAg
Y2FzZSBWS0VZX0lOU0VSVDoKKyAgICAgICAgcmV0dXJuIDExODsKKyAgICBjYXNlIFZLRVlfREVM
RVRFOgorICAgICAgICByZXR1cm4gMTE5OworICAgIGNhc2UgVktFWV9BUFBTOgorICAgICAgICBy
ZXR1cm4gMTM1OworICAgIGNhc2UgVktFWV9GMToKKyAgICBjYXNlIFZLRVlfRjEgKyAxOgorICAg
IGNhc2UgVktFWV9GMSArIDI6CisgICAgY2FzZSBWS0VZX0YxICsgMzoKKyAgICBjYXNlIFZLRVlf
RjEgKyA0OgorICAgIGNhc2UgVktFWV9GMSArIDU6CisgICAgY2FzZSBWS0VZX0YxICsgNjoKKyAg
ICBjYXNlIFZLRVlfRjEgKyA3OgorICAgIGNhc2UgVktFWV9GMSArIDg6CisgICAgY2FzZSBWS0VZ
X0YxICsgOToKKyAgICBjYXNlIFZLRVlfRjEgKyAxMDoKKyAgICBjYXNlIFZLRVlfRjEgKyAxMToK
KyAgICBjYXNlIFZLRVlfRjEgKyAxMjoKKyAgICBjYXNlIFZLRVlfRjEgKyAxMzoKKyAgICBjYXNl
IFZLRVlfRjEgKyAxNDoKKyAgICBjYXNlIFZLRVlfRjEgKyAxNToKKyAgICBjYXNlIFZLRVlfRjEg
KyAxNjoKKyAgICBjYXNlIFZLRVlfRjEgKyAxNzoKKyAgICBjYXNlIFZLRVlfRjEgKyAxODoKKyAg
ICBjYXNlIFZLRVlfRjEgKyAxOToKKyAgICBjYXNlIFZLRVlfRjEgKyAyMDoKKyAgICBjYXNlIFZL
RVlfRjEgKyAyMToKKyAgICBjYXNlIFZLRVlfRjEgKyAyMjoKKyAgICBjYXNlIFZLRVlfRjEgKyAy
MzoKKyAgICAgICAgcmV0dXJuIDY3ICsgKGtleXN5bSAtIFZLRVlfRjEpOworICAgIGNhc2UgVktF
WV9MU0hJRlQ6CisgICAgICAgIHJldHVybiA1MDsKKyAgICBjYXNlIFZLRVlfUlNISUZUOgorICAg
ICAgICByZXR1cm4gNjI7CisgICAgY2FzZSBWS0VZX0xDT05UUk9MOgorICAgICAgICByZXR1cm4g
Mzc7CisgICAgY2FzZSBWS0VZX1JDT05UUk9MOgorICAgICAgICByZXR1cm4gMTA1OworICAgIGNh
c2UgVktFWV9MTUVOVToKKyAgICAgICAgcmV0dXJuIDY0OworICAgIGNhc2UgVktFWV9STUVOVToK
KyAgICAgICAgcmV0dXJuIDEwODsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGtleXN5bSk7CisgICAgcmV0dXJuIDA7Cisj
ZW5kaWYKK30KKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvS2V5Q29kZU1hcHBpbmcuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBwaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc0Njlm
YWM0YTVjMTE1MDJjOTM1ZTFkZDI4ZGZlNzQyYjhiNmFlMwotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0tleUNvZGVNYXBwaW5n
LmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgS2V5Q29kZU1hcHBpbmdfaAorI2RlZmluZSBLZXlD
b2RlTWFwcGluZ19oCisKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKworLy8gVGhlIGtleWNv
ZGVzIG1hdGNoIHRoZSB2YWx1ZXMgb2YgdGhlIHZpcnR1YWwga2V5Y29kZXMgZm91bmQgaGVyZSBo
dHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2Rk
Mzc1NzMxKHY9dnMuODUpLmFzcHgKK2VudW0geworICAgIFZLRVlfUkVUVVJOICAgPSAweDBELAor
ICAgIFZLRVlfUFJJT1IgICAgPSAweDIxLAorICAgIFZLRVlfTkVYVCAgICAgPSAweDIyLAorICAg
IFZLRVlfRU5EICAgICAgPSAweDIzLAorICAgIFZLRVlfSE9NRSAgICAgPSAweDI0LAorICAgIFZL
RVlfTEVGVCAgICAgPSAweDI1LAorICAgIFZLRVlfVVAgICAgICAgPSAweDI2LAorICAgIFZLRVlf
UklHSFQgICAgPSAweDI3LAorICAgIFZLRVlfRE9XTiAgICAgPSAweDI4LAorICAgIFZLRVlfU05B
UFNIT1QgPSAweDJDLAorICAgIFZLRVlfSU5TRVJUICAgPSAweDJELAorICAgIFZLRVlfREVMRVRF
ICAgPSAweDJFLAorICAgIFZLRVlfQVBQUyAgICAgPSAweDVELAorICAgIFZLRVlfRjEgICAgICAg
PSAweDcwLAorICAgIFZLRVlfTFNISUZUICAgPSAweEEwLAorICAgIFZLRVlfUlNISUZUICAgPSAw
eEExLAorICAgIFZLRVlfTENPTlRST0wgPSAweEEyLAorICAgIFZLRVlfUkNPTlRST0wgPSAweEEz
LAorICAgIFZLRVlfTE1FTlUgICAgPSAweEE0LAorICAgIFZLRVlfUk1FTlUgICAgPSAweEE1LAor
fTsKKworLy8gTWFwIGEgd2luZG93cyBrZXljb2RlIHRvIGEgbmF0aXZlIGtleWNvZGUgb24gT1Mo
TElOVVgpICYmIFVTRShHVEspLgoraW50IE5hdGl2ZUtleUNvZGVGb3JXaW5kb3dzS2V5Q29kZShp
bnQga2V5c3ltKTsKKworfQorCisjZW5kaWYgLy8gS2V5Q29kZU1hcHBpbmdfaApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVn
YXRlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
RGVsZWdhdGUuaAppbmRleCBlNjI2ZWNjZDAxZTIwNjA5NzM3MjJjMDQ3ODNjM2IxM2UzMWMwODIz
Li4wNDk4ZmNiM2YzZjEzNjQ5NjMzZDUyZTE2YWExOGZhMjM5YTIwNzUyIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
RGVsZWdhdGUuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBv
c3RUYXNrKFdlYlRlc3RSdW5uZXI6OldlYlRhc2sqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBv
c3REZWxheWVkVGFzayhXZWJUZXN0UnVubmVyOjpXZWJUYXNrKiwgbG9uZyBsb25nIG1zKSA9IDA7
CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3Rl
bShjb25zdCBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmls
ZW5hbWVzKSA9IDA7CisgICAgdmlydHVhbCBsb25nIGxvbmcgZ2V0Q3VycmVudFRpbWVJbk1pbGxp
c2Vjb25kKCkgPSAwOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVX
ZWJTdHJpbmdGcm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpID0gMDsKIH07CiAK
ICNlbmRpZiAvLyBUZXN0RGVsZWdhdGVfaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCBlNmVh
ZDE1NTE1N2ExYjAzNTFlZjkxNTI0ZmI3NGZhYTg0ZTVlNWJlLi5mMGRhNzk4MzExN2VjMzgxMjc2
YjVhNzhhNTVlNDhlYWRkZDcxZTIwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMzIsNTEg
KzMyLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXN0UnVubmVyLmgiCiAK
LSNpbmNsdWRlICJXZWJBbmltYXRpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiV2ViQmluZGlu
Z3MuaCIKLSNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgotI2luY2x1ZGUgIldlYkRldmlj
ZU9yaWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2Nr
LmgiCi0jaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJXZWJFbGVtZW50LmgiCi0j
aW5jbHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJXZWJGcmFtZS5oIgotI2luY2x1
ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgotI2luY2x1ZGUgIldlYklEQkZhY3Rvcnku
aCIKLSNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKLSNpbmNsdWRlICJXZWJJbnRlbnQuaCIK
LSNpbmNsdWRlICJXZWJJbnRlbnRSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiV2ViS2l0LmgiCi0jaW5j
bHVkZSAiV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCi0jaW5jbHVkZSAiV2ViUHJpbnRQYXJh
bXMuaCIKLSNpbmNsdWRlICJXZWJTY3JpcHRTb3VyY2UuaCIKLSNpbmNsdWRlICJXZWJTZWN1cml0
eVBvbGljeS5oIgotI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiV2ViU3Vycm91
bmRpbmdUZXh0LmgiCi0jaW5jbHVkZSAiV2ViVmlldy5oIgotI2luY2x1ZGUgIldlYldvcmtlcklu
Zm8uaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJEYXRhLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0v
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU2l6ZS5o
IgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgu
aCIKLSNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgotI2luY2x1ZGUg
PGFsZ29yaXRobT4KLSNpbmNsdWRlIDxjbG9jYWxlPgotI2luY2x1ZGUgPGNzdGRsaWI+Ci0jaW5j
bHVkZSA8bGltaXRzPgotI2luY2x1ZGUgPHNzdHJlYW0+Ci0jaW5jbHVkZSA8d3RmL093bkFycmF5
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBPUyhMSU5VWCkg
fHwgT1MoQU5EUk9JRCkKLSNpbmNsdWRlICJsaW51eC9XZWJGb250UmVuZGVyaW5nLmgiCi0jZW5k
aWYKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0Owot
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQogVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcigpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9UZXN0UnVubmVyLmgKaW5kZXggMzllMTlkNTczNjVkMDNjNjY4NDFmODdmMjZhY2Y0NTQxZWUw
N2Q3YS4uNTAzMjcxYjVkOWI1Y2VlMDk5OGJjYTg1MmMzY2EwOTM3NTBhNjVlMiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5l
ci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RSdW5uZXIuaApAQCAtMzMsMjEgKzMzLDYgQEAKICNkZWZpbmUgVGVzdFJ1bm5lcl9oCiAKICNp
bmNsdWRlICJDcHBCb3VuZENsYXNzLmgiCi0jaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50ZW50Q2xp
ZW50LmgiCi0jaW5jbHVkZSAiV2ViVGV4dERpcmVjdGlvbi5oIgotI2luY2x1ZGUgInBsYXRmb3Jt
L1dlYkFycmF5QnVmZmVyVmlldy5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgot
I2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJHZW9s
b2NhdGlvbkNsaWVudE1vY2s7Ci19Ci0KLW5hbWVzcGFjZSB3ZWJraXRfc3VwcG9ydCB7Ci1jbGFz
cyBTY29wZWRUZW1wRGlyZWN0b3J5OwotfQogCiBjbGFzcyBUZXN0UnVubmVyIDogcHVibGljIENw
cEJvdW5kQ2xhc3MgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3Bw
CmluZGV4IGY3ZGIxNzE5OGU2N2Y4YThkODMyMGRlNjVlYTRiNDA5YjYxOTBiM2YuLjlhODY5NTNj
M2NiODUzNzQwZWFhNzhiYWZmYTE4OGM0YjcyNzI4ZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0
SW50ZXJmYWNlcy5jcHAKQEAgLTY3LDYgKzY3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBwb3N0VGFzayhXZWJUYXNrKik7CiAgICAgdmlydHVhbCB2b2lkIHBvc3REZWxheWVkVGFzayhX
ZWJUYXNrKiwgbG9uZyBsb25nIG1zKTsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyByZWdpc3Rlcklz
b2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgYWJzb2x1dGVGaWxl
bmFtZXMpOworICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29u
ZCgpOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgZ2V0QWJzb2x1dGVXZWJTdHJpbmdG
cm9tVVRGOFBhdGgoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpOwogCiBwcml2YXRlOgogICAgIFRl
c3RJbnRlcmZhY2VzIG1faW50ZXJmYWNlczsKQEAgLTE0Nyw2ICsxNDksMTYgQEAgV2ViU3RyaW5n
IFdlYlRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6cmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0o
Y29uc3QgV2ViVmVjdG8KICAgICByZXR1cm4gbV9kZWxlZ2F0ZS0+cmVnaXN0ZXJJc29sYXRlZEZp
bGVTeXN0ZW0oYWJzb2x1dGVGaWxlbmFtZXMpOwogfQogCitsb25nIGxvbmcgV2ViVGVzdEludGVy
ZmFjZXM6OkludGVybmFsOjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKQoreworICAgIHJl
dHVybiBtX2RlbGVnYXRlLT5nZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKTsKK30KKworV2Vi
S2l0OjpXZWJTdHJpbmcgV2ViVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpnZXRBYnNvbHV0ZVdl
YlN0cmluZ0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKK3sKKyAgICByZXR1
cm4gbV9kZWxlZ2F0ZS0+Z2V0QWJzb2x1dGVXZWJTdHJpbmdGcm9tVVRGOFBhdGgocGF0aCk7Cit9
CisKIFdlYlRlc3RJbnRlcmZhY2VzOjpXZWJUZXN0SW50ZXJmYWNlcygpCiB7CiAgICAgbV9pbnRl
cm5hbCA9IG5ldyBJbnRlcm5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmNwcAppbmRleCAyOWFjY2VlZDBmZDllZjI4NDQxOGE3ZjNjZjc1MmZiMmRkY2E2
OWJjLi45OGI4N2JmOGU5MGVlYTQ3MjA0MzU1YzkyNmFjZjZmZmM3M2FhYTBkIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xNTA2LDYgKzE1
MDYsMTYgQEAgV2ViU3RyaW5nIFdlYlZpZXdIb3N0OjpyZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3Rl
bShjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgYWIKICAgICByZXR1cm4gd2Via2l0X3N1cHBv
cnQ6OlJlZ2lzdGVySXNvbGF0ZWRGaWxlU3lzdGVtKGFic29sdXRlRmlsZW5hbWVzKTsKIH0KIAor
bG9uZyBsb25nIFdlYlZpZXdIb3N0OjpnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQoKQorewor
ICAgIHJldHVybiB3ZWJraXRfc3VwcG9ydDo6R2V0Q3VycmVudFRpbWVJbk1pbGxpc2Vjb25kKCk7
Cit9CisKK1dlYktpdDo6V2ViU3RyaW5nIFdlYlZpZXdIb3N0OjpnZXRBYnNvbHV0ZVdlYlN0cmlu
Z0Zyb21VVEY4UGF0aChjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCkKK3sKKyAgICByZXR1cm4gd2Vi
a2l0X3N1cHBvcnQ6OkdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKHBhdGgpOworfQor
CiAvLyBQdWJsaWMgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdlYlZpZXdIb3N0OjpXZWJWaWV3SG9zdChUZXN0
U2hlbGwqIHNoZWxsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
LmgKaW5kZXggOWFmNDdlMDc4Zjc2YWYwN2M0NDAwODc2ZmE5N2FiOWE4NTRkOTUyNy4uODYwMDcx
OTRiMDQzNTY3MmMwMTQ5OTlkNTg2MDUzZWNmZjVmOGI0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xMzksNiArMTM5LDggQEAgY2xhc3MgV2Vi
Vmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpX
ZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2soV2ViVGVzdFJ1bm5lcjo6
V2ViVGFzayopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2soV2Vi
VGVzdFJ1bm5lcjo6V2ViVGFzayosIGxvbmcgbG9uZyBtcykgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBXZWJLaXQ6OldlYlN0cmluZyByZWdpc3Rlcklzb2xhdGVkRmlsZVN5c3RlbShjb25zdCBXZWJL
aXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYlN0cmluZz4mIGFic29sdXRlRmlsZW5hbWVzKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGxvbmcgbG9uZyBnZXRDdXJyZW50VGltZUluTWlsbGlzZWNvbmQo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2Vi
U3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKSBPVkVSUklERTsKIAog
ICAgIC8vIE5hdmlnYXRpb25Ib3N0CiAgICAgdmlydHVhbCBib29sIG5hdmlnYXRlKGNvbnN0IFRl
c3ROYXZpZ2F0aW9uRW50cnkmLCBib29sIHJlbG9hZCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>