<?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>54912</bug_id>
          
          <creation_ts>2011-02-21 15:22:40 -0800</creation_ts>
          <short_desc>Minimize calls to ubrk_setText()</short_desc>
          <delta_ts>2011-03-28 19:47:38 -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>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>55114</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ned Holbrook">ned</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>kbalazs</cc>
    
    <cc>mitz</cc>
    
    <cc>ossy</cc>
    
    <cc>paroga</cc>
    
    <cc>phnixwxz</cc>
    
    <cc>wangxianzhu</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>354843</commentid>
    <comment_count>0</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-21 15:22:40 -0800</bug_when>
    <thetext>Text requiring ICU line breaking involves many calls to ubrk_setText(), or one per invocation of WebCore::isBreakable(). It should be possible to only call ubrk_setText() once per RenderText.

For example, a test app drawing a paragraph of Japanese text currently requires 164 ubrk_setText() calls, but only one is strictly necessary in this case. A quick benchmark of this case showed a 3% overall speedup over 1000 iterations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354845</commentid>
    <comment_count>1</comment_count>
      <attachid>83225</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-21 15:24:35 -0800</bug_when>
    <thetext>Created attachment 83225
Proposed changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354883</commentid>
    <comment_count>2</comment_count>
      <attachid>83225</attachid>
    <who name="">mitz</who>
    <bug_when>2011-02-21 16:11:41 -0800</bug_when>
    <thetext>Comment on attachment 83225
Proposed changes.

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

&gt; Source/WebCore/rendering/RenderText.h:162
&gt; +    LazyLineBreakIterator m_lineBreakIterator;

Increasing the size of RenderText by 16 bytes (I think) is going to have significant impact on memory use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354889</commentid>
    <comment_count>3</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-21 16:15:49 -0800</bug_when>
    <thetext>I have another patch that doesn&apos;t require adding member variables to RenderText but isn&apos;t optimal w/r/t total ubrk_setText() calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354922</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-21 17:16:57 -0800</bug_when>
    <thetext>Attachment 83225 did not build on qt:
Build output: http://queues.webkit.org/results/7944083</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355405</commentid>
    <comment_count>5</comment_count>
      <attachid>83343</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-22 11:00:04 -0800</bug_when>
    <thetext>Created attachment 83343
Modified changes.

This patch avoids adding the RenderText member variable. At least for my test case the number of ubrk_setText() calls is unchanged relative to the previous patch; I can&apos;t guarantee it is optimal in all cases, but it it certainly better than what&apos;s there now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355426</commentid>
    <comment_count>6</comment_count>
      <attachid>83343</attachid>
    <who name="">mitz</who>
    <bug_when>2011-02-22 11:21:07 -0800</bug_when>
    <thetext>Comment on attachment 83343
Modified changes.

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

Looks good! A few coding style comments below.

&gt; Source/WebCore/platform/text/TextBreakIterator.h:63
&gt; +    LazyLineBreakIterator(const UChar* string = 0, int length = 0)

Are you using these default parameters? If not, please remove them.

&gt; Source/WebCore/platform/text/TextBreakIterator.h:68
&gt; +    { }
&gt; +

WebKit style is to do
{
}

&gt; Source/WebCore/platform/text/TextBreakIterator.h:84
&gt; +    }
&gt; +    void reset(const UChar* string, int length)

Missing newline here

&gt; Source/WebCore/platform/text/TextBreakIteratorICU.cpp:81
&gt; +        setUpIterator(createdLineBreakIterator,
&gt; +            staticLineBreakIterator, UBRK_LINE, string, length);

No reason to split this across two lines.

&gt; Source/WebCore/platform/text/TextBreakIteratorICU.cpp:94
&gt; + {

Leading whitespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355435</commentid>
    <comment_count>7</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-22 11:30:38 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; Source/WebCore/platform/text/TextBreakIterator.h:63
&gt; &gt; +    LazyLineBreakIterator(const UChar* string = 0, int length = 0)
&gt; 
&gt; Are you using these default parameters? If not, please remove them.

I am: the LineBreakIteratorInfo std::pair invokes the default constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355436</commentid>
    <comment_count>8</comment_count>
      <attachid>83351</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-22 11:31:04 -0800</bug_when>
    <thetext>Created attachment 83351
Changes per review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355458</commentid>
    <comment_count>9</comment_count>
      <attachid>83351</attachid>
    <who name="">mitz</who>
    <bug_when>2011-02-22 11:52:51 -0800</bug_when>
    <thetext>Comment on attachment 83351
Changes per review.

Ok. Let’s see what the EWS bots think. Not sure how this affects non-ICU builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356111</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-02-23 08:45:43 -0800</bug_when>
    <thetext>So there are no EWS results yet, but the red Qt box next to the first patch suggests that this will break the Qt build, which doesn&apos;t use ICU.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356174</commentid>
    <comment_count>11</comment_count>
      <attachid>83499</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-23 10:24:14 -0800</bug_when>
    <thetext>Created attachment 83499
Changes for Qt.

Let&apos;s see if this fixes the Qt build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356221</commentid>
    <comment_count>12</comment_count>
      <attachid>83499</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-23 11:11:23 -0800</bug_when>
    <thetext>Comment on attachment 83499
Changes for Qt.

I guess I have to set review? to run this by the build bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356240</commentid>
    <comment_count>13</comment_count>
      <attachid>83499</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-23 11:25:13 -0800</bug_when>
    <thetext>Comment on attachment 83499
Changes for Qt.

Clearing review flag now that this is in the EWS queue. The EWS bots will still build this since it had review? at one point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356242</commentid>
    <comment_count>14</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-23 11:26:19 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Clearing review flag now that this is in the EWS queue. The EWS bots will still build this since it had review? at one point.

Great, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356540</commentid>
    <comment_count>15</comment_count>
      <attachid>83499</attachid>
    <who name="">mitz</who>
    <bug_when>2011-02-23 16:36:24 -0800</bug_when>
    <thetext>Comment on attachment 83499
Changes for Qt.

This seems to build everywhere (I trust that Ned has built on Mac OS X). Ned, would you like to change the review flag to &apos;?&apos; again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356543</commentid>
    <comment_count>16</comment_count>
      <attachid>83499</attachid>
    <who name="">mitz</who>
    <bug_when>2011-02-23 16:39:10 -0800</bug_when>
    <thetext>Comment on attachment 83499
Changes for Qt.

Whoops, no change log!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356544</commentid>
    <comment_count>17</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-23 16:41:21 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 83499 [details])
&gt; Whoops, no change log!

Whoops indeed! Coming right up…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356553</commentid>
    <comment_count>18</comment_count>
      <attachid>83579</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-23 16:52:14 -0800</bug_when>
    <thetext>Created attachment 83579
Final changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356559</commentid>
    <comment_count>19</comment_count>
      <attachid>83579</attachid>
    <who name="">mitz</who>
    <bug_when>2011-02-23 16:59:11 -0800</bug_when>
    <thetext>Comment on attachment 83579
Final changes.

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

&gt; Source/WebCore/ChangeLog:34
&gt; +2011-02-23  Ned Holbrook  &lt;nholbrook@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Minimize calls to ubrk_setText()
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=54912
&gt; +        &lt;rdar://problem/9032774&gt;
&gt; +
&gt; +        No new tests. (OOPS!)
&gt; +
&gt; +        * platform/text/TextBreakIterator.h:
&gt; +        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
&gt; +        (WebCore::LazyLineBreakIterator::~LazyLineBreakIterator):
&gt; +        (WebCore::LazyLineBreakIterator::string):
&gt; +        (WebCore::LazyLineBreakIterator::length):
&gt; +        (WebCore::LazyLineBreakIterator::get):
&gt; +        (WebCore::LazyLineBreakIterator::reset):
&gt; +        * platform/text/TextBreakIteratorICU.cpp:
&gt; +        (WebCore::acquireLineBreakIterator):
&gt; +        (WebCore::releaseLineBreakIterator):
&gt; +        * platform/text/qt/TextBreakIteratorQt.cpp:
&gt; +        (WebCore::acquireLineBreakIterator):
&gt; +        (WebCore::releaseLineBreakIterator):
&gt; +        * rendering/RenderBlock.h:
&gt; +        * rendering/RenderBlockLineLayout.cpp:
&gt; +        (WebCore::RenderBlock::layoutInlineChildren):
&gt; +        (WebCore::RenderBlock::findNextLineBreak):
&gt; +        * rendering/RenderText.cpp:
&gt; +        (WebCore::RenderText::computePreferredLogicalWidths):
&gt; +        * rendering/break_lines.cpp:
&gt; +        (WebCore::nextBreakablePosition):
&gt; +        * rendering/break_lines.h:
&gt; +        (WebCore::isBreakable):
&gt; +

Sorry, Ned, this is not how it works (even if some contributors sometimes get away with it) :-(.

For a change like this, at the very least you should give an overview of the change before the file and function listing. This would also be a great place to say by how much the change reduces calls to ubrk_setText(). Alternatively, or in addition to this, you should fill out the function listing with comments about the changes in each function, where it makes sense.

Finally, you should remove the “No new tests. (OOPS!)” line. The change log can’t be committed with that line, and instead you can comment that there are no new tests because this is only a performance optimization. But just removing the line is also fine, in my opinion.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356570</commentid>
    <comment_count>20</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-23 17:06:14 -0800</bug_when>
    <thetext>Sorry, I&apos;m new here. ;-) Thanks for bearing with me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356584</commentid>
    <comment_count>21</comment_count>
      <attachid>83590</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-23 17:32:12 -0800</bug_when>
    <thetext>Created attachment 83590
Final, final changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356587</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-23 17:35:25 -0800</bug_when>
    <thetext>Attachment 83590 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:11:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:12:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:13:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 5 in 9 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>356588</commentid>
    <comment_count>23</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2011-02-23 17:36:07 -0800</bug_when>
    <thetext>oh no! tabs!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356589</commentid>
    <comment_count>24</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-23 17:37:24 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; oh no! tabs!

You would not believe the profanities I just uttered. :-P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356590</commentid>
    <comment_count>25</comment_count>
      <attachid>83590</attachid>
    <who name="">mitz</who>
    <bug_when>2011-02-23 17:38:32 -0800</bug_when>
    <thetext>Comment on attachment 83590
Final, final changes.

I’ll fix the tabs in the change log when committing (the pre-commit hook won’t allow tabs to be checked in).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356591</commentid>
    <comment_count>26</comment_count>
      <attachid>83591</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-23 17:40:13 -0800</bug_when>
    <thetext>Created attachment 83591
This had better be it.

The gazillionth time&apos;s the charm, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356596</commentid>
    <comment_count>27</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-02-23 17:45:34 -0800</bug_when>
    <thetext>Committed r79510.
&lt;http://trac.webkit.org/projects/webkit/changeset/79510&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356692</commentid>
    <comment_count>28</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-23 23:05:45 -0800</bug_when>
    <thetext>Reopen, because it was rolled out http://trac.webkit.org/changeset/79518.

It made ~200 tests crash on Qt bot. I&apos;m going to attach a crash log to help finding whar happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356694</commentid>
    <comment_count>29</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-23 23:08:30 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; Reopen, because it was rolled out http://trac.webkit.org/changeset/79518.
&gt; 
&gt; It made ~200 tests crash on Qt bot. I&apos;m going to attach a crash log to help finding whar happened.

Thanks, I was hoping my untested code worked, but I guess this puts the lie to that. Is there a quicker way to test my next attempt short of waiting for tests to fail again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356700</commentid>
    <comment_count>30</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-23 23:23:49 -0800</bug_when>
    <thetext>Longer way, but you have to install once the QtWebKit builder and tester VM:
http://webkit.sed.hu/blog/20101028/qtwebkit-builder-and-tester-virtual-machine

Shorter way: you upload patch to bugzilla or gist or ... and ping me on #webkit.
My nick is ossy, and I can run a quick test between ~10:00-20:00 (CET).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356714</commentid>
    <comment_count>31</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-24 00:02:39 -0800</bug_when>
    <thetext>(In reply to comment #30)

Thanks. Any further patches from me are going to have to wait until tomorrow, so I&apos;ll look for a crash log then and see what needs to be done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356808</commentid>
    <comment_count>32</comment_count>
      <attachid>83627</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-24 02:50:36 -0800</bug_when>
    <thetext>Created attachment 83627
glibc backtrace

$ gdb WebKitBuild/Debug/bin/DumpRenderTree
(gdb) run css1/text_properties/text_transform.html
*** glibc detected *** /home/oszi/WebKit/WebKitBuild/Debug/bin/DumpRenderTree: realloc(): invalid pointer: 0xf77b4120 ***
======= Backtrace: =========
...
&lt;attached&gt;
...

Program received signal SIGABRT, Aborted.
(gdb) bt
...
&lt;absolutely useless backtrace :/&gt;
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357009</commentid>
    <comment_count>33</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-24 08:17:11 -0800</bug_when>
    <thetext>Hopefully the qt bug has been fixed by http://trac.webkit.org/changeset/79567 so
a rebased patch won&apos;t cause regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357074</commentid>
    <comment_count>34</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-24 09:18:49 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; Hopefully the qt bug has been fixed by http://trac.webkit.org/changeset/79567 so
&gt; a rebased patch won&apos;t cause regression.

I&apos;ll rebase the patch and we can try this again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357253</commentid>
    <comment_count>35</comment_count>
      <attachid>83694</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-24 12:09:16 -0800</bug_when>
    <thetext>Created attachment 83694
Reapplied changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357258</commentid>
    <comment_count>36</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-24 12:12:38 -0800</bug_when>
    <thetext>Wait, the TextBreakIteratorQt.cpp needs further modification in order to compile with r79567.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357259</commentid>
    <comment_count>37</comment_count>
      <attachid>83694</attachid>
    <who name="">mitz</who>
    <bug_when>2011-02-24 12:13:06 -0800</bug_when>
    <thetext>Comment on attachment 83694
Reapplied changes.

Waiting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357262</commentid>
    <comment_count>38</comment_count>
      <attachid>83695</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-24 12:17:31 -0800</bug_when>
    <thetext>Created attachment 83695
Changes for Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357325</commentid>
    <comment_count>39</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-24 13:15:25 -0800</bug_when>
    <thetext>Attachment 83695 did not build on qt:
Build output: http://queues.webkit.org/results/7982552</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357337</commentid>
    <comment_count>40</comment_count>
      <attachid>83709</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-24 13:37:48 -0800</bug_when>
    <thetext>Created attachment 83709
Changes for Qt.

Fix copy-paste error in TextBreakIteratorQt.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357429</commentid>
    <comment_count>41</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-02-24 15:04:04 -0800</bug_when>
    <thetext>Can you please also add changes to TextBreakIteratorWinCE.cpp? The last change broke WinCE build bot.
I wanted to add the needed changes as patch here, but didn&apos;t found the time to create it today. :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357447</commentid>
    <comment_count>42</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-24 15:22:08 -0800</bug_when>
    <thetext>Attachment 83709 did not build on qt:
Build output: http://queues.webkit.org/results/7980608</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357455</commentid>
    <comment_count>43</comment_count>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-24 15:35:21 -0800</bug_when>
    <thetext>(In reply to comment #42)
&gt; Attachment 83709 [details] did not build on qt:
&gt; Build output: http://queues.webkit.org/results/7980608

The build output makes no sense to me: the line numbers don&apos;t correspond to my copy of the source, plus it&apos;s complaining about &quot;no matching function for call to ‘WebCore::TextBreakIterator::TextBreakIterator(QTextBoundaryFinder::BoundaryType, QString)’&quot; which I&apos;m pretty certain is on line 46. Can someone help me figure this out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357723</commentid>
    <comment_count>44</comment_count>
      <attachid>83775</attachid>
    <who name="Ned Holbrook">ned</who>
    <bug_when>2011-02-24 23:21:01 -0800</bug_when>
    <thetext>Created attachment 83775
Changes for additional platforms.

Let&apos;s see how this one goes, build-wise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357775</commentid>
    <comment_count>45</comment_count>
      <attachid>83775</attachid>
    <who name="">mitz</who>
    <bug_when>2011-02-25 01:15:02 -0800</bug_when>
    <thetext>Comment on attachment 83775
Changes for additional platforms.

Setting r? to get builders’ attention.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357780</commentid>
    <comment_count>46</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-25 01:46:25 -0800</bug_when>
    <thetext>(In reply to comment #45)
&gt; (From update of attachment 83775 [details])
&gt; Setting r? to get builders’ attention.

It works on Qt now, and all tests pass. Thanks for fixining.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357824</commentid>
    <comment_count>47</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-25 04:02:53 -0800</bug_when>
    <thetext>Attachment 83775 did not build on qt:
Build output: http://queues.webkit.org/results/8043172</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357829</commentid>
    <comment_count>48</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-25 04:10:47 -0800</bug_when>
    <thetext>(In reply to comment #47)
&gt; Attachment 83775 [details] did not build on qt:
&gt; Build output: http://queues.webkit.org/results/8043172

OMG. :-S Qt EWS is stucked on r78989, but the ToT is r79669 now.
Eric, have you got any idea how is it possible?

Otherwise the patch works on ToT with Qt, as I said before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357831</commentid>
    <comment_count>49</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-25 04:12:58 -0800</bug_when>
    <thetext>(In reply to comment #48)
&gt; (In reply to comment #47)
&gt; &gt; Attachment 83775 [details] [details] did not build on qt:
&gt; &gt; Build output: http://queues.webkit.org/results/8043172
&gt; 
&gt; OMG. :-S Qt EWS is stucked on r78989, but the ToT is r79669 now.
&gt; Eric, have you got any idea how is it possible?
&gt; 
&gt; Otherwise the patch works on ToT with Qt, as I said before.

I suspect the git checkout on that bot got confused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357832</commentid>
    <comment_count>50</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-25 04:14:57 -0800</bug_when>
    <thetext>(In reply to comment #49)
&gt; I suspect the git checkout on that bot got confused.
I got it, update-webkit is failing now. I&apos;m going to fix it.
Is it possible to make EWS not trying build if update failed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357835</commentid>
    <comment_count>51</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-25 04:19:40 -0800</bug_when>
    <thetext>(In reply to comment #50)
&gt; (In reply to comment #49)
&gt; &gt; I suspect the git checkout on that bot got confused.
&gt; I got it, update-webkit is failing now. I&apos;m going to fix it.
&gt; Is it possible to make EWS not trying build if update failed?

Bug 49395.  A lot like bug 46636.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358016</commentid>
    <comment_count>52</comment_count>
      <attachid>83775</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-25 10:33:55 -0800</bug_when>
    <thetext>Comment on attachment 83775
Changes for additional platforms.

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

Some comments about slight improvements. These could wait until afterward, though. I do not mean to reverse Mitz’s review+ with these.

&gt; Source/WebCore/platform/text/TextBreakIterator.h:61
&gt; +class LazyLineBreakIterator {

Should probably mark this non-copyable with the macro.

&gt; Source/WebCore/platform/text/TextBreakIterator.h:79
&gt; +    TextBreakIterator* get()

I’d prefer a noun name for this rather than a verb. Maybe iterator().

&gt; Source/WebCore/platform/text/TextBreakIteratorICU.cpp:86
&gt; +        bool createdNewLineBreakIterator = false;
&gt; +        setUpIterator(createdNewLineBreakIterator, lineBreakIterator, UBRK_LINE, string, length);

I think the local variable should have a name that makes it clear it’s not the same as the global. And why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358020</commentid>
    <comment_count>53</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-02-25 10:37:13 -0800</bug_when>
    <thetext>I committed &lt;http://trac.webkit.org/projects/webkit/changeset/79694&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374953</commentid>
    <comment_count>54</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-03-28 19:36:51 -0700</bug_when>
    <thetext>Thanks nholbrook@apple.com for fixing this.

Just FYI, I also filed a bug similar to this one: https://bugs.webkit.org/show_bug.cgi?id=52715</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374959</commentid>
    <comment_count>55</comment_count>
    <who name="Xianzhu Wang">phnixwxz</who>
    <bug_when>2011-03-28 19:47:38 -0700</bug_when>
    <thetext>*** Bug 52715 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83225</attachid>
            <date>2011-02-21 15:24:35 -0800</date>
            <delta_ts>2011-02-22 11:00:04 -0800</delta_ts>
            <desc>Proposed changes.</desc>
            <filename>ubrk_setText-minimal.txt</filename>
            <type>text/plain</type>
            <size>10228</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmgJKHJldmlzaW9uIDc4NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFRleHRCcmVha0l0ZXJhdG9yOwogCi0gICAgLy8g
Tm90ZTogVGhlIHJldHVybmVkIGl0ZXJhdG9yIGlzIGdvb2Qgb25seSB1bnRpbCB5b3UgZ2V0IGFu
b3RoZXIgaXRlcmF0b3IuCisgICAgLy8gTm90ZTogVGhlIHJldHVybmVkIGl0ZXJhdG9yIGlzIGdv
b2Qgb25seSB1bnRpbCB5b3UgZ2V0IGFub3RoZXIgaXRlcmF0b3IsIHdpdGggdGhlIGV4Y2VwdGlv
biBvZiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IuCiAKICAgICAvLyBJdGVyYXRlcyBvdmVyICJl
eHRlbmRlZCBncmFwaGVtZSBjbHVzdGVycyIsIGFzIGRlZmluZWQgaW4gVUFYICMyOS4KICAgICAv
LyBOb3RlIHRoYXQgcGxhdGZvcm0gaW1wbGVtZW50YXRpb25zIG1heSBiZSBsZXNzIHNvcGhpc3Rp
Y2F0ZWQgLSBlLmcuIElDVSBwcmlvciB0bwpAQCAtNDMsNyArNDMsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoY29u
c3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiB3b3JkQnJl
YWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwotICAgIFRleHRCcmVha0l0ZXJh
dG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOworICAgIFRl
eHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoKTsKKyAgICB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJ
dGVyYXRvciopOwogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3Io
Y29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIGludCB0ZXh0QnJlYWtGaXJzdChUZXh0
QnJlYWtJdGVyYXRvciopOwpAQCAtNTcsNiArNTgsNDUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY29uc3QgaW50IFRleHRCcmVha0RvbmUgPSAtMTsKIAorY2xhc3MgTGF6eUxpbmVCcmVh
a0l0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICBMYXp5TGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNo
YXIqIHN0cmluZywgaW50IGxlbmd0aCkKKyAgICAgICAgOiBtX3N0cmluZyhzdHJpbmcpCisgICAg
ICAgICwgbV9sZW5ndGgobGVuZ3RoKQorICAgICAgICAsIG1faXRlcmF0b3IoMCkKKyAgICB7IH0K
KworICAgIH5MYXp5TGluZUJyZWFrSXRlcmF0b3IoKQorICAgIHsKKyAgICAgICAgaWYgKG1faXRl
cmF0b3IpCisgICAgICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IobV9pdGVyYXRvcik7
CisgICAgfQorCisgICAgY29uc3QgVUNoYXIqIHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3Ry
aW5nOyB9CisgICAgaW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKKyAg
ICBUZXh0QnJlYWtJdGVyYXRvciogZ2V0KCkKKyAgICB7CisgICAgICAgIGlmICghbV9pdGVyYXRv
cikKKyAgICAgICAgICAgIG1faXRlcmF0b3IgPSBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IobV9z
dHJpbmcsIG1fbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIG1faXRlcmF0b3I7CisgICAgfQorICAg
IHZvaWQgcmVzZXQoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKKyAgICB7CisgICAg
ICAgIGlmIChtX2l0ZXJhdG9yKQorICAgICAgICAgICAgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9y
KG1faXRlcmF0b3IpOworCisgICAgICAgIG1fc3RyaW5nID0gc3RyaW5nOworICAgICAgICBtX2xl
bmd0aCA9IGxlbmd0aDsKKyAgICAgICAgbV9pdGVyYXRvciA9IDA7CisgICAgfQorCitwcml2YXRl
OgorICAgIGNvbnN0IFVDaGFyKiBtX3N0cmluZzsKKyAgICBpbnQgbV9sZW5ndGg7CisgICAgVGV4
dEJyZWFrSXRlcmF0b3IqIG1faXRlcmF0b3I7Cit9OworCiB9CiAKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklD
VS5jcHAJKHJldmlzaW9uIDc4NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAK
ICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgog
Cit1c2luZyBuYW1lc3BhY2Ugc3RkOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBU
ZXh0QnJlYWtJdGVyYXRvciogc2V0VXBJdGVyYXRvcihib29sJiBjcmVhdGVkSXRlcmF0b3IsIFRl
eHRCcmVha0l0ZXJhdG9yKiYgaXRlcmF0b3IsCkBAIC02OCwxMiArNzAsMzUgQEAgVGV4dEJyZWFr
SXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbgogICAgICAgICBzdGF0aWNXb3JkQnJlYWtJ
dGVyYXRvciwgVUJSS19XT1JELCBzdHJpbmcsIGxlbmd0aCk7CiB9CiAKLVRleHRCcmVha0l0ZXJh
dG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQor
c3RhdGljIGJvb2wgY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yID0gZmFsc2U7CitzdGF0aWMgVGV4
dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOworCitUZXh0QnJlYWtJdGVy
YXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBs
ZW5ndGgpCit7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yID0gMDsK
KyAgICBpZiAoIWNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciB8fCBzdGF0aWNMaW5lQnJlYWtJdGVy
YXRvcikgeworICAgICAgICBzZXRVcEl0ZXJhdG9yKGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciwK
KyAgICAgICAgICAgIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBVQlJLX0xJTkUsIHN0cmluZywg
bGVuZ3RoKTsKKyAgICAgICAgc3dhcChzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgbGluZUJyZWFr
SXRlcmF0b3IpOworICAgIH0KKworICAgIGlmICghbGluZUJyZWFrSXRlcmF0b3IpIHsKKyAgICAg
ICAgYm9vbCBjcmVhdGVkTmV3TGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKKyAgICAgICAgc2V0
VXBJdGVyYXRvcihjcmVhdGVkTmV3TGluZUJyZWFrSXRlcmF0b3IsIGxpbmVCcmVha0l0ZXJhdG9y
LCBVQlJLX0xJTkUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICB9CisKKyAgICByZXR1cm4gbGluZUJy
ZWFrSXRlcmF0b3I7Cit9CisKK3ZvaWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVh
a0l0ZXJhdG9yKiBpdGVyYXRvcikKIHsKLSAgICBzdGF0aWMgYm9vbCBjcmVhdGVkTGluZUJyZWFr
SXRlcmF0b3IgPSBmYWxzZTsKLSAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0xp
bmVCcmVha0l0ZXJhdG9yOwotICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKGNyZWF0ZWRMaW5lQnJl
YWtJdGVyYXRvciwKLSAgICAgICAgc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFVCUktfTElORSwg
c3RyaW5nLCBsZW5ndGgpOworICAgIEFTU0VSVChjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IpOwor
ICAgIEFTU0VSVChpdGVyYXRvcik7CisKKyAgICBpZiAoIXN0YXRpY0xpbmVCcmVha0l0ZXJhdG9y
KQorICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciA9IGl0ZXJhdG9yOworICAgIGVsc2UK
KyAgICAgICAgdWJya19jbG9zZShyZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRl
cmF0b3IpKTsKIH0KIAogVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihj
b25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHJldmlzaW9uIDc4NDI4
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3MjIsNyArMTcyMiw3IEBAIElubGluZUl0ZXJhdG9yIFJlbmRl
ckJsb2NrOjpmaW5kTmV4dExpbmUKICAgICAgICAgICAgICAgICAgICAgbWlkV29yZEJyZWFrID0g
dyArIHdyYXBXICsgY2hhcldpZHRoID4gd2lkdGg7CiAgICAgICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICAgICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09ICdcbicgfHwgKGN1cnJXUyAhPSBQ
UkUgJiYgIWF0U3RhcnQgJiYgaXNCcmVha2FibGUoc3RyLCBwb3MsIHN0cmxlbiwgbmV4dEJyZWFr
YWJsZSwgYnJlYWtOQlNQKSAmJiAoc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5zTm9uZSB8fCAo
cG9zICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkpOworICAgICAgICAgICAgICAgIGJv
b2wgYmV0d2VlbldvcmRzID0gYyA9PSAnXG4nIHx8IChjdXJyV1MgIT0gUFJFICYmICFhdFN0YXJ0
ICYmIGlzQnJlYWthYmxlKHQtPmxpbmVCcmVha0l0ZXJhdG9yKCksIHBvcywgbmV4dEJyZWFrYWJs
ZSwgYnJlYWtOQlNQKSAmJiAoc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5zTm9uZSB8fCAocG9z
ICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkpOwogCiAgICAgICAgICAgICAgICAgaWYg
KGJldHdlZW5Xb3JkcyB8fCBtaWRXb3JkQnJlYWspIHsKICAgICAgICAgICAgICAgICAgICAgYm9v
bCBzdG9wcGVkSWdub3JpbmdTcGFjZXMgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDc4NDI4KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw3IEBA
IFJlbmRlclRleHQ6OlJlbmRlclRleHQoTm9kZSogbm9kZSwgUGFzc1IKICAgICAgOiBSZW5kZXJP
YmplY3Qobm9kZSkKICAgICAgLCBtX21pbldpZHRoKC0xKQogICAgICAsIG1fdGV4dChzdHIpCisg
ICAgICwgbV9saW5lQnJlYWtJdGVyYXRvcihtX3RleHQuY2hhcmFjdGVycygpLCBtX3RleHQubGVu
Z3RoKCkpCiAgICAgICwgbV9maXJzdFRleHRCb3goMCkKICAgICAgLCBtX2xhc3RUZXh0Qm94KDAp
CiAgICAgICwgbV9tYXhXaWR0aCgtMSkKQEAgLTgwMyw3ICs4MDQsNyBAQCB2b2lkIFJlbmRlclRl
eHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCi0gICAgICAgIGJvb2wgaGFzQnJlYWsgPSBicmVha0FsbCB8fCBpc0JyZWFrYWJsZSh0
eHQsIGksIGxlbiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKTsKKyAgICAgICAgYm9vbCBoYXNC
cmVhayA9IGJyZWFrQWxsIHx8IGlzQnJlYWthYmxlKG1fbGluZUJyZWFrSXRlcmF0b3IsIGksIG5l
eHRCcmVha2FibGUsIGJyZWFrTkJTUCk7CiAgICAgICAgIGJvb2wgYmV0d2VlbldvcmRzID0gdHJ1
ZTsKICAgICAgICAgaW50IGogPSBpOwogICAgICAgICB3aGlsZSAoYyAhPSAnXG4nICYmICFpc1Nw
YWNlQWNjb3JkaW5nVG9TdHlsZShjLCBzdHlsZSgpKSAmJiBjICE9ICdcdCcgJiYgYyAhPSBzb2Z0
SHlwaGVuKSB7CkBAIC04MTEsNyArODEyLDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJl
ZmVycmVkTG9naWNhbAogICAgICAgICAgICAgaWYgKGogPT0gbGVuKQogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgYyA9IHR4dFtqXTsKLSAgICAgICAgICAgIGlmIChpc0JyZWFr
YWJsZSh0eHQsIGosIGxlbiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSkKKyAgICAgICAgICAg
IGlmIChpc0JyZWFrYWJsZShtX2xpbmVCcmVha0l0ZXJhdG9yLCBqLCBuZXh0QnJlYWthYmxlLCBi
cmVha05CU1ApKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgaWYgKGJyZWFr
QWxsKSB7CiAgICAgICAgICAgICAgICAgYmV0d2VlbldvcmRzID0gZmFsc2U7CkBAIC0xMTM3LDYg
KzExMzgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OnNldFRleHRJbnRlcm5hbChQYXNzUmVmCiAgICAg
QVNTRVJUKG1fdGV4dCk7CiAgICAgQVNTRVJUKCFpc0JSKCkgfHwgKHRleHRMZW5ndGgoKSA9PSAx
ICYmIG1fdGV4dFswXSA9PSAnXG4nKSk7CiAKKyAgICBtX2xpbmVCcmVha0l0ZXJhdG9yLnJlc2V0
KG1fdGV4dC5jaGFyYWN0ZXJzKCksIG1fdGV4dC5sZW5ndGgoKSk7CiAgICAgbV9pc0FsbEFTQ0lJ
ID0gbV90ZXh0LmNvbnRhaW5zT25seUFTQ0lJKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuaAkocmV2aXNpb24gNzg0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAj
ZGVmaW5lIFJlbmRlclRleHRfaAogCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVk
ZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC02OSw2ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFVD
aGFyKiBjaGFyYWN0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0LmNoYXJhY3RlcnMoKTsgfQog
ICAgIHVuc2lnbmVkIHRleHRMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3RleHQubGVuZ3RoKCk7
IH0gLy8gbm9uIHZpcnR1YWwgaW1wbGVtZW50YXRpb24gb2YgbGVuZ3RoKCkKKyAgICBMYXp5TGlu
ZUJyZWFrSXRlcmF0b3ImIGxpbmVCcmVha0l0ZXJhdG9yKCkgeyByZXR1cm4gbV9saW5lQnJlYWtJ
dGVyYXRvcjsgfQogICAgIHZvaWQgcG9zaXRpb25MaW5lQm94KElubGluZUJveCopOwogCiAgICAg
dmlydHVhbCB1bnNpZ25lZCB3aWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBsZW4sIGNvbnN0
IEZvbnQmLCBpbnQgeFBvcywgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFj
a0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKQEAgLTE1Nyw2ICsxNTksNyBA
QCBwcml2YXRlOgogICAgIGludCBtX21pbldpZHRoOyAvLyBoZXJlIHRvIG1pbmltaXplIHBhZGRp
bmcgaW4gNjQtYml0LgogCiAgICAgU3RyaW5nIG1fdGV4dDsKKyAgICBMYXp5TGluZUJyZWFrSXRl
cmF0b3IgbV9saW5lQnJlYWtJdGVyYXRvcjsKIAogICAgIElubGluZVRleHRCb3gqIG1fZmlyc3RU
ZXh0Qm94OwogICAgIElubGluZVRleHRCb3gqIG1fbGFzdFRleHRCb3g7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHJldmlzaW9uIDc4NDI4KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTU0LDExICsxNTQsMTAgQEAgc3RhdGljIGlubGluZSBUZXh0QnJlYWtMb2NhdG9yUmVmIGxpbmVC
cgogfQogI2VuZGlmCiAKLWludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqIHN0
ciwgaW50IHBvcywgaW50IGxlbiwgYm9vbCB0cmVhdE5vQnJlYWtTcGFjZUFzQnJlYWspCitpbnQg
bmV4dEJyZWFrYWJsZVBvc2l0aW9uKExhenlMaW5lQnJlYWtJdGVyYXRvciYgbGF6eUJyZWFrSXRl
cmF0b3IsIGludCBwb3MsIGJvb2wgdHJlYXROb0JyZWFrU3BhY2VBc0JyZWFrKQogewotI2lmICFQ
TEFURk9STShNQUMpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQotICAgIFRleHRCcmVh
a0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yID0gMDsKLSNlbmRpZgorICAgIGNvbnN0IFVDaGFyKiBz
dHIgPSBsYXp5QnJlYWtJdGVyYXRvci5zdHJpbmcoKTsKKyAgICBpbnQgbGVuID0gbGF6eUJyZWFr
SXRlcmF0b3IubGVuZ3RoKCk7CiAgICAgaW50IG5leHRCcmVhayA9IC0xOwogCiAgICAgVUNoYXIg
bGFzdENoID0gcG9zID4gMCA/IHN0cltwb3MgLSAxXSA6IDA7CkBAIC0xNzEsOCArMTcwLDcgQEAg
aW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hhciogcwogICAgICAgICBpZiAobmVl
ZHNMaW5lQnJlYWtJdGVyYXRvcihjaCkgfHwgbmVlZHNMaW5lQnJlYWtJdGVyYXRvcihsYXN0Q2gp
KSB7CiAgICAgICAgICAgICBpZiAobmV4dEJyZWFrIDwgaSAmJiBpKSB7CiAjaWYgIVBMQVRGT1JN
KE1BQykgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpCi0gICAgICAgICAgICAgICAgaWYg
KCFicmVha0l0ZXJhdG9yKQotICAgICAgICAgICAgICAgICAgICBicmVha0l0ZXJhdG9yID0gbGlu
ZUJyZWFrSXRlcmF0b3Ioc3RyLCBsZW4pOworICAgICAgICAgICAgICAgIFRleHRCcmVha0l0ZXJh
dG9yKiBicmVha0l0ZXJhdG9yID0gbGF6eUJyZWFrSXRlcmF0b3IuZ2V0KCk7CiAgICAgICAgICAg
ICAgICAgaWYgKGJyZWFrSXRlcmF0b3IpCiAgICAgICAgICAgICAgICAgICAgIG5leHRCcmVhayA9
IHRleHRCcmVha0ZvbGxvd2luZyhicmVha0l0ZXJhdG9yLCBpIC0gMSk7CiAjZWxzZQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHJldmlzaW9uIDc4NDI4KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI1LDE0ICsyNSwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBpbnQgbmV4dEJy
ZWFrYWJsZVBvc2l0aW9uKGNvbnN0IFVDaGFyKiwgaW50IHBvcywgaW50IGxlbiwgYm9vbCBicmVh
a05CU1AgPSBmYWxzZSk7CitjbGFzcyBMYXp5TGluZUJyZWFrSXRlcmF0b3I7CiAKLSAgICBpbmxp
bmUgYm9vbCBpc0JyZWFrYWJsZShjb25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBp
bnQmIG5leHRCcmVha2FibGUsIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpCi0gICAgewotICAgICAg
ICBpZiAocG9zID4gbmV4dEJyZWFrYWJsZSkKLSAgICAgICAgICAgIG5leHRCcmVha2FibGUgPSBu
ZXh0QnJlYWthYmxlUG9zaXRpb24oc3RyLCBwb3MsIGxlbiwgYnJlYWtOQlNQKTsKLSAgICAgICAg
cmV0dXJuIHBvcyA9PSBuZXh0QnJlYWthYmxlOwotICAgIH0KK2ludCBuZXh0QnJlYWthYmxlUG9z
aXRpb24oTGF6eUxpbmVCcmVha0l0ZXJhdG9yJiwgaW50IHBvcywgYm9vbCBicmVha05CU1AgPSBm
YWxzZSk7CisKK2lubGluZSBib29sIGlzQnJlYWthYmxlKExhenlMaW5lQnJlYWtJdGVyYXRvciYg
bGF6eUJyZWFrSXRlcmF0b3IsIGludCBwb3MsIGludCYgbmV4dEJyZWFrYWJsZSwgYm9vbCBicmVh
a05CU1AgPSBmYWxzZSkKK3sKKyAgICBpZiAocG9zID4gbmV4dEJyZWFrYWJsZSkKKyAgICAgICAg
bmV4dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbihsYXp5QnJlYWtJdGVyYXRvciwg
cG9zLCBicmVha05CU1ApOworICAgIHJldHVybiBwb3MgPT0gbmV4dEJyZWFrYWJsZTsKK30KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83343</attachid>
            <date>2011-02-22 11:00:04 -0800</date>
            <delta_ts>2011-02-22 11:31:04 -0800</delta_ts>
            <desc>Modified changes.</desc>
            <filename>ubrk_setText-no-RenderText.txt</filename>
            <type>text/plain</type>
            <size>12638</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmgJKHJldmlzaW9uIDc4NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFRleHRCcmVha0l0ZXJhdG9yOwogCi0gICAgLy8g
Tm90ZTogVGhlIHJldHVybmVkIGl0ZXJhdG9yIGlzIGdvb2Qgb25seSB1bnRpbCB5b3UgZ2V0IGFu
b3RoZXIgaXRlcmF0b3IuCisgICAgLy8gTm90ZTogVGhlIHJldHVybmVkIGl0ZXJhdG9yIGlzIGdv
b2Qgb25seSB1bnRpbCB5b3UgZ2V0IGFub3RoZXIgaXRlcmF0b3IsIHdpdGggdGhlIGV4Y2VwdGlv
biBvZiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IuCiAKICAgICAvLyBJdGVyYXRlcyBvdmVyICJl
eHRlbmRlZCBncmFwaGVtZSBjbHVzdGVycyIsIGFzIGRlZmluZWQgaW4gVUFYICMyOS4KICAgICAv
LyBOb3RlIHRoYXQgcGxhdGZvcm0gaW1wbGVtZW50YXRpb25zIG1heSBiZSBsZXNzIHNvcGhpc3Rp
Y2F0ZWQgLSBlLmcuIElDVSBwcmlvciB0bwpAQCAtNDMsNyArNDMsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoY29u
c3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiB3b3JkQnJl
YWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwotICAgIFRleHRCcmVha0l0ZXJh
dG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOworICAgIFRl
eHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoKTsKKyAgICB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJ
dGVyYXRvciopOwogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3Io
Y29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIGludCB0ZXh0QnJlYWtGaXJzdChUZXh0
QnJlYWtJdGVyYXRvciopOwpAQCAtNTcsNiArNTgsNDUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY29uc3QgaW50IFRleHRCcmVha0RvbmUgPSAtMTsKIAorY2xhc3MgTGF6eUxpbmVCcmVh
a0l0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICBMYXp5TGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNo
YXIqIHN0cmluZyA9IDAsIGludCBsZW5ndGggPSAwKQorICAgICAgICA6IG1fc3RyaW5nKHN0cmlu
ZykKKyAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgICAgICwgbV9pdGVyYXRvcigwKQor
ICAgIHsgfQorCisgICAgfkxhenlMaW5lQnJlYWtJdGVyYXRvcigpCisgICAgeworICAgICAgICBp
ZiAobV9pdGVyYXRvcikKKyAgICAgICAgICAgIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihtX2l0
ZXJhdG9yKTsKKyAgICB9CisKKyAgICBjb25zdCBVQ2hhciogc3RyaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9zdHJpbmc7IH0KKyAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7
IH0KKworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBnZXQoKQorICAgIHsKKyAgICAgICAgaWYgKCFt
X2l0ZXJhdG9yKQorICAgICAgICAgICAgbV9pdGVyYXRvciA9IGFjcXVpcmVMaW5lQnJlYWtJdGVy
YXRvcihtX3N0cmluZywgbV9sZW5ndGgpOworICAgICAgICByZXR1cm4gbV9pdGVyYXRvcjsKKyAg
ICB9CisgICAgdm9pZCByZXNldChjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorICAg
IHsKKyAgICAgICAgaWYgKG1faXRlcmF0b3IpCisgICAgICAgICAgICByZWxlYXNlTGluZUJyZWFr
SXRlcmF0b3IobV9pdGVyYXRvcik7CisKKyAgICAgICAgbV9zdHJpbmcgPSBzdHJpbmc7CisgICAg
ICAgIG1fbGVuZ3RoID0gbGVuZ3RoOworICAgICAgICBtX2l0ZXJhdG9yID0gMDsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgY29uc3QgVUNoYXIqIG1fc3RyaW5nOworICAgIGludCBtX2xlbmd0aDsK
KyAgICBUZXh0QnJlYWtJdGVyYXRvciogbV9pdGVyYXRvcjsKK307CisKIH0KIAogI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0
ZXJhdG9ySUNVLmNwcAkocmV2aXNpb24gNzg0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsOCBAQAogI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
c3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzZXRVcEl0ZXJhdG9yKGJvb2wmIGNyZWF0ZWRJdGVy
YXRvciwgVGV4dEJyZWFrSXRlcmF0b3IqJiBpdGVyYXRvciwKQEAgLTY4LDEyICs3MCwzNSBAQCBU
ZXh0QnJlYWtJdGVyYXRvciogd29yZEJyZWFrSXRlcmF0b3IoY29uCiAgICAgICAgIHN0YXRpY1dv
cmRCcmVha0l0ZXJhdG9yLCBVQlJLX1dPUkQsIHN0cmluZywgbGVuZ3RoKTsKIH0KIAotVGV4dEJy
ZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBs
ZW5ndGgpCitzdGF0aWMgYm9vbCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKK3N0
YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7CisKK1RleHRC
cmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmlu
ZywgaW50IGxlbmd0aCkKIHsKLSAgICBzdGF0aWMgYm9vbCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0
b3IgPSBmYWxzZTsKLSAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVh
a0l0ZXJhdG9yOwotICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKGNyZWF0ZWRMaW5lQnJlYWtJdGVy
YXRvciwKLSAgICAgICAgc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFVCUktfTElORSwgc3RyaW5n
LCBsZW5ndGgpOworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvciA9IDA7
CisgICAgaWYgKCFjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgfHwgc3RhdGljTGluZUJyZWFrSXRl
cmF0b3IpIHsKKyAgICAgICAgc2V0VXBJdGVyYXRvcihjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3Is
CisgICAgICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJpbmcs
IGxlbmd0aCk7CisgICAgICAgIHN3YXAoc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIGxpbmVCcmVh
a0l0ZXJhdG9yKTsKKyAgICB9CisKKyAgICBpZiAoIWxpbmVCcmVha0l0ZXJhdG9yKSB7CisgICAg
ICAgIGJvb2wgY3JlYXRlZE5ld0xpbmVCcmVha0l0ZXJhdG9yID0gZmFsc2U7CisgICAgICAgIHNl
dFVwSXRlcmF0b3IoY3JlYXRlZE5ld0xpbmVCcmVha0l0ZXJhdG9yLCBsaW5lQnJlYWtJdGVyYXRv
ciwgVUJSS19MSU5FLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgfQorCisgICAgcmV0dXJuIGxpbmVC
cmVha0l0ZXJhdG9yOworfQorCit2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJl
YWtJdGVyYXRvciogaXRlcmF0b3IpCisgeworICAgIEFTU0VSVChjcmVhdGVkTGluZUJyZWFrSXRl
cmF0b3IpOworICAgIEFTU0VSVChpdGVyYXRvcik7CisKKyAgICBpZiAoIXN0YXRpY0xpbmVCcmVh
a0l0ZXJhdG9yKQorICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciA9IGl0ZXJhdG9yOwor
ICAgIGVsc2UKKyAgICAgICAgdWJya19jbG9zZShyZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJh
dG9yKj4oaXRlcmF0b3IpKTsKIH0KIAogVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJ
dGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHJldmlzaW9uIDc4NDI4KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29sdW1uSW5mbzsKIGNsYXNzIElubGlu
ZUl0ZXJhdG9yOwogY2xhc3MgTGF5b3V0U3RhdGVNYWludGFpbmVyOworY2xhc3MgTGF6eUxpbmVC
cmVha0l0ZXJhdG9yOwogY2xhc3MgUmVuZGVySW5saW5lOwogCiBzdHJ1Y3QgQmlkaVJ1bjsKQEAg
LTQ4Niw3ICs0ODcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2tpcFRyYWlsaW5nV2hpdGVzcGFj
ZShJbmxpbmVJdGVyYXRvciYsIGJvb2wgaXNMaW5lRW1wdHksIGJvb2wgcHJldmlvdXNMaW5lQnJv
a2VDbGVhbmx5KTsKICAgICBpbnQgc2tpcExlYWRpbmdXaGl0ZXNwYWNlKElubGluZUJpZGlSZXNv
bHZlciYsIGJvb2wgZmlyc3RMaW5lLCBib29sIGlzTGluZUVtcHR5LCBib29sIHByZXZpb3VzTGlu
ZUJyb2tlQ2xlYW5seSwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUp
OwogICAgIHZvaWQgZml0QmVsb3dGbG9hdHMoaW50IHdpZHRoVG9GaXQsIGJvb2wgZmlyc3RMaW5l
LCBpbnQmIGF2YWlsYWJsZVdpZHRoKTsKLSAgICBJbmxpbmVJdGVyYXRvciBmaW5kTmV4dExpbmVC
cmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImLCBib29sIGZpcnN0TGluZSwgYm9vbCYgaXNMaW5lRW1w
dHksIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgYm9vbCYgaHlwaGVuYXRlZCwgRUNs
ZWFyKiwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOworICAgIHR5
cGVkZWYgc3RkOjpwYWlyPFJlbmRlclRleHQqLCBMYXp5TGluZUJyZWFrSXRlcmF0b3I+IExpbmVC
cmVha0l0ZXJhdG9ySW5mbzsKKyAgICBJbmxpbmVJdGVyYXRvciBmaW5kTmV4dExpbmVCcmVhayhJ
bmxpbmVCaWRpUmVzb2x2ZXImLCBib29sIGZpcnN0TGluZSwgYm9vbCYgaXNMaW5lRW1wdHksIExp
bmVCcmVha0l0ZXJhdG9ySW5mbyYsIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgYm9v
bCYgaHlwaGVuYXRlZCwgRUNsZWFyKiwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2
aW91c0xpbmUpOwogICAgIFJvb3RJbmxpbmVCb3gqIGNvbnN0cnVjdExpbmUodW5zaWduZWQgcnVu
Q291bnQsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiBsYXN0UnVuLCBib29sIGZpcnN0TGlu
ZSwgYm9vbCBsYXN0TGluZSwgUmVuZGVyT2JqZWN0KiBlbmRPYmplY3QpOwogICAgIElubGluZUZs
b3dCb3gqIGNyZWF0ZUxpbmVCb3hlcyhSZW5kZXJPYmplY3QqLCBib29sIGZpcnN0TGluZSk7CiAg
ICAgdm9pZCBjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5saW5l
Qm94KiwgYm9vbCBmaXJzdExpbmUsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiB0cmFpbGlu
Z1NwYWNlUnVuLCBib29sIHJlYWNoZWRFbmQsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRz
TWFwJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5
b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gNzg0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RNYXJrZXIuaCIKICNpbmNsdWRlICJSZW5kZXJW
aWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlICJUcmFpbGluZ0Zsb2F0c1Jvb3RJ
bmxpbmVCb3guaCIKICNpbmNsdWRlICJWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUuaCIKQEAgLTY2Miw2
ICs2NjMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJlbihiCiAgICAg
ICAgIGJvb2wgaXNMaW5lRW1wdHkgPSB0cnVlOwogICAgICAgICBib29sIHBhZ2luYXRlZCA9IHZp
ZXcoKS0+bGF5b3V0U3RhdGUoKSAmJiB2aWV3KCktPmxheW91dFN0YXRlKCktPmlzUGFnaW5hdGVk
KCk7CiAKKyAgICAgICAgTGluZUJyZWFrSXRlcmF0b3JJbmZvIGxpbmVCcmVha0l0ZXJhdG9ySW5m
bzsKICAgICAgICAgVmVydGljYWxQb3NpdGlvbkNhY2hlIHZlcnRpY2FsUG9zaXRpb25DYWNoZTsK
IAogICAgICAgICB3aGlsZSAoIWVuZC5hdEVuZCgpKSB7CkBAIC02NzgsNyArNjgwLDcgQEAgdm9p
ZCBSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBJbmxpbmVJdGVyYXRvciBvbGRFbmQgPSBlbmQ7CiAgICAgICAgICAgICBGbG9hdGlu
Z09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSA9IG1fZmxvYXRpbmdPYmplY3RzID8g
bV9mbG9hdGluZ09iamVjdHMtPmxhc3QoKSA6IDA7Ci0gICAgICAgICAgICBlbmQgPSBmaW5kTmV4
dExpbmVCcmVhayhyZXNvbHZlciwgZmlyc3RMaW5lLCBpc0xpbmVFbXB0eSwgcHJldmlvdXNMaW5l
QnJva2VDbGVhbmx5LCBoeXBoZW5hdGVkLCAmY2xlYXIsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xp
bmUpOworICAgICAgICAgICAgZW5kID0gZmluZE5leHRMaW5lQnJlYWsocmVzb2x2ZXIsIGZpcnN0
TGluZSwgaXNMaW5lRW1wdHksIGxpbmVCcmVha0l0ZXJhdG9ySW5mbywgcHJldmlvdXNMaW5lQnJv
a2VDbGVhbmx5LCBoeXBoZW5hdGVkLCAmY2xlYXIsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUp
OwogICAgICAgICAgICAgaWYgKHJlc29sdmVyLnBvc2l0aW9uKCkuYXRFbmQoKSkgewogICAgICAg
ICAgICAgICAgIHJlc29sdmVyLmRlbGV0ZVJ1bnMoKTsKICAgICAgICAgICAgICAgICBjaGVja0Zv
ckZsb2F0c0Zyb21MYXN0TGluZSA9IHRydWU7CkBAIC0xNDMxLDcgKzE0MzMsNyBAQCBzdGF0aWMg
dm9pZCB0cnlIeXBoZW5hdGluZyhSZW5kZXJUZXh0KiB0CiAgICAgaHlwaGVuYXRlZCA9IHRydWU7
CiB9CiAKLUlubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxp
bmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sIGZpcnN0TGluZSwgIGJvb2wmIGlzTGluZUVt
cHR5LCBib29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIAorSW5saW5lSXRlcmF0b3IgUmVu
ZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIs
IGJvb2wgZmlyc3RMaW5lLCBib29sJiBpc0xpbmVFbXB0eSwgTGluZUJyZWFrSXRlcmF0b3JJbmZv
JiBsaW5lQnJlYWtJdGVyYXRvckluZm8sIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCYgaHlw
aGVuYXRlZCwgRUNsZWFyKiBjbGVhciwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2
aW91c0xpbmUpCiB7CiAgICAgQVNTRVJUKHJlc29sdmVyLnBvc2l0aW9uKCkuYmxvY2sgPT0gdGhp
cyk7CkBAIC0xNzIyLDcgKzE3MjQsMTIgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZp
bmROZXh0TGluZQogICAgICAgICAgICAgICAgICAgICBtaWRXb3JkQnJlYWsgPSB3ICsgd3JhcFcg
KyBjaGFyV2lkdGggPiB3aWR0aDsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAg
ICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldTICE9IFBSRSAmJiAhYXRT
dGFydCAmJiBpc0JyZWFrYWJsZShzdHIsIHBvcywgc3RybGVuLCBuZXh0QnJlYWthYmxlLCBicmVh
a05CU1ApICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhlbnNOb25lIHx8IChwb3MgJiYgc3Ry
W3BvcyAtIDFdICE9IHNvZnRIeXBoZW4pKSk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmVCcmVh
a0l0ZXJhdG9ySW5mby5maXJzdCAhPSB0KSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmVCcmVh
a0l0ZXJhdG9ySW5mby5maXJzdCA9IHQ7CisgICAgICAgICAgICAgICAgICAgIGxpbmVCcmVha0l0
ZXJhdG9ySW5mby5zZWNvbmQucmVzZXQoc3RyLCBzdHJsZW4pOworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIGJvb2wgYmV0d2VlbldvcmRzID0gYyA9PSAnXG4nIHx8IChjdXJy
V1MgIT0gUFJFICYmICFhdFN0YXJ0ICYmIGlzQnJlYWthYmxlKGxpbmVCcmVha0l0ZXJhdG9ySW5m
by5zZWNvbmQsIHBvcywgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSAmJiAoc3R5bGUtPmh5cGhl
bnMoKSAhPSBIeXBoZW5zTm9uZSB8fCAocG9zICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVu
KSkpOwogCiAgICAgICAgICAgICAgICAgaWYgKGJldHdlZW5Xb3JkcyB8fCBtaWRXb3JkQnJlYWsp
IHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBzdG9wcGVkSWdub3JpbmdTcGFjZXMgPSBmYWxz
ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9u
IDc4NDI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NDQsNiArNzQ0LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJl
ZmVycmVkTG9naWNhbAogICAgIGludCB3b3JkU3BhY2luZyA9IHN0eWxlKCktPndvcmRTcGFjaW5n
KCk7CiAgICAgaW50IGxlbiA9IHRleHRMZW5ndGgoKTsKICAgICBjb25zdCBVQ2hhciogdHh0ID0g
Y2hhcmFjdGVycygpOworICAgIExhenlMaW5lQnJlYWtJdGVyYXRvciBicmVha0l0ZXJhdG9yKHR4
dCwgbGVuKTsKICAgICBib29sIG5lZWRzV29yZFNwYWNpbmcgPSBmYWxzZTsKICAgICBib29sIGln
bm9yaW5nU3BhY2VzID0gZmFsc2U7CiAgICAgYm9vbCBpc1NwYWNlID0gZmFsc2U7CkBAIC04MDMs
NyArODA0LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGhhc0JyZWFrID0g
YnJlYWtBbGwgfHwgaXNCcmVha2FibGUodHh0LCBpLCBsZW4sIG5leHRCcmVha2FibGUsIGJyZWFr
TkJTUCk7CisgICAgICAgIGJvb2wgaGFzQnJlYWsgPSBicmVha0FsbCB8fCBpc0JyZWFrYWJsZShi
cmVha0l0ZXJhdG9yLCBpLCBuZXh0QnJlYWthYmxlLCBicmVha05CU1ApOwogICAgICAgICBib29s
IGJldHdlZW5Xb3JkcyA9IHRydWU7CiAgICAgICAgIGludCBqID0gaTsKICAgICAgICAgd2hpbGUg
KGMgIT0gJ1xuJyAmJiAhaXNTcGFjZUFjY29yZGluZ1RvU3R5bGUoYywgc3R5bGUoKSkgJiYgYyAh
PSAnXHQnICYmIGMgIT0gc29mdEh5cGhlbikgewpAQCAtODExLDcgKzgxMiw3IEBAIHZvaWQgUmVu
ZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWwKICAgICAgICAgICAgIGlmIChqID09IGxl
bikKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGMgPSB0eHRbal07Ci0gICAg
ICAgICAgICBpZiAoaXNCcmVha2FibGUodHh0LCBqLCBsZW4sIG5leHRCcmVha2FibGUsIGJyZWFr
TkJTUCkpCisgICAgICAgICAgICBpZiAoaXNCcmVha2FibGUoYnJlYWtJdGVyYXRvciwgaiwgbmV4
dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGlmIChicmVha0FsbCkgewogICAgICAgICAgICAgICAgIGJldHdlZW5Xb3JkcyA9IGZhbHNl
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCShyZXZpc2lv
biA3ODQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE1NCwxMSArMTU0LDEwIEBAIHN0YXRpYyBpbmxpbmUgVGV4dEJyZWFr
TG9jYXRvclJlZiBsaW5lQnIKIH0KICNlbmRpZgogCi1pbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9u
KGNvbnN0IFVDaGFyKiBzdHIsIGludCBwb3MsIGludCBsZW4sIGJvb2wgdHJlYXROb0JyZWFrU3Bh
Y2VBc0JyZWFrKQoraW50IG5leHRCcmVha2FibGVQb3NpdGlvbihMYXp5TGluZUJyZWFrSXRlcmF0
b3ImIGxhenlCcmVha0l0ZXJhdG9yLCBpbnQgcG9zLCBib29sIHRyZWF0Tm9CcmVha1NwYWNlQXNC
cmVhaykKIHsKLSNpZiAhUExBVEZPUk0oTUFDKSB8fCAhZGVmaW5lZChCVUlMRElOR19PTl9USUdF
UikKLSAgICBUZXh0QnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvciA9IDA7Ci0jZW5kaWYKKyAg
ICBjb25zdCBVQ2hhciogc3RyID0gbGF6eUJyZWFrSXRlcmF0b3Iuc3RyaW5nKCk7CisgICAgaW50
IGxlbiA9IGxhenlCcmVha0l0ZXJhdG9yLmxlbmd0aCgpOwogICAgIGludCBuZXh0QnJlYWsgPSAt
MTsKIAogICAgIFVDaGFyIGxhc3RDaCA9IHBvcyA+IDAgPyBzdHJbcG9zIC0gMV0gOiAwOwpAQCAt
MTcxLDggKzE3MCw3IEBAIGludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqIHMK
ICAgICAgICAgaWYgKG5lZWRzTGluZUJyZWFrSXRlcmF0b3IoY2gpIHx8IG5lZWRzTGluZUJyZWFr
SXRlcmF0b3IobGFzdENoKSkgewogICAgICAgICAgICAgaWYgKG5leHRCcmVhayA8IGkgJiYgaSkg
ewogI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQotICAg
ICAgICAgICAgICAgIGlmICghYnJlYWtJdGVyYXRvcikKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWtJdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yKHN0ciwgbGVuKTsKKyAgICAgICAgICAgICAg
ICBUZXh0QnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvciA9IGxhenlCcmVha0l0ZXJhdG9yLmdl
dCgpOwogICAgICAgICAgICAgICAgIGlmIChicmVha0l0ZXJhdG9yKQogICAgICAgICAgICAgICAg
ICAgICBuZXh0QnJlYWsgPSB0ZXh0QnJlYWtGb2xsb3dpbmcoYnJlYWtJdGVyYXRvciwgaSAtIDEp
OwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCShyZXZp
c2lvbiA3ODQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNSwxNCArMjUsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0gICAgaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hhciosIGludCBwb3MsIGlu
dCBsZW4sIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpOworY2xhc3MgTGF6eUxpbmVCcmVha0l0ZXJh
dG9yOwogCi0gICAgaW5saW5lIGJvb2wgaXNCcmVha2FibGUoY29uc3QgVUNoYXIqIHN0ciwgaW50
IHBvcywgaW50IGxlbiwgaW50JiBuZXh0QnJlYWthYmxlLCBib29sIGJyZWFrTkJTUCA9IGZhbHNl
KQotICAgIHsKLSAgICAgICAgaWYgKHBvcyA+IG5leHRCcmVha2FibGUpCi0gICAgICAgICAgICBu
ZXh0QnJlYWthYmxlID0gbmV4dEJyZWFrYWJsZVBvc2l0aW9uKHN0ciwgcG9zLCBsZW4sIGJyZWFr
TkJTUCk7Ci0gICAgICAgIHJldHVybiBwb3MgPT0gbmV4dEJyZWFrYWJsZTsKLSAgICB9CitpbnQg
bmV4dEJyZWFrYWJsZVBvc2l0aW9uKExhenlMaW5lQnJlYWtJdGVyYXRvciYsIGludCBwb3MsIGJv
b2wgYnJlYWtOQlNQID0gZmFsc2UpOworCitpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShMYXp5TGlu
ZUJyZWFrSXRlcmF0b3ImIGxhenlCcmVha0l0ZXJhdG9yLCBpbnQgcG9zLCBpbnQmIG5leHRCcmVh
a2FibGUsIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpCit7CisgICAgaWYgKHBvcyA+IG5leHRCcmVh
a2FibGUpCisgICAgICAgIG5leHRCcmVha2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24obGF6
eUJyZWFrSXRlcmF0b3IsIHBvcywgYnJlYWtOQlNQKTsKKyAgICByZXR1cm4gcG9zID09IG5leHRC
cmVha2FibGU7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83351</attachid>
            <date>2011-02-22 11:31:04 -0800</date>
            <delta_ts>2011-02-23 10:24:14 -0800</delta_ts>
            <desc>Changes per review.</desc>
            <filename>ubrk_setText-review.txt</filename>
            <type>text/plain</type>
            <size>12631</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmgJKHJldmlzaW9uIDc4NDI4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFRleHRCcmVha0l0ZXJhdG9yOwogCi0gICAgLy8g
Tm90ZTogVGhlIHJldHVybmVkIGl0ZXJhdG9yIGlzIGdvb2Qgb25seSB1bnRpbCB5b3UgZ2V0IGFu
b3RoZXIgaXRlcmF0b3IuCisgICAgLy8gTm90ZTogVGhlIHJldHVybmVkIGl0ZXJhdG9yIGlzIGdv
b2Qgb25seSB1bnRpbCB5b3UgZ2V0IGFub3RoZXIgaXRlcmF0b3IsIHdpdGggdGhlIGV4Y2VwdGlv
biBvZiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IuCiAKICAgICAvLyBJdGVyYXRlcyBvdmVyICJl
eHRlbmRlZCBncmFwaGVtZSBjbHVzdGVycyIsIGFzIGRlZmluZWQgaW4gVUFYICMyOS4KICAgICAv
LyBOb3RlIHRoYXQgcGxhdGZvcm0gaW1wbGVtZW50YXRpb25zIG1heSBiZSBsZXNzIHNvcGhpc3Rp
Y2F0ZWQgLSBlLmcuIElDVSBwcmlvciB0bwpAQCAtNDMsNyArNDMsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoY29u
c3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiB3b3JkQnJl
YWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwotICAgIFRleHRCcmVha0l0ZXJh
dG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOworICAgIFRl
eHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoKTsKKyAgICB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJ
dGVyYXRvciopOwogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3Io
Y29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIGludCB0ZXh0QnJlYWtGaXJzdChUZXh0
QnJlYWtJdGVyYXRvciopOwpAQCAtNTcsNiArNTgsNDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY29uc3QgaW50IFRleHRCcmVha0RvbmUgPSAtMTsKIAorY2xhc3MgTGF6eUxpbmVCcmVh
a0l0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICBMYXp5TGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNo
YXIqIHN0cmluZyA9IDAsIGludCBsZW5ndGggPSAwKQorICAgICAgICA6IG1fc3RyaW5nKHN0cmlu
ZykKKyAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgICAgICwgbV9pdGVyYXRvcigwKQor
ICAgIHsKKyAgICB9CisKKyAgICB+TGF6eUxpbmVCcmVha0l0ZXJhdG9yKCkKKyAgICB7CisgICAg
ICAgIGlmIChtX2l0ZXJhdG9yKQorICAgICAgICAgICAgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9y
KG1faXRlcmF0b3IpOworICAgIH0KKworICAgIGNvbnN0IFVDaGFyKiBzdHJpbmcoKSBjb25zdCB7
IHJldHVybiBtX3N0cmluZzsgfQorICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xl
bmd0aDsgfQorCisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGdldCgpCisgICAgeworICAgICAgICBp
ZiAoIW1faXRlcmF0b3IpCisgICAgICAgICAgICBtX2l0ZXJhdG9yID0gYWNxdWlyZUxpbmVCcmVh
a0l0ZXJhdG9yKG1fc3RyaW5nLCBtX2xlbmd0aCk7CisgICAgICAgIHJldHVybiBtX2l0ZXJhdG9y
OworICAgIH0KKworICAgIHZvaWQgcmVzZXQoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0
aCkKKyAgICB7CisgICAgICAgIGlmIChtX2l0ZXJhdG9yKQorICAgICAgICAgICAgcmVsZWFzZUxp
bmVCcmVha0l0ZXJhdG9yKG1faXRlcmF0b3IpOworCisgICAgICAgIG1fc3RyaW5nID0gc3RyaW5n
OworICAgICAgICBtX2xlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgbV9pdGVyYXRvciA9IDA7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0IFVDaGFyKiBtX3N0cmluZzsKKyAgICBpbnQgbV9s
ZW5ndGg7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIG1faXRlcmF0b3I7Cit9OworCiB9CiAKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRv
cklDVS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
QnJlYWtJdGVyYXRvcklDVS5jcHAJKHJldmlzaW9uIDc4NDI4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDggQEAKICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc2V0VXBJdGVyYXRvcihib29sJiBjcmVh
dGVkSXRlcmF0b3IsIFRleHRCcmVha0l0ZXJhdG9yKiYgaXRlcmF0b3IsCkBAIC02OCwxMiArNzAs
MzQgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbgogICAgICAgICBz
dGF0aWNXb3JkQnJlYWtJdGVyYXRvciwgVUJSS19XT1JELCBzdHJpbmcsIGxlbmd0aCk7CiB9CiAK
LVRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5n
LCBpbnQgbGVuZ3RoKQorc3RhdGljIGJvb2wgY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yID0gZmFs
c2U7CitzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwor
CitUZXh0QnJlYWtJdGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFy
KiBzdHJpbmcsIGludCBsZW5ndGgpCit7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVh
a0l0ZXJhdG9yID0gMDsKKyAgICBpZiAoIWNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciB8fCBzdGF0
aWNMaW5lQnJlYWtJdGVyYXRvcikgeworICAgICAgICBzZXRVcEl0ZXJhdG9yKGNyZWF0ZWRMaW5l
QnJlYWtJdGVyYXRvciwgc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFVCUktfTElORSwgc3RyaW5n
LCBsZW5ndGgpOworICAgICAgICBzd2FwKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBsaW5lQnJl
YWtJdGVyYXRvcik7CisgICAgfQorCisgICAgaWYgKCFsaW5lQnJlYWtJdGVyYXRvcikgeworICAg
ICAgICBib29sIGNyZWF0ZWROZXdMaW5lQnJlYWtJdGVyYXRvciA9IGZhbHNlOworICAgICAgICBz
ZXRVcEl0ZXJhdG9yKGNyZWF0ZWROZXdMaW5lQnJlYWtJdGVyYXRvciwgbGluZUJyZWFrSXRlcmF0
b3IsIFVCUktfTElORSwgc3RyaW5nLCBsZW5ndGgpOworICAgIH0KKworICAgIHJldHVybiBsaW5l
QnJlYWtJdGVyYXRvcjsKK30KKwordm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJy
ZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogewotICAgIHN0YXRpYyBib29sIGNyZWF0ZWRMaW5lQnJl
YWtJdGVyYXRvciA9IGZhbHNlOwotICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGlj
TGluZUJyZWFrSXRlcmF0b3I7Ci0gICAgcmV0dXJuIHNldFVwSXRlcmF0b3IoY3JlYXRlZExpbmVC
cmVha0l0ZXJhdG9yLAotICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgVUJSS19MSU5F
LCBzdHJpbmcsIGxlbmd0aCk7CisgICAgQVNTRVJUKGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvcik7
CisgICAgQVNTRVJUKGl0ZXJhdG9yKTsKKworICAgIGlmICghc3RhdGljTGluZUJyZWFrSXRlcmF0
b3IpCisgICAgICAgIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yID0gaXRlcmF0b3I7CisgICAgZWxz
ZQorICAgICAgICB1YnJrX2Nsb3NlKHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRlcmF0b3IqPihp
dGVyYXRvcikpOwogfQogCiBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9y
KGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaAkocmV2aXNpb24gNzg0MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb2x1bW5JbmZvOwogY2xhc3MgSW5saW5lSXRlcmF0
b3I7CiBjbGFzcyBMYXlvdXRTdGF0ZU1haW50YWluZXI7CitjbGFzcyBMYXp5TGluZUJyZWFrSXRl
cmF0b3I7CiBjbGFzcyBSZW5kZXJJbmxpbmU7CiAKIHN0cnVjdCBCaWRpUnVuOwpAQCAtNDg2LDcg
KzQ4Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBza2lwVHJhaWxpbmdXaGl0ZXNwYWNlKElubGlu
ZUl0ZXJhdG9yJiwgYm9vbCBpc0xpbmVFbXB0eSwgYm9vbCBwcmV2aW91c0xpbmVCcm9rZUNsZWFu
bHkpOwogICAgIGludCBza2lwTGVhZGluZ1doaXRlc3BhY2UoSW5saW5lQmlkaVJlc29sdmVyJiwg
Ym9vbCBmaXJzdExpbmUsIGJvb2wgaXNMaW5lRW1wdHksIGJvb2wgcHJldmlvdXNMaW5lQnJva2VD
bGVhbmx5LCBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSk7CiAgICAg
dm9pZCBmaXRCZWxvd0Zsb2F0cyhpbnQgd2lkdGhUb0ZpdCwgYm9vbCBmaXJzdExpbmUsIGludCYg
YXZhaWxhYmxlV2lkdGgpOwotICAgIElubGluZUl0ZXJhdG9yIGZpbmROZXh0TGluZUJyZWFrKElu
bGluZUJpZGlSZXNvbHZlciYsIGJvb2wgZmlyc3RMaW5lLCBib29sJiBpc0xpbmVFbXB0eSwgYm9v
bCYgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCBib29sJiBoeXBoZW5hdGVkLCBFQ2xlYXIqLCBG
bG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSk7CisgICAgdHlwZWRlZiBz
dGQ6OnBhaXI8UmVuZGVyVGV4dCosIExhenlMaW5lQnJlYWtJdGVyYXRvcj4gTGluZUJyZWFrSXRl
cmF0b3JJbmZvOworICAgIElubGluZUl0ZXJhdG9yIGZpbmROZXh0TGluZUJyZWFrKElubGluZUJp
ZGlSZXNvbHZlciYsIGJvb2wgZmlyc3RMaW5lLCBib29sJiBpc0xpbmVFbXB0eSwgTGluZUJyZWFr
SXRlcmF0b3JJbmZvJiwgYm9vbCYgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCBib29sJiBoeXBo
ZW5hdGVkLCBFQ2xlYXIqLCBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGlu
ZSk7CiAgICAgUm9vdElubGluZUJveCogY29uc3RydWN0TGluZSh1bnNpZ25lZCBydW5Db3VudCwg
QmlkaVJ1biogZmlyc3RSdW4sIEJpZGlSdW4qIGxhc3RSdW4sIGJvb2wgZmlyc3RMaW5lLCBib29s
IGxhc3RMaW5lLCBSZW5kZXJPYmplY3QqIGVuZE9iamVjdCk7CiAgICAgSW5saW5lRmxvd0JveCog
Y3JlYXRlTGluZUJveGVzKFJlbmRlck9iamVjdCosIGJvb2wgZmlyc3RMaW5lKTsKICAgICB2b2lk
IGNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVCb3gqLCBi
b29sIGZpcnN0TGluZSwgQmlkaVJ1biogZmlyc3RSdW4sIEJpZGlSdW4qIHRyYWlsaW5nU3BhY2VS
dW4sIGJvb2wgcmVhY2hlZEVuZCwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNNYXAmKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwCShyZXZpc2lvbiA3ODQyOCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiVGV4dFJ1bi5oIgogI2luY2x1ZGUgIlRyYWlsaW5nRmxvYXRzUm9vdElubGluZUJv
eC5oIgogI2luY2x1ZGUgIlZlcnRpY2FsUG9zaXRpb25DYWNoZS5oIgpAQCAtNjYyLDYgKzY2Myw3
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKGIKICAgICAgICAgYm9v
bCBpc0xpbmVFbXB0eSA9IHRydWU7CiAgICAgICAgIGJvb2wgcGFnaW5hdGVkID0gdmlldygpLT5s
YXlvdXRTdGF0ZSgpICYmIHZpZXcoKS0+bGF5b3V0U3RhdGUoKS0+aXNQYWdpbmF0ZWQoKTsKIAor
ICAgICAgICBMaW5lQnJlYWtJdGVyYXRvckluZm8gbGluZUJyZWFrSXRlcmF0b3JJbmZvOwogICAg
ICAgICBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUgdmVydGljYWxQb3NpdGlvbkNhY2hlOwogCiAgICAg
ICAgIHdoaWxlICghZW5kLmF0RW5kKCkpIHsKQEAgLTY3OCw3ICs2ODAsNyBAQCB2b2lkIFJlbmRl
ckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJlbihiCiAgICAgICAgICAgICAKICAgICAgICAgICAg
IElubGluZUl0ZXJhdG9yIG9sZEVuZCA9IGVuZDsKICAgICAgICAgICAgIEZsb2F0aW5nT2JqZWN0
KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lID0gbV9mbG9hdGluZ09iamVjdHMgPyBtX2Zsb2F0
aW5nT2JqZWN0cy0+bGFzdCgpIDogMDsKLSAgICAgICAgICAgIGVuZCA9IGZpbmROZXh0TGluZUJy
ZWFrKHJlc29sdmVyLCBmaXJzdExpbmUsIGlzTGluZUVtcHR5LCBwcmV2aW91c0xpbmVCcm9rZUNs
ZWFubHksIGh5cGhlbmF0ZWQsICZjbGVhciwgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSk7Cisg
ICAgICAgICAgICBlbmQgPSBmaW5kTmV4dExpbmVCcmVhayhyZXNvbHZlciwgZmlyc3RMaW5lLCBp
c0xpbmVFbXB0eSwgbGluZUJyZWFrSXRlcmF0b3JJbmZvLCBwcmV2aW91c0xpbmVCcm9rZUNsZWFu
bHksIGh5cGhlbmF0ZWQsICZjbGVhciwgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSk7CiAgICAg
ICAgICAgICBpZiAocmVzb2x2ZXIucG9zaXRpb24oKS5hdEVuZCgpKSB7CiAgICAgICAgICAgICAg
ICAgcmVzb2x2ZXIuZGVsZXRlUnVucygpOwogICAgICAgICAgICAgICAgIGNoZWNrRm9yRmxvYXRz
RnJvbUxhc3RMaW5lID0gdHJ1ZTsKQEAgLTE0MzEsNyArMTQzMyw3IEBAIHN0YXRpYyB2b2lkIHRy
eUh5cGhlbmF0aW5nKFJlbmRlclRleHQqIHQKICAgICBoeXBoZW5hdGVkID0gdHJ1ZTsKIH0KIAot
SW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJpZGlS
ZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wgZmlyc3RMaW5lLCAgYm9vbCYgaXNMaW5lRW1wdHksIGJv
b2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgCitJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9j
azo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNvbHZlciwgYm9vbCBm
aXJzdExpbmUsIGJvb2wmIGlzTGluZUVtcHR5LCBMaW5lQnJlYWtJdGVyYXRvckluZm8mIGxpbmVC
cmVha0l0ZXJhdG9ySW5mbywgYm9vbCYgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sJiBoeXBoZW5hdGVk
LCBFQ2xlYXIqIGNsZWFyLCBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGlu
ZSkKIHsKICAgICBBU1NFUlQocmVzb2x2ZXIucG9zaXRpb24oKS5ibG9jayA9PSB0aGlzKTsKQEAg
LTE3MjIsNyArMTcyNCwxMiBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6ZmluZE5leHRM
aW5lCiAgICAgICAgICAgICAgICAgICAgIG1pZFdvcmRCcmVhayA9IHcgKyB3cmFwVyArIGNoYXJX
aWR0aCA+IHdpZHRoOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGJvb2wg
YmV0d2VlbldvcmRzID0gYyA9PSAnXG4nIHx8IChjdXJyV1MgIT0gUFJFICYmICFhdFN0YXJ0ICYm
IGlzQnJlYWthYmxlKHN0ciwgcG9zLCBzdHJsZW4sIG5leHRCcmVha2FibGUsIGJyZWFrTkJTUCkg
JiYgKHN0eWxlLT5oeXBoZW5zKCkgIT0gSHlwaGVuc05vbmUgfHwgKHBvcyAmJiBzdHJbcG9zIC0g
MV0gIT0gc29mdEh5cGhlbikpKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZUJyZWFrSXRlcmF0
b3JJbmZvLmZpcnN0ICE9IHQpIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZUJyZWFrSXRlcmF0
b3JJbmZvLmZpcnN0ID0gdDsKKyAgICAgICAgICAgICAgICAgICAgbGluZUJyZWFrSXRlcmF0b3JJ
bmZvLnNlY29uZC5yZXNldChzdHIsIHN0cmxlbik7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09ICdcbicgfHwgKGN1cnJXUyAhPSBQ
UkUgJiYgIWF0U3RhcnQgJiYgaXNCcmVha2FibGUobGluZUJyZWFrSXRlcmF0b3JJbmZvLnNlY29u
ZCwgcG9zLCBuZXh0QnJlYWthYmxlLCBicmVha05CU1ApICYmIChzdHlsZS0+aHlwaGVucygpICE9
IEh5cGhlbnNOb25lIHx8IChwb3MgJiYgc3RyW3BvcyAtIDFdICE9IHNvZnRIeXBoZW4pKSk7CiAK
ICAgICAgICAgICAgICAgICBpZiAoYmV0d2VlbldvcmRzIHx8IG1pZFdvcmRCcmVhaykgewogICAg
ICAgICAgICAgICAgICAgICBib29sIHN0b3BwZWRJZ25vcmluZ1NwYWNlcyA9IGZhbHNlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNpb24gNzg0Mjgp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc0NCw2ICs3NDQsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsCiAgICAgaW50IHdvcmRTcGFjaW5nID0gc3R5bGUoKS0+d29yZFNwYWNpbmcoKTsKICAg
ICBpbnQgbGVuID0gdGV4dExlbmd0aCgpOwogICAgIGNvbnN0IFVDaGFyKiB0eHQgPSBjaGFyYWN0
ZXJzKCk7CisgICAgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIGJyZWFrSXRlcmF0b3IodHh0LCBsZW4p
OwogICAgIGJvb2wgbmVlZHNXb3JkU3BhY2luZyA9IGZhbHNlOwogICAgIGJvb2wgaWdub3JpbmdT
cGFjZXMgPSBmYWxzZTsKICAgICBib29sIGlzU3BhY2UgPSBmYWxzZTsKQEAgLTgwMyw3ICs4MDQs
NyBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgaGFzQnJlYWsgPSBicmVha0Fs
bCB8fCBpc0JyZWFrYWJsZSh0eHQsIGksIGxlbiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKTsK
KyAgICAgICAgYm9vbCBoYXNCcmVhayA9IGJyZWFrQWxsIHx8IGlzQnJlYWthYmxlKGJyZWFrSXRl
cmF0b3IsIGksIG5leHRCcmVha2FibGUsIGJyZWFrTkJTUCk7CiAgICAgICAgIGJvb2wgYmV0d2Vl
bldvcmRzID0gdHJ1ZTsKICAgICAgICAgaW50IGogPSBpOwogICAgICAgICB3aGlsZSAoYyAhPSAn
XG4nICYmICFpc1NwYWNlQWNjb3JkaW5nVG9TdHlsZShjLCBzdHlsZSgpKSAmJiBjICE9ICdcdCcg
JiYgYyAhPSBzb2Z0SHlwaGVuKSB7CkBAIC04MTEsNyArODEyLDcgQEAgdm9pZCBSZW5kZXJUZXh0
Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAogICAgICAgICAgICAgaWYgKGogPT0gbGVuKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgYyA9IHR4dFtqXTsKLSAgICAgICAgICAg
IGlmIChpc0JyZWFrYWJsZSh0eHQsIGosIGxlbiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSkK
KyAgICAgICAgICAgIGlmIChpc0JyZWFrYWJsZShicmVha0l0ZXJhdG9yLCBqLCBuZXh0QnJlYWth
YmxlLCBicmVha05CU1ApKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgaWYg
KGJyZWFrQWxsKSB7CiAgICAgICAgICAgICAgICAgYmV0d2VlbldvcmRzID0gZmFsc2U7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHJldmlzaW9uIDc4NDI4
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU0LDExICsxNTQsMTAgQEAgc3RhdGljIGlubGluZSBUZXh0QnJlYWtMb2NhdG9y
UmVmIGxpbmVCcgogfQogI2VuZGlmCiAKLWludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3Qg
VUNoYXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgYm9vbCB0cmVhdE5vQnJlYWtTcGFjZUFzQnJl
YWspCitpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKExhenlMaW5lQnJlYWtJdGVyYXRvciYgbGF6
eUJyZWFrSXRlcmF0b3IsIGludCBwb3MsIGJvb2wgdHJlYXROb0JyZWFrU3BhY2VBc0JyZWFrKQog
ewotI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQotICAg
IFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yID0gMDsKLSNlbmRpZgorICAgIGNvbnN0
IFVDaGFyKiBzdHIgPSBsYXp5QnJlYWtJdGVyYXRvci5zdHJpbmcoKTsKKyAgICBpbnQgbGVuID0g
bGF6eUJyZWFrSXRlcmF0b3IubGVuZ3RoKCk7CiAgICAgaW50IG5leHRCcmVhayA9IC0xOwogCiAg
ICAgVUNoYXIgbGFzdENoID0gcG9zID4gMCA/IHN0cltwb3MgLSAxXSA6IDA7CkBAIC0xNzEsOCAr
MTcwLDcgQEAgaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hhciogcwogICAgICAg
ICBpZiAobmVlZHNMaW5lQnJlYWtJdGVyYXRvcihjaCkgfHwgbmVlZHNMaW5lQnJlYWtJdGVyYXRv
cihsYXN0Q2gpKSB7CiAgICAgICAgICAgICBpZiAobmV4dEJyZWFrIDwgaSAmJiBpKSB7CiAjaWYg
IVBMQVRGT1JNKE1BQykgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpCi0gICAgICAgICAg
ICAgICAgaWYgKCFicmVha0l0ZXJhdG9yKQotICAgICAgICAgICAgICAgICAgICBicmVha0l0ZXJh
dG9yID0gbGluZUJyZWFrSXRlcmF0b3Ioc3RyLCBsZW4pOworICAgICAgICAgICAgICAgIFRleHRC
cmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yID0gbGF6eUJyZWFrSXRlcmF0b3IuZ2V0KCk7CiAg
ICAgICAgICAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3IpCiAgICAgICAgICAgICAgICAgICAgIG5l
eHRCcmVhayA9IHRleHRCcmVha0ZvbGxvd2luZyhicmVha0l0ZXJhdG9yLCBpIC0gMSk7CiAjZWxz
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHJldmlzaW9uIDc4
NDI4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI1LDE0ICsyNSwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBp
bnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0IFVDaGFyKiwgaW50IHBvcywgaW50IGxlbiwg
Ym9vbCBicmVha05CU1AgPSBmYWxzZSk7CitjbGFzcyBMYXp5TGluZUJyZWFrSXRlcmF0b3I7CiAK
LSAgICBpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShjb25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBp
bnQgbGVuLCBpbnQmIG5leHRCcmVha2FibGUsIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpCi0gICAg
ewotICAgICAgICBpZiAocG9zID4gbmV4dEJyZWFrYWJsZSkKLSAgICAgICAgICAgIG5leHRCcmVh
a2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24oc3RyLCBwb3MsIGxlbiwgYnJlYWtOQlNQKTsK
LSAgICAgICAgcmV0dXJuIHBvcyA9PSBuZXh0QnJlYWthYmxlOwotICAgIH0KK2ludCBuZXh0QnJl
YWthYmxlUG9zaXRpb24oTGF6eUxpbmVCcmVha0l0ZXJhdG9yJiwgaW50IHBvcywgYm9vbCBicmVh
a05CU1AgPSBmYWxzZSk7CisKK2lubGluZSBib29sIGlzQnJlYWthYmxlKExhenlMaW5lQnJlYWtJ
dGVyYXRvciYgbGF6eUJyZWFrSXRlcmF0b3IsIGludCBwb3MsIGludCYgbmV4dEJyZWFrYWJsZSwg
Ym9vbCBicmVha05CU1AgPSBmYWxzZSkKK3sKKyAgICBpZiAocG9zID4gbmV4dEJyZWFrYWJsZSkK
KyAgICAgICAgbmV4dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbihsYXp5QnJlYWtJ
dGVyYXRvciwgcG9zLCBicmVha05CU1ApOworICAgIHJldHVybiBwb3MgPT0gbmV4dEJyZWFrYWJs
ZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83499</attachid>
            <date>2011-02-23 10:24:14 -0800</date>
            <delta_ts>2011-02-23 16:52:14 -0800</delta_ts>
            <desc>Changes for Qt.</desc>
            <filename>ubrk_setText-qt.txt</filename>
            <type>text/plain</type>
            <size>14349</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmgJKHJldmlzaW9uIDc5MzY3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFRleHRCcmVha0l0ZXJhdG9yOwogCi0gICAgLy8g
Tm90ZTogVGhlIHJldHVybmVkIGl0ZXJhdG9yIGlzIGdvb2Qgb25seSB1bnRpbCB5b3UgZ2V0IGFu
b3RoZXIgaXRlcmF0b3IuCisgICAgLy8gTm90ZTogVGhlIHJldHVybmVkIGl0ZXJhdG9yIGlzIGdv
b2Qgb25seSB1bnRpbCB5b3UgZ2V0IGFub3RoZXIgaXRlcmF0b3IsIHdpdGggdGhlIGV4Y2VwdGlv
biBvZiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IuCiAKICAgICAvLyBJdGVyYXRlcyBvdmVyICJl
eHRlbmRlZCBncmFwaGVtZSBjbHVzdGVycyIsIGFzIGRlZmluZWQgaW4gVUFYICMyOS4KICAgICAv
LyBOb3RlIHRoYXQgcGxhdGZvcm0gaW1wbGVtZW50YXRpb25zIG1heSBiZSBsZXNzIHNvcGhpc3Rp
Y2F0ZWQgLSBlLmcuIElDVSBwcmlvciB0bwpAQCAtNDMsNyArNDMsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoY29u
c3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiB3b3JkQnJl
YWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwotICAgIFRleHRCcmVha0l0ZXJh
dG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOworICAgIFRl
eHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoKTsKKyAgICB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJ
dGVyYXRvciopOwogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3Io
Y29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKIAogICAgIGludCB0ZXh0QnJlYWtGaXJzdChUZXh0
QnJlYWtJdGVyYXRvciopOwpAQCAtNTcsNiArNTgsNDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY29uc3QgaW50IFRleHRCcmVha0RvbmUgPSAtMTsKIAorY2xhc3MgTGF6eUxpbmVCcmVh
a0l0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICBMYXp5TGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNo
YXIqIHN0cmluZyA9IDAsIGludCBsZW5ndGggPSAwKQorICAgICAgICA6IG1fc3RyaW5nKHN0cmlu
ZykKKyAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgICAgICwgbV9pdGVyYXRvcigwKQor
ICAgIHsKKyAgICB9CisKKyAgICB+TGF6eUxpbmVCcmVha0l0ZXJhdG9yKCkKKyAgICB7CisgICAg
ICAgIGlmIChtX2l0ZXJhdG9yKQorICAgICAgICAgICAgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9y
KG1faXRlcmF0b3IpOworICAgIH0KKworICAgIGNvbnN0IFVDaGFyKiBzdHJpbmcoKSBjb25zdCB7
IHJldHVybiBtX3N0cmluZzsgfQorICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xl
bmd0aDsgfQorCisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGdldCgpCisgICAgeworICAgICAgICBp
ZiAoIW1faXRlcmF0b3IpCisgICAgICAgICAgICBtX2l0ZXJhdG9yID0gYWNxdWlyZUxpbmVCcmVh
a0l0ZXJhdG9yKG1fc3RyaW5nLCBtX2xlbmd0aCk7CisgICAgICAgIHJldHVybiBtX2l0ZXJhdG9y
OworICAgIH0KKworICAgIHZvaWQgcmVzZXQoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0
aCkKKyAgICB7CisgICAgICAgIGlmIChtX2l0ZXJhdG9yKQorICAgICAgICAgICAgcmVsZWFzZUxp
bmVCcmVha0l0ZXJhdG9yKG1faXRlcmF0b3IpOworCisgICAgICAgIG1fc3RyaW5nID0gc3RyaW5n
OworICAgICAgICBtX2xlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgbV9pdGVyYXRvciA9IDA7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0IFVDaGFyKiBtX3N0cmluZzsKKyAgICBpbnQgbV9s
ZW5ndGg7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIG1faXRlcmF0b3I7Cit9OworCiB9CiAKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRv
cklDVS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
QnJlYWtJdGVyYXRvcklDVS5jcHAJKHJldmlzaW9uIDc5MzY3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDggQEAKICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc2V0VXBJdGVyYXRvcihib29sJiBjcmVh
dGVkSXRlcmF0b3IsIFRleHRCcmVha0l0ZXJhdG9yKiYgaXRlcmF0b3IsCkBAIC02OCwxMiArNzAs
MzQgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbgogICAgICAgICBz
dGF0aWNXb3JkQnJlYWtJdGVyYXRvciwgVUJSS19XT1JELCBzdHJpbmcsIGxlbmd0aCk7CiB9CiAK
LVRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5n
LCBpbnQgbGVuZ3RoKQorc3RhdGljIGJvb2wgY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yID0gZmFs
c2U7CitzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwor
CitUZXh0QnJlYWtJdGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFy
KiBzdHJpbmcsIGludCBsZW5ndGgpCit7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVh
a0l0ZXJhdG9yID0gMDsKKyAgICBpZiAoIWNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciB8fCBzdGF0
aWNMaW5lQnJlYWtJdGVyYXRvcikgeworICAgICAgICBzZXRVcEl0ZXJhdG9yKGNyZWF0ZWRMaW5l
QnJlYWtJdGVyYXRvciwgc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFVCUktfTElORSwgc3RyaW5n
LCBsZW5ndGgpOworICAgICAgICBzd2FwKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBsaW5lQnJl
YWtJdGVyYXRvcik7CisgICAgfQorCisgICAgaWYgKCFsaW5lQnJlYWtJdGVyYXRvcikgeworICAg
ICAgICBib29sIGNyZWF0ZWROZXdMaW5lQnJlYWtJdGVyYXRvciA9IGZhbHNlOworICAgICAgICBz
ZXRVcEl0ZXJhdG9yKGNyZWF0ZWROZXdMaW5lQnJlYWtJdGVyYXRvciwgbGluZUJyZWFrSXRlcmF0
b3IsIFVCUktfTElORSwgc3RyaW5nLCBsZW5ndGgpOworICAgIH0KKworICAgIHJldHVybiBsaW5l
QnJlYWtJdGVyYXRvcjsKK30KKwordm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJy
ZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogewotICAgIHN0YXRpYyBib29sIGNyZWF0ZWRMaW5lQnJl
YWtJdGVyYXRvciA9IGZhbHNlOwotICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGlj
TGluZUJyZWFrSXRlcmF0b3I7Ci0gICAgcmV0dXJuIHNldFVwSXRlcmF0b3IoY3JlYXRlZExpbmVC
cmVha0l0ZXJhdG9yLAotICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgVUJSS19MSU5F
LCBzdHJpbmcsIGxlbmd0aCk7CisgICAgQVNTRVJUKGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvcik7
CisgICAgQVNTRVJUKGl0ZXJhdG9yKTsKKworICAgIGlmICghc3RhdGljTGluZUJyZWFrSXRlcmF0
b3IpCisgICAgICAgIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yID0gaXRlcmF0b3I7CisgICAgZWxz
ZQorICAgICAgICB1YnJrX2Nsb3NlKHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRlcmF0b3IqPihp
dGVyYXRvcikpOwogfQogCiBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9y
KGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAJKHJl
dmlzaW9uIDc5MzY3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJl
YWtJdGVyYXRvclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQAogI2RlZmlu
ZSBERUJVRyBpZiAoMSkge30gZWxzZSBxRGVidWcKICNlbmRpZgogCit1c2luZyBuYW1lc3BhY2Ug
c3RkOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBVU0UoUVRfSUNVX1RFWFRfQlJFQUtJ
TkcpCkBAIC04OSwxMCArOTEsMzAgQEAgY29uc3QgY2hhciogY3VycmVudFRleHRCcmVha0xvY2Fs
ZUlEKCkKICAgICAgICAgcmV0dXJuIGNoYXJhY3RlckJyZWFrSXRlcmF0b3Ioc3RyaW5nLCBsZW5n
dGgpOwogICAgIH0KIAotICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihj
b25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVy
YXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7CisKKyAgICBUZXh0QnJlYWtJdGVyYXRvciog
YWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgp
CiAgICAgewotICAgICAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3Igc3RhdGljTGluZUJyZWFr
SXRlcmF0b3I7Ci0gICAgICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKHN0YXRpY0xpbmVCcmVha0l0
ZXJhdG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpMaW5lLCBzdHJpbmcsIGxlbmd0aCk7CisgICAg
ICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvciA9IDA7CisgICAgICAgIGlm
IChzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcikgeworICAgICAgICAgICAgc2V0VXBJdGVyYXRvcigq
c3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5kZXI6OkxpbmUsIHN0cmlu
ZywgbGVuZ3RoKTsKKyAgICAgICAgICAgIHN3YXAoc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIGxp
bmVCcmVha0l0ZXJhdG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghbGluZUJyZWFrSXRl
cmF0b3IgJiYgc3RyaW5nICYmIGxlbmd0aCkKKyAgICAgICAgICAgIGxpbmVCcmVha0l0ZXJhdG9y
ID0gbmV3IFRleHRCcmVha0l0ZXJhdG9yKFFUZXh0Qm91bmRhcnlGaW5kZXI6OkxpbmUsIHN0cmlu
ZywgbGVuZ3RoKTsKKworICAgICAgICByZXR1cm4gbGluZUJyZWFrSXRlcmF0b3I7CisgICAgfQor
CisgICAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0
ZXJhdG9yKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGl0ZXJhdG9yKTsKKworICAgICAgICBpZiAo
IXN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yKQorICAgICAgICAgICAgc3RhdGljTGluZUJyZWFrSXRl
cmF0b3IgPSBpdGVyYXRvcjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGVsZXRlIGl0ZXJh
dG9yOwogICAgIH0KIAogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0
b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oCShyZXZpc2lvbiA3OTM2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbHVtbkluZm87CiBjbGFzcyBJbmxpbmVJdGVy
YXRvcjsKIGNsYXNzIExheW91dFN0YXRlTWFpbnRhaW5lcjsKK2NsYXNzIExhenlMaW5lQnJlYWtJ
dGVyYXRvcjsKIGNsYXNzIFJlbmRlcklubGluZTsKIAogc3RydWN0IEJpZGlSdW47CkBAIC00ODYs
NyArNDg3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNraXBUcmFpbGluZ1doaXRlc3BhY2UoSW5s
aW5lSXRlcmF0b3ImLCBib29sIGlzTGluZUVtcHR5LCBib29sIHByZXZpb3VzTGluZUJyb2tlQ2xl
YW5seSk7CiAgICAgaW50IHNraXBMZWFkaW5nV2hpdGVzcGFjZShJbmxpbmVCaWRpUmVzb2x2ZXIm
LCBib29sIGZpcnN0TGluZSwgYm9vbCBpc0xpbmVFbXB0eSwgYm9vbCBwcmV2aW91c0xpbmVCcm9r
ZUNsZWFubHksIEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKTsKICAg
ICB2b2lkIGZpdEJlbG93RmxvYXRzKGZsb2F0IHdpZHRoVG9GaXQsIGJvb2wgZmlyc3RMaW5lLCBm
bG9hdCYgYXZhaWxhYmxlV2lkdGgpOwotICAgIElubGluZUl0ZXJhdG9yIGZpbmROZXh0TGluZUJy
ZWFrKElubGluZUJpZGlSZXNvbHZlciYsIGJvb2wgZmlyc3RMaW5lLCBib29sJiBpc0xpbmVFbXB0
eSwgYm9vbCYgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCBib29sJiBoeXBoZW5hdGVkLCBFQ2xl
YXIqLCBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSk7CisgICAgdHlw
ZWRlZiBzdGQ6OnBhaXI8UmVuZGVyVGV4dCosIExhenlMaW5lQnJlYWtJdGVyYXRvcj4gTGluZUJy
ZWFrSXRlcmF0b3JJbmZvOworICAgIElubGluZUl0ZXJhdG9yIGZpbmROZXh0TGluZUJyZWFrKElu
bGluZUJpZGlSZXNvbHZlciYsIGJvb2wgZmlyc3RMaW5lLCBib29sJiBpc0xpbmVFbXB0eSwgTGlu
ZUJyZWFrSXRlcmF0b3JJbmZvJiwgYm9vbCYgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCBib29s
JiBoeXBoZW5hdGVkLCBFQ2xlYXIqLCBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZp
b3VzTGluZSk7CiAgICAgUm9vdElubGluZUJveCogY29uc3RydWN0TGluZSh1bnNpZ25lZCBydW5D
b3VudCwgQmlkaVJ1biogZmlyc3RSdW4sIEJpZGlSdW4qIGxhc3RSdW4sIGJvb2wgZmlyc3RMaW5l
LCBib29sIGxhc3RMaW5lLCBSZW5kZXJPYmplY3QqIGVuZE9iamVjdCk7CiAgICAgSW5saW5lRmxv
d0JveCogY3JlYXRlTGluZUJveGVzKFJlbmRlck9iamVjdCosIGJvb2wgZmlyc3RMaW5lKTsKICAg
ICB2b2lkIGNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVC
b3gqLCBib29sIGZpcnN0TGluZSwgQmlkaVJ1biogZmlyc3RSdW4sIEJpZGlSdW4qIHRyYWlsaW5n
U3BhY2VSdW4sIGJvb2wgcmVhY2hlZEVuZCwgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNN
YXAmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwCShyZXZpc2lvbiA3OTM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2luY2x1ZGUgIlJlbmRlclZp
ZXcuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgogI2luY2x1ZGUgIlRyYWlsaW5nRmxvYXRzUm9vdElu
bGluZUJveC5oIgogI2luY2x1ZGUgIlZlcnRpY2FsUG9zaXRpb25DYWNoZS5oIgpAQCAtNjYyLDYg
KzY2Myw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKGIKICAgICAg
ICAgYm9vbCBpc0xpbmVFbXB0eSA9IHRydWU7CiAgICAgICAgIGJvb2wgcGFnaW5hdGVkID0gdmll
dygpLT5sYXlvdXRTdGF0ZSgpICYmIHZpZXcoKS0+bGF5b3V0U3RhdGUoKS0+aXNQYWdpbmF0ZWQo
KTsKIAorICAgICAgICBMaW5lQnJlYWtJdGVyYXRvckluZm8gbGluZUJyZWFrSXRlcmF0b3JJbmZv
OwogICAgICAgICBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUgdmVydGljYWxQb3NpdGlvbkNhY2hlOwog
CiAgICAgICAgIHdoaWxlICghZW5kLmF0RW5kKCkpIHsKQEAgLTY3OCw3ICs2ODAsNyBAQCB2b2lk
IFJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJlbihiCiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIElubGluZUl0ZXJhdG9yIG9sZEVuZCA9IGVuZDsKICAgICAgICAgICAgIEZsb2F0aW5n
T2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lID0gbV9mbG9hdGluZ09iamVjdHMgPyBt
X2Zsb2F0aW5nT2JqZWN0cy0+bGFzdCgpIDogMDsKLSAgICAgICAgICAgIGVuZCA9IGZpbmROZXh0
TGluZUJyZWFrKHJlc29sdmVyLCBmaXJzdExpbmUsIGlzTGluZUVtcHR5LCBwcmV2aW91c0xpbmVC
cm9rZUNsZWFubHksIGh5cGhlbmF0ZWQsICZjbGVhciwgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGlu
ZSk7CisgICAgICAgICAgICBlbmQgPSBmaW5kTmV4dExpbmVCcmVhayhyZXNvbHZlciwgZmlyc3RM
aW5lLCBpc0xpbmVFbXB0eSwgbGluZUJyZWFrSXRlcmF0b3JJbmZvLCBwcmV2aW91c0xpbmVCcm9r
ZUNsZWFubHksIGh5cGhlbmF0ZWQsICZjbGVhciwgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSk7
CiAgICAgICAgICAgICBpZiAocmVzb2x2ZXIucG9zaXRpb24oKS5hdEVuZCgpKSB7CiAgICAgICAg
ICAgICAgICAgcmVzb2x2ZXIuZGVsZXRlUnVucygpOwogICAgICAgICAgICAgICAgIGNoZWNrRm9y
RmxvYXRzRnJvbUxhc3RMaW5lID0gdHJ1ZTsKQEAgLTE0MzIsNyArMTQzNCw3IEBAIHN0YXRpYyB2
b2lkIHRyeUh5cGhlbmF0aW5nKFJlbmRlclRleHQqIHQKICAgICBoeXBoZW5hdGVkID0gdHJ1ZTsK
IH0KIAotSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGlu
ZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wgZmlyc3RMaW5lLCAgYm9vbCYgaXNMaW5lRW1w
dHksIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgCitJbmxpbmVJdGVyYXRvciBSZW5k
ZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNvbHZlciwg
Ym9vbCBmaXJzdExpbmUsIGJvb2wmIGlzTGluZUVtcHR5LCBMaW5lQnJlYWtJdGVyYXRvckluZm8m
IGxpbmVCcmVha0l0ZXJhdG9ySW5mbywgYm9vbCYgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sJiBoeXBo
ZW5hdGVkLCBFQ2xlYXIqIGNsZWFyLCBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZp
b3VzTGluZSkKIHsKICAgICBBU1NFUlQocmVzb2x2ZXIucG9zaXRpb24oKS5ibG9jayA9PSB0aGlz
KTsKQEAgLTE3MjMsNyArMTcyNSwxMiBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6Zmlu
ZE5leHRMaW5lCiAgICAgICAgICAgICAgICAgICAgIG1pZFdvcmRCcmVhayA9IHcgKyB3cmFwVyAr
IGNoYXJXaWR0aCA+IHdpZHRoOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAg
IGJvb2wgYmV0d2VlbldvcmRzID0gYyA9PSAnXG4nIHx8IChjdXJyV1MgIT0gUFJFICYmICFhdFN0
YXJ0ICYmIGlzQnJlYWthYmxlKHN0ciwgcG9zLCBzdHJsZW4sIG5leHRCcmVha2FibGUsIGJyZWFr
TkJTUCkgJiYgKHN0eWxlLT5oeXBoZW5zKCkgIT0gSHlwaGVuc05vbmUgfHwgKHBvcyAmJiBzdHJb
cG9zIC0gMV0gIT0gc29mdEh5cGhlbikpKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZUJyZWFr
SXRlcmF0b3JJbmZvLmZpcnN0ICE9IHQpIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZUJyZWFr
SXRlcmF0b3JJbmZvLmZpcnN0ID0gdDsKKyAgICAgICAgICAgICAgICAgICAgbGluZUJyZWFrSXRl
cmF0b3JJbmZvLnNlY29uZC5yZXNldChzdHIsIHN0cmxlbik7CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09ICdcbicgfHwgKGN1cnJX
UyAhPSBQUkUgJiYgIWF0U3RhcnQgJiYgaXNCcmVha2FibGUobGluZUJyZWFrSXRlcmF0b3JJbmZv
LnNlY29uZCwgcG9zLCBuZXh0QnJlYWthYmxlLCBicmVha05CU1ApICYmIChzdHlsZS0+aHlwaGVu
cygpICE9IEh5cGhlbnNOb25lIHx8IChwb3MgJiYgc3RyW3BvcyAtIDFdICE9IHNvZnRIeXBoZW4p
KSk7CiAKICAgICAgICAgICAgICAgICBpZiAoYmV0d2VlbldvcmRzIHx8IG1pZFdvcmRCcmVhaykg
ewogICAgICAgICAgICAgICAgICAgICBib29sIHN0b3BwZWRJZ25vcmluZ1NwYWNlcyA9IGZhbHNl
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkocmV2aXNpb24g
NzkzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc0OCw2ICs3NDgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsCiAgICAgZmxvYXQgd29yZFNwYWNpbmcgPSBzdHlsZSgpLT53b3JkU3BhY2lu
ZygpOwogICAgIGludCBsZW4gPSB0ZXh0TGVuZ3RoKCk7CiAgICAgY29uc3QgVUNoYXIqIHR4dCA9
IGNoYXJhY3RlcnMoKTsKKyAgICBMYXp5TGluZUJyZWFrSXRlcmF0b3IgYnJlYWtJdGVyYXRvcih0
eHQsIGxlbik7CiAgICAgYm9vbCBuZWVkc1dvcmRTcGFjaW5nID0gZmFsc2U7CiAgICAgYm9vbCBp
Z25vcmluZ1NwYWNlcyA9IGZhbHNlOwogICAgIGJvb2wgaXNTcGFjZSA9IGZhbHNlOwpAQCAtODA3
LDcgKzgwOCw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWwKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBoYXNCcmVhayA9
IGJyZWFrQWxsIHx8IGlzQnJlYWthYmxlKHR4dCwgaSwgbGVuLCBuZXh0QnJlYWthYmxlLCBicmVh
a05CU1ApOworICAgICAgICBib29sIGhhc0JyZWFrID0gYnJlYWtBbGwgfHwgaXNCcmVha2FibGUo
YnJlYWtJdGVyYXRvciwgaSwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKTsKICAgICAgICAgYm9v
bCBiZXR3ZWVuV29yZHMgPSB0cnVlOwogICAgICAgICBpbnQgaiA9IGk7CiAgICAgICAgIHdoaWxl
IChjICE9ICdcbicgJiYgIWlzU3BhY2VBY2NvcmRpbmdUb1N0eWxlKGMsIHN0eWxlKCkpICYmIGMg
IT0gJ1x0JyAmJiBjICE9IHNvZnRIeXBoZW4pIHsKQEAgLTgxNSw3ICs4MTYsNyBAQCB2b2lkIFJl
bmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsCiAgICAgICAgICAgICBpZiAoaiA9PSBs
ZW4pCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjID0gdHh0W2pdOwotICAg
ICAgICAgICAgaWYgKGlzQnJlYWthYmxlKHR4dCwgaiwgbGVuLCBuZXh0QnJlYWthYmxlLCBicmVh
a05CU1ApKQorICAgICAgICAgICAgaWYgKGlzQnJlYWthYmxlKGJyZWFrSXRlcmF0b3IsIGosIG5l
eHRCcmVha2FibGUsIGJyZWFrTkJTUCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBpZiAoYnJlYWtBbGwpIHsKICAgICAgICAgICAgICAgICBiZXR3ZWVuV29yZHMgPSBmYWxz
ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAkocmV2aXNp
b24gNzkzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTQsMTEgKzE1NCwxMCBAQCBzdGF0aWMgaW5saW5lIFRleHRCcmVh
a0xvY2F0b3JSZWYgbGluZUJyCiB9CiAjZW5kaWYKIAotaW50IG5leHRCcmVha2FibGVQb3NpdGlv
bihjb25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBib29sIHRyZWF0Tm9CcmVha1Nw
YWNlQXNCcmVhaykKK2ludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oTGF6eUxpbmVCcmVha0l0ZXJh
dG9yJiBsYXp5QnJlYWtJdGVyYXRvciwgaW50IHBvcywgYm9vbCB0cmVhdE5vQnJlYWtTcGFjZUFz
QnJlYWspCiB7Ci0jaWYgIVBMQVRGT1JNKE1BQykgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fVElH
RVIpCi0gICAgVGV4dEJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3IgPSAwOwotI2VuZGlmCisg
ICAgY29uc3QgVUNoYXIqIHN0ciA9IGxhenlCcmVha0l0ZXJhdG9yLnN0cmluZygpOworICAgIGlu
dCBsZW4gPSBsYXp5QnJlYWtJdGVyYXRvci5sZW5ndGgoKTsKICAgICBpbnQgbmV4dEJyZWFrID0g
LTE7CiAKICAgICBVQ2hhciBsYXN0Q2ggPSBwb3MgPiAwID8gc3RyW3BvcyAtIDFdIDogMDsKQEAg
LTE3MSw4ICsxNzAsNyBAQCBpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0IFVDaGFyKiBz
CiAgICAgICAgIGlmIChuZWVkc0xpbmVCcmVha0l0ZXJhdG9yKGNoKSB8fCBuZWVkc0xpbmVCcmVh
a0l0ZXJhdG9yKGxhc3RDaCkpIHsKICAgICAgICAgICAgIGlmIChuZXh0QnJlYWsgPCBpICYmIGkp
IHsKICNpZiAhUExBVEZPUk0oTUFDKSB8fCAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikKLSAg
ICAgICAgICAgICAgICBpZiAoIWJyZWFrSXRlcmF0b3IpCi0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrSXRlcmF0b3IgPSBsaW5lQnJlYWtJdGVyYXRvcihzdHIsIGxlbik7CisgICAgICAgICAgICAg
ICAgVGV4dEJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3IgPSBsYXp5QnJlYWtJdGVyYXRvci5n
ZXQoKTsKICAgICAgICAgICAgICAgICBpZiAoYnJlYWtJdGVyYXRvcikKICAgICAgICAgICAgICAg
ICAgICAgbmV4dEJyZWFrID0gdGV4dEJyZWFrRm9sbG93aW5nKGJyZWFrSXRlcmF0b3IsIGkgLSAx
KTsKICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuaAkocmV2
aXNpb24gNzkzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMjUsMTQgKzI1LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotICAgIGludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqLCBpbnQgcG9zLCBp
bnQgbGVuLCBib29sIGJyZWFrTkJTUCA9IGZhbHNlKTsKK2NsYXNzIExhenlMaW5lQnJlYWtJdGVy
YXRvcjsKIAotICAgIGlubGluZSBib29sIGlzQnJlYWthYmxlKGNvbnN0IFVDaGFyKiBzdHIsIGlu
dCBwb3MsIGludCBsZW4sIGludCYgbmV4dEJyZWFrYWJsZSwgYm9vbCBicmVha05CU1AgPSBmYWxz
ZSkKLSAgICB7Ci0gICAgICAgIGlmIChwb3MgPiBuZXh0QnJlYWthYmxlKQotICAgICAgICAgICAg
bmV4dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbihzdHIsIHBvcywgbGVuLCBicmVh
a05CU1ApOwotICAgICAgICByZXR1cm4gcG9zID09IG5leHRCcmVha2FibGU7Ci0gICAgfQoraW50
IG5leHRCcmVha2FibGVQb3NpdGlvbihMYXp5TGluZUJyZWFrSXRlcmF0b3ImLCBpbnQgcG9zLCBi
b29sIGJyZWFrTkJTUCA9IGZhbHNlKTsKKworaW5saW5lIGJvb2wgaXNCcmVha2FibGUoTGF6eUxp
bmVCcmVha0l0ZXJhdG9yJiBsYXp5QnJlYWtJdGVyYXRvciwgaW50IHBvcywgaW50JiBuZXh0QnJl
YWthYmxlLCBib29sIGJyZWFrTkJTUCA9IGZhbHNlKQoreworICAgIGlmIChwb3MgPiBuZXh0QnJl
YWthYmxlKQorICAgICAgICBuZXh0QnJlYWthYmxlID0gbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGxh
enlCcmVha0l0ZXJhdG9yLCBwb3MsIGJyZWFrTkJTUCk7CisgICAgcmV0dXJuIHBvcyA9PSBuZXh0
QnJlYWthYmxlOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
</data>
<flag name="review"
          id="75415"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83579</attachid>
            <date>2011-02-23 16:52:14 -0800</date>
            <delta_ts>2011-02-23 17:32:12 -0800</delta_ts>
            <desc>Final changes.</desc>
            <filename>ubrk_setText-final.txt</filename>
            <type>text/plain</type>
            <size>16006</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NTA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDItMjMgIE5lZCBIb2xi
cm9vayAgPG5ob2xicm9va0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWluaW1pemUgY2FsbHMgdG8gdWJya19zZXRUZXh0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0OTEyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS85MDMyNzc0PgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9P
UFMhKQorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6TGF6eUxpbmVCcmVha0l0ZXJhdG9yOjpMYXp5TGluZUJyZWFrSXRlcmF0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6TGF6eUxpbmVCcmVha0l0ZXJhdG9yOjp+TGF6eUxpbmVC
cmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6
c3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6bGVuZ3Ro
KToKKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6Z2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6cmVzZXQpOgorICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
YWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5l
QnJlYWtJdGVyYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVy
YXRvclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpyZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dElu
bGluZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmaW5kTmV4dExp
bmVCcmVhayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorICAg
ICAgICAqIHJlbmRlcmluZy9icmVha19saW5lcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZXh0
QnJlYWthYmxlUG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9icmVha19saW5lcy5oOgor
ICAgICAgICAoV2ViQ29yZTo6aXNCcmVha2FibGUpOgorCiAyMDExLTAyLTE3ICBFbnJpY2EgQ2Fz
dWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJ
dGVyYXRvci5oCShyZXZpc2lvbiA3OTM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUZXh0QnJlYWtJdGVyYXRvcjsKIAotICAg
IC8vIE5vdGU6IFRoZSByZXR1cm5lZCBpdGVyYXRvciBpcyBnb29kIG9ubHkgdW50aWwgeW91IGdl
dCBhbm90aGVyIGl0ZXJhdG9yLgorICAgIC8vIE5vdGU6IFRoZSByZXR1cm5lZCBpdGVyYXRvciBp
cyBnb29kIG9ubHkgdW50aWwgeW91IGdldCBhbm90aGVyIGl0ZXJhdG9yLCB3aXRoIHRoZSBleGNl
cHRpb24gb2YgYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yLgogCiAgICAgLy8gSXRlcmF0ZXMgb3Zl
ciAiZXh0ZW5kZWQgZ3JhcGhlbWUgY2x1c3RlcnMiLCBhcyBkZWZpbmVkIGluIFVBWCAjMjkuCiAg
ICAgLy8gTm90ZSB0aGF0IHBsYXRmb3JtIGltcGxlbWVudGF0aW9ucyBtYXkgYmUgbGVzcyBzb3Bo
aXN0aWNhdGVkIC0gZS5nLiBJQ1UgcHJpb3IgdG8KQEAgLTQzLDcgKzQzLDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
KGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CiAKICAgICBUZXh0QnJlYWtJdGVyYXRvciogd29y
ZEJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKLSAgICBUZXh0QnJlYWtJ
dGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsKKyAg
ICBUZXh0QnJlYWtJdGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFy
KiwgaW50IGxlbmd0aCk7CisgICAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJy
ZWFrSXRlcmF0b3IqKTsKICAgICBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJh
dG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CiAKICAgICBpbnQgdGV4dEJyZWFrRmlyc3Qo
VGV4dEJyZWFrSXRlcmF0b3IqKTsKQEAgLTU3LDYgKzU4LDQ3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNvbnN0IGludCBUZXh0QnJlYWtEb25lID0gLTE7CiAKK2NsYXNzIExhenlMaW5l
QnJlYWtJdGVyYXRvciB7CitwdWJsaWM6CisgICAgTGF6eUxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0
IFVDaGFyKiBzdHJpbmcgPSAwLCBpbnQgbGVuZ3RoID0gMCkKKyAgICAgICAgOiBtX3N0cmluZyhz
dHJpbmcpCisgICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQorICAgICAgICAsIG1faXRlcmF0b3Io
MCkKKyAgICB7CisgICAgfQorCisgICAgfkxhenlMaW5lQnJlYWtJdGVyYXRvcigpCisgICAgewor
ICAgICAgICBpZiAobV9pdGVyYXRvcikKKyAgICAgICAgICAgIHJlbGVhc2VMaW5lQnJlYWtJdGVy
YXRvcihtX2l0ZXJhdG9yKTsKKyAgICB9CisKKyAgICBjb25zdCBVQ2hhciogc3RyaW5nKCkgY29u
c3QgeyByZXR1cm4gbV9zdHJpbmc7IH0KKyAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4g
bV9sZW5ndGg7IH0KKworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBnZXQoKQorICAgIHsKKyAgICAg
ICAgaWYgKCFtX2l0ZXJhdG9yKQorICAgICAgICAgICAgbV9pdGVyYXRvciA9IGFjcXVpcmVMaW5l
QnJlYWtJdGVyYXRvcihtX3N0cmluZywgbV9sZW5ndGgpOworICAgICAgICByZXR1cm4gbV9pdGVy
YXRvcjsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBs
ZW5ndGgpCisgICAgeworICAgICAgICBpZiAobV9pdGVyYXRvcikKKyAgICAgICAgICAgIHJlbGVh
c2VMaW5lQnJlYWtJdGVyYXRvcihtX2l0ZXJhdG9yKTsKKworICAgICAgICBtX3N0cmluZyA9IHN0
cmluZzsKKyAgICAgICAgbV9sZW5ndGggPSBsZW5ndGg7CisgICAgICAgIG1faXRlcmF0b3IgPSAw
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBjb25zdCBVQ2hhciogbV9zdHJpbmc7CisgICAgaW50
IG1fbGVuZ3RoOworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBtX2l0ZXJhdG9yOworfTsKKwogfQog
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRl
cmF0b3JJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCShyZXZpc2lvbiA3OTM2NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHNldFVwSXRlcmF0b3IoYm9vbCYg
Y3JlYXRlZEl0ZXJhdG9yLCBUZXh0QnJlYWtJdGVyYXRvciomIGl0ZXJhdG9yLApAQCAtNjgsMTIg
KzcwLDM0IEBAIFRleHRCcmVha0l0ZXJhdG9yKiB3b3JkQnJlYWtJdGVyYXRvcihjb24KICAgICAg
ICAgc3RhdGljV29yZEJyZWFrSXRlcmF0b3IsIFVCUktfV09SRCwgc3RyaW5nLCBsZW5ndGgpOwog
fQogCi1UZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0
cmluZywgaW50IGxlbmd0aCkKK3N0YXRpYyBib29sIGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciA9
IGZhbHNlOworc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRv
cjsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBV
Q2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQoreworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5l
QnJlYWtJdGVyYXRvciA9IDA7CisgICAgaWYgKCFjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgfHwg
c3RhdGljTGluZUJyZWFrSXRlcmF0b3IpIHsKKyAgICAgICAgc2V0VXBJdGVyYXRvcihjcmVhdGVk
TGluZUJyZWFrSXRlcmF0b3IsIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBVQlJLX0xJTkUsIHN0
cmluZywgbGVuZ3RoKTsKKyAgICAgICAgc3dhcChzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgbGlu
ZUJyZWFrSXRlcmF0b3IpOworICAgIH0KKworICAgIGlmICghbGluZUJyZWFrSXRlcmF0b3IpIHsK
KyAgICAgICAgYm9vbCBjcmVhdGVkTmV3TGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKKyAgICAg
ICAgc2V0VXBJdGVyYXRvcihjcmVhdGVkTmV3TGluZUJyZWFrSXRlcmF0b3IsIGxpbmVCcmVha0l0
ZXJhdG9yLCBVQlJLX0xJTkUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICB9CisKKyAgICByZXR1cm4g
bGluZUJyZWFrSXRlcmF0b3I7Cit9CisKK3ZvaWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRl
eHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKIHsKLSAgICBzdGF0aWMgYm9vbCBjcmVhdGVkTGlu
ZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKLSAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0
YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwotICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKGNyZWF0ZWRM
aW5lQnJlYWtJdGVyYXRvciwKLSAgICAgICAgc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFVCUktf
TElORSwgc3RyaW5nLCBsZW5ndGgpOworICAgIEFTU0VSVChjcmVhdGVkTGluZUJyZWFrSXRlcmF0
b3IpOworICAgIEFTU0VSVChpdGVyYXRvcik7CisKKyAgICBpZiAoIXN0YXRpY0xpbmVCcmVha0l0
ZXJhdG9yKQorICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciA9IGl0ZXJhdG9yOworICAg
IGVsc2UKKyAgICAgICAgdWJya19jbG9zZShyZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9y
Kj4oaXRlcmF0b3IpKTsKIH0KIAogVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVy
YXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3Bw
CShyZXZpc2lvbiA3OTM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4
dEJyZWFrSXRlcmF0b3JRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAKICNk
ZWZpbmUgREVCVUcgaWYgKDEpIHt9IGVsc2UgcURlYnVnCiAjZW5kaWYKIAordXNpbmcgbmFtZXNw
YWNlIHN0ZDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgVVNFKFFUX0lDVV9URVhUX0JS
RUFLSU5HKQpAQCAtODksMTAgKzkxLDMwIEBAIGNvbnN0IGNoYXIqIGN1cnJlbnRUZXh0QnJlYWtM
b2NhbGVJRCgpCiAgICAgICAgIHJldHVybiBjaGFyYWN0ZXJCcmVha0l0ZXJhdG9yKHN0cmluZywg
bGVuZ3RoKTsKICAgICB9CiAKLSAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0
b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKKyAgICBzdGF0aWMgVGV4dEJyZWFr
SXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOworCisgICAgVGV4dEJyZWFrSXRlcmF0
b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVu
Z3RoKQogICAgIHsKLSAgICAgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yIHN0YXRpY0xpbmVC
cmVha0l0ZXJhdG9yOwotICAgICAgICByZXR1cm4gc2V0VXBJdGVyYXRvcihzdGF0aWNMaW5lQnJl
YWtJdGVyYXRvciwgUVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3RyaW5nLCBsZW5ndGgpOwor
ICAgICAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IgPSAwOworICAgICAg
ICBpZiAoc3RhdGljTGluZUJyZWFrSXRlcmF0b3IpIHsKKyAgICAgICAgICAgIHNldFVwSXRlcmF0
b3IoKnN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBRVGV4dEJvdW5kYXJ5RmluZGVyOjpMaW5lLCBz
dHJpbmcsIGxlbmd0aCk7CisgICAgICAgICAgICBzd2FwKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9y
LCBsaW5lQnJlYWtJdGVyYXRvcik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWxpbmVCcmVh
a0l0ZXJhdG9yICYmIHN0cmluZyAmJiBsZW5ndGgpCisgICAgICAgICAgICBsaW5lQnJlYWtJdGVy
YXRvciA9IG5ldyBUZXh0QnJlYWtJdGVyYXRvcihRVGV4dEJvdW5kYXJ5RmluZGVyOjpMaW5lLCBz
dHJpbmcsIGxlbmd0aCk7CisKKyAgICAgICAgcmV0dXJuIGxpbmVCcmVha0l0ZXJhdG9yOworICAg
IH0KKworICAgIHZvaWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9y
KiBpdGVyYXRvcikKKyAgICB7CisgICAgICAgIEFTU0VSVChpdGVyYXRvcik7CisKKyAgICAgICAg
aWYgKCFzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcikKKyAgICAgICAgICAgIHN0YXRpY0xpbmVCcmVh
a0l0ZXJhdG9yID0gaXRlcmF0b3I7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlbGV0ZSBp
dGVyYXRvcjsKICAgICB9CiAKICAgICBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0
ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkocmV2aXNpb24gNzkzNjcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb2x1bW5JbmZvOwogY2xhc3MgSW5saW5l
SXRlcmF0b3I7CiBjbGFzcyBMYXlvdXRTdGF0ZU1haW50YWluZXI7CitjbGFzcyBMYXp5TGluZUJy
ZWFrSXRlcmF0b3I7CiBjbGFzcyBSZW5kZXJJbmxpbmU7CiAKIHN0cnVjdCBCaWRpUnVuOwpAQCAt
NDg2LDcgKzQ4Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBza2lwVHJhaWxpbmdXaGl0ZXNwYWNl
KElubGluZUl0ZXJhdG9yJiwgYm9vbCBpc0xpbmVFbXB0eSwgYm9vbCBwcmV2aW91c0xpbmVCcm9r
ZUNsZWFubHkpOwogICAgIGludCBza2lwTGVhZGluZ1doaXRlc3BhY2UoSW5saW5lQmlkaVJlc29s
dmVyJiwgYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNMaW5lRW1wdHksIGJvb2wgcHJldmlvdXNMaW5l
QnJva2VDbGVhbmx5LCBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSk7
CiAgICAgdm9pZCBmaXRCZWxvd0Zsb2F0cyhmbG9hdCB3aWR0aFRvRml0LCBib29sIGZpcnN0TGlu
ZSwgZmxvYXQmIGF2YWlsYWJsZVdpZHRoKTsKLSAgICBJbmxpbmVJdGVyYXRvciBmaW5kTmV4dExp
bmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImLCBib29sIGZpcnN0TGluZSwgYm9vbCYgaXNMaW5l
RW1wdHksIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgYm9vbCYgaHlwaGVuYXRlZCwg
RUNsZWFyKiwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOworICAg
IHR5cGVkZWYgc3RkOjpwYWlyPFJlbmRlclRleHQqLCBMYXp5TGluZUJyZWFrSXRlcmF0b3I+IExp
bmVCcmVha0l0ZXJhdG9ySW5mbzsKKyAgICBJbmxpbmVJdGVyYXRvciBmaW5kTmV4dExpbmVCcmVh
ayhJbmxpbmVCaWRpUmVzb2x2ZXImLCBib29sIGZpcnN0TGluZSwgYm9vbCYgaXNMaW5lRW1wdHks
IExpbmVCcmVha0l0ZXJhdG9ySW5mbyYsIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwg
Ym9vbCYgaHlwaGVuYXRlZCwgRUNsZWFyKiwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21Q
cmV2aW91c0xpbmUpOwogICAgIFJvb3RJbmxpbmVCb3gqIGNvbnN0cnVjdExpbmUodW5zaWduZWQg
cnVuQ291bnQsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiBsYXN0UnVuLCBib29sIGZpcnN0
TGluZSwgYm9vbCBsYXN0TGluZSwgUmVuZGVyT2JqZWN0KiBlbmRPYmplY3QpOwogICAgIElubGlu
ZUZsb3dCb3gqIGNyZWF0ZUxpbmVCb3hlcyhSZW5kZXJPYmplY3QqLCBib29sIGZpcnN0TGluZSk7
CiAgICAgdm9pZCBjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5s
aW5lQm94KiwgYm9vbCBmaXJzdExpbmUsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiB0cmFp
bGluZ1NwYWNlUnVuLCBib29sIHJlYWNoZWRFbmQsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0Zv
bnRzTWFwJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gNzkzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RNYXJrZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVy
YXRvci5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlICJUcmFpbGluZ0Zsb2F0c1Jv
b3RJbmxpbmVCb3guaCIKICNpbmNsdWRlICJWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUuaCIKQEAgLTY2
Miw2ICs2NjMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJlbihiCiAg
ICAgICAgIGJvb2wgaXNMaW5lRW1wdHkgPSB0cnVlOwogICAgICAgICBib29sIHBhZ2luYXRlZCA9
IHZpZXcoKS0+bGF5b3V0U3RhdGUoKSAmJiB2aWV3KCktPmxheW91dFN0YXRlKCktPmlzUGFnaW5h
dGVkKCk7CiAKKyAgICAgICAgTGluZUJyZWFrSXRlcmF0b3JJbmZvIGxpbmVCcmVha0l0ZXJhdG9y
SW5mbzsKICAgICAgICAgVmVydGljYWxQb3NpdGlvbkNhY2hlIHZlcnRpY2FsUG9zaXRpb25DYWNo
ZTsKIAogICAgICAgICB3aGlsZSAoIWVuZC5hdEVuZCgpKSB7CkBAIC02NzgsNyArNjgwLDcgQEAg
dm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBJbmxpbmVJdGVyYXRvciBvbGRFbmQgPSBlbmQ7CiAgICAgICAgICAgICBGbG9h
dGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSA9IG1fZmxvYXRpbmdPYmplY3Rz
ID8gbV9mbG9hdGluZ09iamVjdHMtPmxhc3QoKSA6IDA7Ci0gICAgICAgICAgICBlbmQgPSBmaW5k
TmV4dExpbmVCcmVhayhyZXNvbHZlciwgZmlyc3RMaW5lLCBpc0xpbmVFbXB0eSwgcHJldmlvdXNM
aW5lQnJva2VDbGVhbmx5LCBoeXBoZW5hdGVkLCAmY2xlYXIsIGxhc3RGbG9hdEZyb21QcmV2aW91
c0xpbmUpOworICAgICAgICAgICAgZW5kID0gZmluZE5leHRMaW5lQnJlYWsocmVzb2x2ZXIsIGZp
cnN0TGluZSwgaXNMaW5lRW1wdHksIGxpbmVCcmVha0l0ZXJhdG9ySW5mbywgcHJldmlvdXNMaW5l
QnJva2VDbGVhbmx5LCBoeXBoZW5hdGVkLCAmY2xlYXIsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xp
bmUpOwogICAgICAgICAgICAgaWYgKHJlc29sdmVyLnBvc2l0aW9uKCkuYXRFbmQoKSkgewogICAg
ICAgICAgICAgICAgIHJlc29sdmVyLmRlbGV0ZVJ1bnMoKTsKICAgICAgICAgICAgICAgICBjaGVj
a0ZvckZsb2F0c0Zyb21MYXN0TGluZSA9IHRydWU7CkBAIC0xNDMyLDcgKzE0MzQsNyBAQCBzdGF0
aWMgdm9pZCB0cnlIeXBoZW5hdGluZyhSZW5kZXJUZXh0KiB0CiAgICAgaHlwaGVuYXRlZCA9IHRy
dWU7CiB9CiAKLUlubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJ
bmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sIGZpcnN0TGluZSwgIGJvb2wmIGlzTGlu
ZUVtcHR5LCBib29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIAorSW5saW5lSXRlcmF0b3Ig
UmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2
ZXIsIGJvb2wgZmlyc3RMaW5lLCBib29sJiBpc0xpbmVFbXB0eSwgTGluZUJyZWFrSXRlcmF0b3JJ
bmZvJiBsaW5lQnJlYWtJdGVyYXRvckluZm8sIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5s
eSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCYg
aHlwaGVuYXRlZCwgRUNsZWFyKiBjbGVhciwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21Q
cmV2aW91c0xpbmUpCiB7CiAgICAgQVNTRVJUKHJlc29sdmVyLnBvc2l0aW9uKCkuYmxvY2sgPT0g
dGhpcyk7CkBAIC0xNzIzLDcgKzE3MjUsMTIgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6
OmZpbmROZXh0TGluZQogICAgICAgICAgICAgICAgICAgICBtaWRXb3JkQnJlYWsgPSB3ICsgd3Jh
cFcgKyBjaGFyV2lkdGggPiB3aWR0aDsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
ICAgICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldTICE9IFBSRSAmJiAh
YXRTdGFydCAmJiBpc0JyZWFrYWJsZShzdHIsIHBvcywgc3RybGVuLCBuZXh0QnJlYWthYmxlLCBi
cmVha05CU1ApICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhlbnNOb25lIHx8IChwb3MgJiYg
c3RyW3BvcyAtIDFdICE9IHNvZnRIeXBoZW4pKSk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmVC
cmVha0l0ZXJhdG9ySW5mby5maXJzdCAhPSB0KSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmVC
cmVha0l0ZXJhdG9ySW5mby5maXJzdCA9IHQ7CisgICAgICAgICAgICAgICAgICAgIGxpbmVCcmVh
a0l0ZXJhdG9ySW5mby5zZWNvbmQucmVzZXQoc3RyLCBzdHJsZW4pOworICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgIGJvb2wgYmV0d2VlbldvcmRzID0gYyA9PSAnXG4nIHx8IChj
dXJyV1MgIT0gUFJFICYmICFhdFN0YXJ0ICYmIGlzQnJlYWthYmxlKGxpbmVCcmVha0l0ZXJhdG9y
SW5mby5zZWNvbmQsIHBvcywgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSAmJiAoc3R5bGUtPmh5
cGhlbnMoKSAhPSBIeXBoZW5zTm9uZSB8fCAocG9zICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlw
aGVuKSkpOwogCiAgICAgICAgICAgICAgICAgaWYgKGJldHdlZW5Xb3JkcyB8fCBtaWRXb3JkQnJl
YWspIHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBzdG9wcGVkSWdub3JpbmdTcGFjZXMgPSBm
YWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlz
aW9uIDc5MzY3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03NDgsNiArNzQ4LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRl
UHJlZmVycmVkTG9naWNhbAogICAgIGZsb2F0IHdvcmRTcGFjaW5nID0gc3R5bGUoKS0+d29yZFNw
YWNpbmcoKTsKICAgICBpbnQgbGVuID0gdGV4dExlbmd0aCgpOwogICAgIGNvbnN0IFVDaGFyKiB0
eHQgPSBjaGFyYWN0ZXJzKCk7CisgICAgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIGJyZWFrSXRlcmF0
b3IodHh0LCBsZW4pOwogICAgIGJvb2wgbmVlZHNXb3JkU3BhY2luZyA9IGZhbHNlOwogICAgIGJv
b2wgaWdub3JpbmdTcGFjZXMgPSBmYWxzZTsKICAgICBib29sIGlzU3BhY2UgPSBmYWxzZTsKQEAg
LTgwNyw3ICs4MDgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2Fs
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgaGFzQnJl
YWsgPSBicmVha0FsbCB8fCBpc0JyZWFrYWJsZSh0eHQsIGksIGxlbiwgbmV4dEJyZWFrYWJsZSwg
YnJlYWtOQlNQKTsKKyAgICAgICAgYm9vbCBoYXNCcmVhayA9IGJyZWFrQWxsIHx8IGlzQnJlYWth
YmxlKGJyZWFrSXRlcmF0b3IsIGksIG5leHRCcmVha2FibGUsIGJyZWFrTkJTUCk7CiAgICAgICAg
IGJvb2wgYmV0d2VlbldvcmRzID0gdHJ1ZTsKICAgICAgICAgaW50IGogPSBpOwogICAgICAgICB3
aGlsZSAoYyAhPSAnXG4nICYmICFpc1NwYWNlQWNjb3JkaW5nVG9TdHlsZShjLCBzdHlsZSgpKSAm
JiBjICE9ICdcdCcgJiYgYyAhPSBzb2Z0SHlwaGVuKSB7CkBAIC04MTUsNyArODE2LDcgQEAgdm9p
ZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAogICAgICAgICAgICAgaWYgKGog
PT0gbGVuKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgYyA9IHR4dFtqXTsK
LSAgICAgICAgICAgIGlmIChpc0JyZWFrYWJsZSh0eHQsIGosIGxlbiwgbmV4dEJyZWFrYWJsZSwg
YnJlYWtOQlNQKSkKKyAgICAgICAgICAgIGlmIChpc0JyZWFrYWJsZShicmVha0l0ZXJhdG9yLCBq
LCBuZXh0QnJlYWthYmxlLCBicmVha05CU1ApKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgaWYgKGJyZWFrQWxsKSB7CiAgICAgICAgICAgICAgICAgYmV0d2VlbldvcmRzID0g
ZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHJl
dmlzaW9uIDc5MzY3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDExICsxNTQsMTAgQEAgc3RhdGljIGlubGluZSBUZXh0
QnJlYWtMb2NhdG9yUmVmIGxpbmVCcgogfQogI2VuZGlmCiAKLWludCBuZXh0QnJlYWthYmxlUG9z
aXRpb24oY29uc3QgVUNoYXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgYm9vbCB0cmVhdE5vQnJl
YWtTcGFjZUFzQnJlYWspCitpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKExhenlMaW5lQnJlYWtJ
dGVyYXRvciYgbGF6eUJyZWFrSXRlcmF0b3IsIGludCBwb3MsIGJvb2wgdHJlYXROb0JyZWFrU3Bh
Y2VBc0JyZWFrKQogewotI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09O
X1RJR0VSKQotICAgIFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yID0gMDsKLSNlbmRp
ZgorICAgIGNvbnN0IFVDaGFyKiBzdHIgPSBsYXp5QnJlYWtJdGVyYXRvci5zdHJpbmcoKTsKKyAg
ICBpbnQgbGVuID0gbGF6eUJyZWFrSXRlcmF0b3IubGVuZ3RoKCk7CiAgICAgaW50IG5leHRCcmVh
ayA9IC0xOwogCiAgICAgVUNoYXIgbGFzdENoID0gcG9zID4gMCA/IHN0cltwb3MgLSAxXSA6IDA7
CkBAIC0xNzEsOCArMTcwLDcgQEAgaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hh
ciogcwogICAgICAgICBpZiAobmVlZHNMaW5lQnJlYWtJdGVyYXRvcihjaCkgfHwgbmVlZHNMaW5l
QnJlYWtJdGVyYXRvcihsYXN0Q2gpKSB7CiAgICAgICAgICAgICBpZiAobmV4dEJyZWFrIDwgaSAm
JiBpKSB7CiAjaWYgIVBMQVRGT1JNKE1BQykgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIp
Ci0gICAgICAgICAgICAgICAgaWYgKCFicmVha0l0ZXJhdG9yKQotICAgICAgICAgICAgICAgICAg
ICBicmVha0l0ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3Ioc3RyLCBsZW4pOworICAgICAgICAg
ICAgICAgIFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yID0gbGF6eUJyZWFrSXRlcmF0
b3IuZ2V0KCk7CiAgICAgICAgICAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3IpCiAgICAgICAgICAg
ICAgICAgICAgIG5leHRCcmVhayA9IHRleHRCcmVha0ZvbGxvd2luZyhicmVha0l0ZXJhdG9yLCBp
IC0gMSk7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJ
KHJldmlzaW9uIDc5MzY3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDE0ICsyNSwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSAgICBpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0IFVDaGFyKiwgaW50IHBv
cywgaW50IGxlbiwgYm9vbCBicmVha05CU1AgPSBmYWxzZSk7CitjbGFzcyBMYXp5TGluZUJyZWFr
SXRlcmF0b3I7CiAKLSAgICBpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShjb25zdCBVQ2hhciogc3Ry
LCBpbnQgcG9zLCBpbnQgbGVuLCBpbnQmIG5leHRCcmVha2FibGUsIGJvb2wgYnJlYWtOQlNQID0g
ZmFsc2UpCi0gICAgewotICAgICAgICBpZiAocG9zID4gbmV4dEJyZWFrYWJsZSkKLSAgICAgICAg
ICAgIG5leHRCcmVha2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24oc3RyLCBwb3MsIGxlbiwg
YnJlYWtOQlNQKTsKLSAgICAgICAgcmV0dXJuIHBvcyA9PSBuZXh0QnJlYWthYmxlOwotICAgIH0K
K2ludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oTGF6eUxpbmVCcmVha0l0ZXJhdG9yJiwgaW50IHBv
cywgYm9vbCBicmVha05CU1AgPSBmYWxzZSk7CisKK2lubGluZSBib29sIGlzQnJlYWthYmxlKExh
enlMaW5lQnJlYWtJdGVyYXRvciYgbGF6eUJyZWFrSXRlcmF0b3IsIGludCBwb3MsIGludCYgbmV4
dEJyZWFrYWJsZSwgYm9vbCBicmVha05CU1AgPSBmYWxzZSkKK3sKKyAgICBpZiAocG9zID4gbmV4
dEJyZWFrYWJsZSkKKyAgICAgICAgbmV4dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlv
bihsYXp5QnJlYWtJdGVyYXRvciwgcG9zLCBicmVha05CU1ApOworICAgIHJldHVybiBwb3MgPT0g
bmV4dEJyZWFrYWJsZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCg==
</data>
<flag name="review"
          id="75419"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83590</attachid>
            <date>2011-02-23 17:32:12 -0800</date>
            <delta_ts>2011-02-23 17:40:13 -0800</delta_ts>
            <desc>Final, final changes.</desc>
            <filename>ubrk_setText-final-final.txt</filename>
            <type>text/plain</type>
            <size>17030</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NTA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDItMjMgIE5lZCBIb2xi
cm9vayAgPG5ob2xicm9va0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWluaW1pemUgY2FsbHMgdG8gdWJya19zZXRUZXh0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0OTEyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS85MDMyNzc0PgorCisJCUF2b2lkIGNhbGxpbmcgdWJya19zZXRU
ZXh0KCkgb25jZSBwZXIgY2FsbCB0byBpc0JyZWFrYWJsZSgpIGJ5IHVzaW5nIGEgTGF6eUxpbmVC
cmVha0l0ZXJhdG9yLCB3aGljaCBkZWZlcnMKKwkJYnJlYWsgaXRlcmF0b3IgY3JlYXRpb24gdW50
aWwgbmVlZGVkLiBUaGlzIHJlcXVpcmVzIHJlcGxhY2luZyB0aGUgZ2xvYmFsIGxpbmUgYnJlYWsg
aXRlcmF0b3IgcHJpbWl0aXZlIHdpdGggYQorCQl2ZXJzaW9uIHRoYXQgY2FuIGJlIG5lc3RlZCwg
c2luY2UgaW4gc29tZSBjYXNlcyB0d28gaXRlcmF0b3JzIG1heSBuZWVkIHRvIGJlIG91dHN0YW5k
aW5nLiBJbiBwYXJ0aWN1bGFyLAorCQlsYXlvdXRJbmxpbmVDaGlsZHJlbigpIG1heSBpbmRpcmVj
dGx5IGNhbGwgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBhbmQgZWFjaCBtYXkgbmVl
ZCBhbiBpdGVyYXRvci4KKwkJSW4gYSB0ZXN0IHdpdGggYSBwYXJhZ3JhcGggb2YgSmFwYW5lc2Ug
dGV4dCwgdGhpcyByZWR1Y2VkIHRoZSBudW1iZXIgb2YgdWJya19zZXRUZXh0KCkgY2FsbHMgZnJv
bSAxNjQgdG8gMS4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
aDogQWRkIExhenlMaW5lQnJlYWtJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5l
QnJlYWtJdGVyYXRvcjo6TGF6eUxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6fkxhenlMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAg
IChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OnN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXp5TGluZUJyZWFrSXRlcmF0b3I6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJy
ZWFrSXRlcmF0b3I6OnJlc2V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0
ZXJhdG9ySUNVLmNwcDogUmVwbGFjZSBsaW5lQnJlYWtJdGVyYXRvcigpIHByaW1pdGl2ZSB3aXRo
IGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcigpL3JlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcigpLgor
ICAgICAgICAoV2ViQ29yZTo6YWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OnJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcDogRGl0dG8gVGV4dEJyZWFrSXRlcmF0b3JJQ1Uu
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6YWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxh
eW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hp
bGRyZW4pOiBQYXNzIGEgbWFwcGluZyBvZiBSZW5kZXJUZXh0IHRvIExhenlMaW5lQnJlYWtJdGVy
YXRvciBmcm9tIG9uZSBjYWxsIG9mIGZpbmROZXh0TGluZUJyZWFrKCkgdG8gdGhlIG5leHQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWspOiBVc2Ugc2Fp
ZCBtYXBwaW5nLCByZXNldHRpbmcgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIGZvciBhbnkgbmV3bHkt
ZW5jb3VudGVyZWQgUmVuZGVyVGV4dC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5j
cHA6IFVzZSBhIGxvY2FsIExhenlMaW5lQnJlYWtJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwOiBBY2NlcHQgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIHJh
dGhlciB0aGFuIFRleHRCcmVha0l0ZXJhdG9yLgorICAgICAgICAoV2ViQ29yZTo6bmV4dEJyZWFr
YWJsZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuaDogQWNjZXB0
IExhenlMaW5lQnJlYWtJdGVyYXRvciByYXRoZXIgdGhhbiBUZXh0QnJlYWtJdGVyYXRvci4KKyAg
ICAgICAgKFdlYkNvcmU6OmlzQnJlYWthYmxlKToKKwogMjAxMS0wMi0xNyAgRW5yaWNhIENhc3Vj
Y2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRl
cmF0b3IuaAkocmV2aXNpb24gNzkzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRCcmVha0l0ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgVGV4dEJyZWFrSXRlcmF0b3I7CiAKLSAgICAv
LyBOb3RlOiBUaGUgcmV0dXJuZWQgaXRlcmF0b3IgaXMgZ29vZCBvbmx5IHVudGlsIHlvdSBnZXQg
YW5vdGhlciBpdGVyYXRvci4KKyAgICAvLyBOb3RlOiBUaGUgcmV0dXJuZWQgaXRlcmF0b3IgaXMg
Z29vZCBvbmx5IHVudGlsIHlvdSBnZXQgYW5vdGhlciBpdGVyYXRvciwgd2l0aCB0aGUgZXhjZXB0
aW9uIG9mIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvci4KIAogICAgIC8vIEl0ZXJhdGVzIG92ZXIg
ImV4dGVuZGVkIGdyYXBoZW1lIGNsdXN0ZXJzIiwgYXMgZGVmaW5lZCBpbiBVQVggIzI5LgogICAg
IC8vIE5vdGUgdGhhdCBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbnMgbWF5IGJlIGxlc3Mgc29waGlz
dGljYXRlZCAtIGUuZy4gSUNVIHByaW9yIHRvCkBAIC00Myw3ICs0Myw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBUZXh0QnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihj
b25zdCBVQ2hhciosIGludCBsZW5ndGgpOwogCiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRC
cmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7Ci0gICAgVGV4dEJyZWFrSXRl
cmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CisgICAg
VGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhcios
IGludCBsZW5ndGgpOworICAgIHZvaWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVh
a0l0ZXJhdG9yKik7CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRv
cihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwogCiAgICAgaW50IHRleHRCcmVha0ZpcnN0KFRl
eHRCcmVha0l0ZXJhdG9yKik7CkBAIC01Nyw2ICs1OCw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBjb25zdCBpbnQgVGV4dEJyZWFrRG9uZSA9IC0xOwogCitjbGFzcyBMYXp5TGluZUJy
ZWFrSXRlcmF0b3IgeworcHVibGljOgorICAgIExhenlMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBV
Q2hhciogc3RyaW5nID0gMCwgaW50IGxlbmd0aCA9IDApCisgICAgICAgIDogbV9zdHJpbmcoc3Ry
aW5nKQorICAgICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICAgICAgLCBtX2l0ZXJhdG9yKDAp
CisgICAgeworICAgIH0KKworICAgIH5MYXp5TGluZUJyZWFrSXRlcmF0b3IoKQorICAgIHsKKyAg
ICAgICAgaWYgKG1faXRlcmF0b3IpCisgICAgICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0
b3IobV9pdGVyYXRvcik7CisgICAgfQorCisgICAgY29uc3QgVUNoYXIqIHN0cmluZygpIGNvbnN0
IHsgcmV0dXJuIG1fc3RyaW5nOyB9CisgICAgaW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGVuZ3RoOyB9CisKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogZ2V0KCkKKyAgICB7CisgICAgICAg
IGlmICghbV9pdGVyYXRvcikKKyAgICAgICAgICAgIG1faXRlcmF0b3IgPSBhY3F1aXJlTGluZUJy
ZWFrSXRlcmF0b3IobV9zdHJpbmcsIG1fbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIG1faXRlcmF0
b3I7CisgICAgfQorCisgICAgdm9pZCByZXNldChjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVu
Z3RoKQorICAgIHsKKyAgICAgICAgaWYgKG1faXRlcmF0b3IpCisgICAgICAgICAgICByZWxlYXNl
TGluZUJyZWFrSXRlcmF0b3IobV9pdGVyYXRvcik7CisKKyAgICAgICAgbV9zdHJpbmcgPSBzdHJp
bmc7CisgICAgICAgIG1fbGVuZ3RoID0gbGVuZ3RoOworICAgICAgICBtX2l0ZXJhdG9yID0gMDsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgVUNoYXIqIG1fc3RyaW5nOworICAgIGludCBt
X2xlbmd0aDsKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogbV9pdGVyYXRvcjsKK307CisKIH0KIAog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJh
dG9ySUNVLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkocmV2aXNpb24gNzkzNjcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzZXRVcEl0ZXJhdG9yKGJvb2wmIGNy
ZWF0ZWRJdGVyYXRvciwgVGV4dEJyZWFrSXRlcmF0b3IqJiBpdGVyYXRvciwKQEAgLTY4LDEyICs3
MCwzNCBAQCBUZXh0QnJlYWtJdGVyYXRvciogd29yZEJyZWFrSXRlcmF0b3IoY29uCiAgICAgICAg
IHN0YXRpY1dvcmRCcmVha0l0ZXJhdG9yLCBVQlJLX1dPUkQsIHN0cmluZywgbGVuZ3RoKTsKIH0K
IAotVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJp
bmcsIGludCBsZW5ndGgpCitzdGF0aWMgYm9vbCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBm
YWxzZTsKK3N0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7
CisKK1RleHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNo
YXIqIHN0cmluZywgaW50IGxlbmd0aCkKK3sKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJy
ZWFrSXRlcmF0b3IgPSAwOworICAgIGlmICghY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yIHx8IHN0
YXRpY0xpbmVCcmVha0l0ZXJhdG9yKSB7CisgICAgICAgIHNldFVwSXRlcmF0b3IoY3JlYXRlZExp
bmVCcmVha0l0ZXJhdG9yLCBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJp
bmcsIGxlbmd0aCk7CisgICAgICAgIHN3YXAoc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIGxpbmVC
cmVha0l0ZXJhdG9yKTsKKyAgICB9CisKKyAgICBpZiAoIWxpbmVCcmVha0l0ZXJhdG9yKSB7Cisg
ICAgICAgIGJvb2wgY3JlYXRlZE5ld0xpbmVCcmVha0l0ZXJhdG9yID0gZmFsc2U7CisgICAgICAg
IHNldFVwSXRlcmF0b3IoY3JlYXRlZE5ld0xpbmVCcmVha0l0ZXJhdG9yLCBsaW5lQnJlYWtJdGVy
YXRvciwgVUJSS19MSU5FLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgfQorCisgICAgcmV0dXJuIGxp
bmVCcmVha0l0ZXJhdG9yOworfQorCit2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0
QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiB7Ci0gICAgc3RhdGljIGJvb2wgY3JlYXRlZExpbmVC
cmVha0l0ZXJhdG9yID0gZmFsc2U7Ci0gICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0
aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICByZXR1cm4gc2V0VXBJdGVyYXRvcihjcmVhdGVkTGlu
ZUJyZWFrSXRlcmF0b3IsCi0gICAgICAgIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBVQlJLX0xJ
TkUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICBBU1NFUlQoY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9y
KTsKKyAgICBBU1NFUlQoaXRlcmF0b3IpOworCisgICAgaWYgKCFzdGF0aWNMaW5lQnJlYWtJdGVy
YXRvcikKKyAgICAgICAgc3RhdGljTGluZUJyZWFrSXRlcmF0b3IgPSBpdGVyYXRvcjsKKyAgICBl
bHNlCisgICAgICAgIHVicmtfY2xvc2UocmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+
KGl0ZXJhdG9yKSk7CiB9CiAKIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0
b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAko
cmV2aXNpb24gNzkzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRC
cmVha0l0ZXJhdG9yUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAjZGVm
aW5lIERFQlVHIGlmICgxKSB7fSBlbHNlIHFEZWJ1ZwogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFj
ZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFVTRShRVF9JQ1VfVEVYVF9CUkVB
S0lORykKQEAgLTg5LDEwICs5MSwzMCBAQCBjb25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9j
YWxlSUQoKQogICAgICAgICByZXR1cm4gY2hhcmFjdGVyQnJlYWtJdGVyYXRvcihzdHJpbmcsIGxl
bmd0aCk7CiAgICAgfQogCi0gICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9y
KGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCisgICAgc3RhdGljIFRleHRCcmVha0l0
ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKKworICAgIFRleHRCcmVha0l0ZXJhdG9y
KiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0
aCkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciBzdGF0aWNMaW5lQnJl
YWtJdGVyYXRvcjsKLSAgICAgICAgcmV0dXJuIHNldFVwSXRlcmF0b3Ioc3RhdGljTGluZUJyZWFr
SXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5kZXI6OkxpbmUsIHN0cmluZywgbGVuZ3RoKTsKKyAg
ICAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yID0gMDsKKyAgICAgICAg
aWYgKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yKSB7CisgICAgICAgICAgICBzZXRVcEl0ZXJhdG9y
KCpzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgUVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3Ry
aW5nLCBsZW5ndGgpOworICAgICAgICAgICAgc3dhcChzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwg
bGluZUJyZWFrSXRlcmF0b3IpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFsaW5lQnJlYWtJ
dGVyYXRvciAmJiBzdHJpbmcgJiYgbGVuZ3RoKQorICAgICAgICAgICAgbGluZUJyZWFrSXRlcmF0
b3IgPSBuZXcgVGV4dEJyZWFrSXRlcmF0b3IoUVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3Ry
aW5nLCBsZW5ndGgpOworCisgICAgICAgIHJldHVybiBsaW5lQnJlYWtJdGVyYXRvcjsKKyAgICB9
CisKKyAgICB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciog
aXRlcmF0b3IpCisgICAgeworICAgICAgICBBU1NFUlQoaXRlcmF0b3IpOworCisgICAgICAgIGlm
ICghc3RhdGljTGluZUJyZWFrSXRlcmF0b3IpCisgICAgICAgICAgICBzdGF0aWNMaW5lQnJlYWtJ
dGVyYXRvciA9IGl0ZXJhdG9yOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkZWxldGUgaXRl
cmF0b3I7CiAgICAgfQogCiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVy
YXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHJldmlzaW9uIDc5MzY3KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29sdW1uSW5mbzsKIGNsYXNzIElubGluZUl0
ZXJhdG9yOwogY2xhc3MgTGF5b3V0U3RhdGVNYWludGFpbmVyOworY2xhc3MgTGF6eUxpbmVCcmVh
a0l0ZXJhdG9yOwogY2xhc3MgUmVuZGVySW5saW5lOwogCiBzdHJ1Y3QgQmlkaVJ1bjsKQEAgLTQ4
Niw3ICs0ODcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2tpcFRyYWlsaW5nV2hpdGVzcGFjZShJ
bmxpbmVJdGVyYXRvciYsIGJvb2wgaXNMaW5lRW1wdHksIGJvb2wgcHJldmlvdXNMaW5lQnJva2VD
bGVhbmx5KTsKICAgICBpbnQgc2tpcExlYWRpbmdXaGl0ZXNwYWNlKElubGluZUJpZGlSZXNvbHZl
ciYsIGJvb2wgZmlyc3RMaW5lLCBib29sIGlzTGluZUVtcHR5LCBib29sIHByZXZpb3VzTGluZUJy
b2tlQ2xlYW5seSwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOwog
ICAgIHZvaWQgZml0QmVsb3dGbG9hdHMoZmxvYXQgd2lkdGhUb0ZpdCwgYm9vbCBmaXJzdExpbmUs
IGZsb2F0JiBhdmFpbGFibGVXaWR0aCk7Ci0gICAgSW5saW5lSXRlcmF0b3IgZmluZE5leHRMaW5l
QnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiwgYm9vbCBmaXJzdExpbmUsIGJvb2wmIGlzTGluZUVt
cHR5LCBib29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIGJvb2wmIGh5cGhlbmF0ZWQsIEVD
bGVhciosIEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKTsKKyAgICB0
eXBlZGVmIHN0ZDo6cGFpcjxSZW5kZXJUZXh0KiwgTGF6eUxpbmVCcmVha0l0ZXJhdG9yPiBMaW5l
QnJlYWtJdGVyYXRvckluZm87CisgICAgSW5saW5lSXRlcmF0b3IgZmluZE5leHRMaW5lQnJlYWso
SW5saW5lQmlkaVJlc29sdmVyJiwgYm9vbCBmaXJzdExpbmUsIGJvb2wmIGlzTGluZUVtcHR5LCBM
aW5lQnJlYWtJdGVyYXRvckluZm8mLCBib29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIGJv
b2wmIGh5cGhlbmF0ZWQsIEVDbGVhciosIEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJl
dmlvdXNMaW5lKTsKICAgICBSb290SW5saW5lQm94KiBjb25zdHJ1Y3RMaW5lKHVuc2lnbmVkIHJ1
bkNvdW50LCBCaWRpUnVuKiBmaXJzdFJ1biwgQmlkaVJ1biogbGFzdFJ1biwgYm9vbCBmaXJzdExp
bmUsIGJvb2wgbGFzdExpbmUsIFJlbmRlck9iamVjdCogZW5kT2JqZWN0KTsKICAgICBJbmxpbmVG
bG93Qm94KiBjcmVhdGVMaW5lQm94ZXMoUmVuZGVyT2JqZWN0KiwgYm9vbCBmaXJzdExpbmUpOwog
ICAgIHZvaWQgY29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGlu
ZUJveCosIGJvb2wgZmlyc3RMaW5lLCBCaWRpUnVuKiBmaXJzdFJ1biwgQmlkaVJ1biogdHJhaWxp
bmdTcGFjZVJ1biwgYm9vbCByZWFjaGVkRW5kLCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250
c01hcCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxh
eW91dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrTGluZUxheW91dC5jcHAJKHJldmlzaW9uIDc5MzY3KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJMaXN0TWFya2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0
b3IuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgiCiAjaW5jbHVkZSAiVHJhaWxpbmdGbG9hdHNSb290
SW5saW5lQm94LmgiCiAjaW5jbHVkZSAiVmVydGljYWxQb3NpdGlvbkNhY2hlLmgiCkBAIC02NjIs
NiArNjYzLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgogICAg
ICAgICBib29sIGlzTGluZUVtcHR5ID0gdHJ1ZTsKICAgICAgICAgYm9vbCBwYWdpbmF0ZWQgPSB2
aWV3KCktPmxheW91dFN0YXRlKCkgJiYgdmlldygpLT5sYXlvdXRTdGF0ZSgpLT5pc1BhZ2luYXRl
ZCgpOwogCisgICAgICAgIExpbmVCcmVha0l0ZXJhdG9ySW5mbyBsaW5lQnJlYWtJdGVyYXRvcklu
Zm87CiAgICAgICAgIFZlcnRpY2FsUG9zaXRpb25DYWNoZSB2ZXJ0aWNhbFBvc2l0aW9uQ2FjaGU7
CiAKICAgICAgICAgd2hpbGUgKCFlbmQuYXRFbmQoKSkgewpAQCAtNjc4LDcgKzY4MCw3IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKGIKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgSW5saW5lSXRlcmF0b3Igb2xkRW5kID0gZW5kOwogICAgICAgICAgICAgRmxvYXRp
bmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUgPSBtX2Zsb2F0aW5nT2JqZWN0cyA/
IG1fZmxvYXRpbmdPYmplY3RzLT5sYXN0KCkgOiAwOwotICAgICAgICAgICAgZW5kID0gZmluZE5l
eHRMaW5lQnJlYWsocmVzb2x2ZXIsIGZpcnN0TGluZSwgaXNMaW5lRW1wdHksIHByZXZpb3VzTGlu
ZUJyb2tlQ2xlYW5seSwgaHlwaGVuYXRlZCwgJmNsZWFyLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNM
aW5lKTsKKyAgICAgICAgICAgIGVuZCA9IGZpbmROZXh0TGluZUJyZWFrKHJlc29sdmVyLCBmaXJz
dExpbmUsIGlzTGluZUVtcHR5LCBsaW5lQnJlYWtJdGVyYXRvckluZm8sIHByZXZpb3VzTGluZUJy
b2tlQ2xlYW5seSwgaHlwaGVuYXRlZCwgJmNsZWFyLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5l
KTsKICAgICAgICAgICAgIGlmIChyZXNvbHZlci5wb3NpdGlvbigpLmF0RW5kKCkpIHsKICAgICAg
ICAgICAgICAgICByZXNvbHZlci5kZWxldGVSdW5zKCk7CiAgICAgICAgICAgICAgICAgY2hlY2tG
b3JGbG9hdHNGcm9tTGFzdExpbmUgPSB0cnVlOwpAQCAtMTQzMiw3ICsxNDM0LDcgQEAgc3RhdGlj
IHZvaWQgdHJ5SHlwaGVuYXRpbmcoUmVuZGVyVGV4dCogdAogICAgIGh5cGhlbmF0ZWQgPSB0cnVl
OwogfQogCi1JbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5s
aW5lQmlkaVJlc29sdmVyJiByZXNvbHZlciwgYm9vbCBmaXJzdExpbmUsICBib29sJiBpc0xpbmVF
bXB0eSwgYm9vbCYgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCAKK0lubGluZUl0ZXJhdG9yIFJl
bmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVy
LCBib29sIGZpcnN0TGluZSwgYm9vbCYgaXNMaW5lRW1wdHksIExpbmVCcmVha0l0ZXJhdG9ySW5m
byYgbGluZUJyZWFrSXRlcmF0b3JJbmZvLCBib29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHks
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wmIGh5
cGhlbmF0ZWQsIEVDbGVhciogY2xlYXIsIEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJl
dmlvdXNMaW5lKQogewogICAgIEFTU0VSVChyZXNvbHZlci5wb3NpdGlvbigpLmJsb2NrID09IHRo
aXMpOwpAQCAtMTcyMyw3ICsxNzI1LDEyIEBAIElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpm
aW5kTmV4dExpbmUKICAgICAgICAgICAgICAgICAgICAgbWlkV29yZEJyZWFrID0gdyArIHdyYXBX
ICsgY2hhcldpZHRoID4gd2lkdGg7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAg
ICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09ICdcbicgfHwgKGN1cnJXUyAhPSBQUkUgJiYgIWF0
U3RhcnQgJiYgaXNCcmVha2FibGUoc3RyLCBwb3MsIHN0cmxlbiwgbmV4dEJyZWFrYWJsZSwgYnJl
YWtOQlNQKSAmJiAoc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5zTm9uZSB8fCAocG9zICYmIHN0
cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkpOworICAgICAgICAgICAgICAgIGlmIChsaW5lQnJl
YWtJdGVyYXRvckluZm8uZmlyc3QgIT0gdCkgeworICAgICAgICAgICAgICAgICAgICBsaW5lQnJl
YWtJdGVyYXRvckluZm8uZmlyc3QgPSB0OworICAgICAgICAgICAgICAgICAgICBsaW5lQnJlYWtJ
dGVyYXRvckluZm8uc2Vjb25kLnJlc2V0KHN0ciwgc3RybGVuKTsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3Vy
cldTICE9IFBSRSAmJiAhYXRTdGFydCAmJiBpc0JyZWFrYWJsZShsaW5lQnJlYWtJdGVyYXRvcklu
Zm8uc2Vjb25kLCBwb3MsIG5leHRCcmVha2FibGUsIGJyZWFrTkJTUCkgJiYgKHN0eWxlLT5oeXBo
ZW5zKCkgIT0gSHlwaGVuc05vbmUgfHwgKHBvcyAmJiBzdHJbcG9zIC0gMV0gIT0gc29mdEh5cGhl
bikpKTsKIAogICAgICAgICAgICAgICAgIGlmIChiZXR3ZWVuV29yZHMgfHwgbWlkV29yZEJyZWFr
KSB7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgc3RvcHBlZElnbm9yaW5nU3BhY2VzID0gZmFs
c2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lv
biA3OTM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzQ4LDYgKzc0OCw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWwKICAgICBmbG9hdCB3b3JkU3BhY2luZyA9IHN0eWxlKCktPndvcmRTcGFj
aW5nKCk7CiAgICAgaW50IGxlbiA9IHRleHRMZW5ndGgoKTsKICAgICBjb25zdCBVQ2hhciogdHh0
ID0gY2hhcmFjdGVycygpOworICAgIExhenlMaW5lQnJlYWtJdGVyYXRvciBicmVha0l0ZXJhdG9y
KHR4dCwgbGVuKTsKICAgICBib29sIG5lZWRzV29yZFNwYWNpbmcgPSBmYWxzZTsKICAgICBib29s
IGlnbm9yaW5nU3BhY2VzID0gZmFsc2U7CiAgICAgYm9vbCBpc1NwYWNlID0gZmFsc2U7CkBAIC04
MDcsNyArODA4LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGhhc0JyZWFr
ID0gYnJlYWtBbGwgfHwgaXNCcmVha2FibGUodHh0LCBpLCBsZW4sIG5leHRCcmVha2FibGUsIGJy
ZWFrTkJTUCk7CisgICAgICAgIGJvb2wgaGFzQnJlYWsgPSBicmVha0FsbCB8fCBpc0JyZWFrYWJs
ZShicmVha0l0ZXJhdG9yLCBpLCBuZXh0QnJlYWthYmxlLCBicmVha05CU1ApOwogICAgICAgICBi
b29sIGJldHdlZW5Xb3JkcyA9IHRydWU7CiAgICAgICAgIGludCBqID0gaTsKICAgICAgICAgd2hp
bGUgKGMgIT0gJ1xuJyAmJiAhaXNTcGFjZUFjY29yZGluZ1RvU3R5bGUoYywgc3R5bGUoKSkgJiYg
YyAhPSAnXHQnICYmIGMgIT0gc29mdEh5cGhlbikgewpAQCAtODE1LDcgKzgxNiw3IEBAIHZvaWQg
UmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWwKICAgICAgICAgICAgIGlmIChqID09
IGxlbikKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGMgPSB0eHRbal07Ci0g
ICAgICAgICAgICBpZiAoaXNCcmVha2FibGUodHh0LCBqLCBsZW4sIG5leHRCcmVha2FibGUsIGJy
ZWFrTkJTUCkpCisgICAgICAgICAgICBpZiAoaXNCcmVha2FibGUoYnJlYWtJdGVyYXRvciwgaiwg
bmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGlmIChicmVha0FsbCkgewogICAgICAgICAgICAgICAgIGJldHdlZW5Xb3JkcyA9IGZh
bHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCShyZXZp
c2lvbiA3OTM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMSArMTU0LDEwIEBAIHN0YXRpYyBpbmxpbmUgVGV4dEJy
ZWFrTG9jYXRvclJlZiBsaW5lQnIKIH0KICNlbmRpZgogCi1pbnQgbmV4dEJyZWFrYWJsZVBvc2l0
aW9uKGNvbnN0IFVDaGFyKiBzdHIsIGludCBwb3MsIGludCBsZW4sIGJvb2wgdHJlYXROb0JyZWFr
U3BhY2VBc0JyZWFrKQoraW50IG5leHRCcmVha2FibGVQb3NpdGlvbihMYXp5TGluZUJyZWFrSXRl
cmF0b3ImIGxhenlCcmVha0l0ZXJhdG9yLCBpbnQgcG9zLCBib29sIHRyZWF0Tm9CcmVha1NwYWNl
QXNCcmVhaykKIHsKLSNpZiAhUExBVEZPUk0oTUFDKSB8fCAhZGVmaW5lZChCVUlMRElOR19PTl9U
SUdFUikKLSAgICBUZXh0QnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvciA9IDA7Ci0jZW5kaWYK
KyAgICBjb25zdCBVQ2hhciogc3RyID0gbGF6eUJyZWFrSXRlcmF0b3Iuc3RyaW5nKCk7CisgICAg
aW50IGxlbiA9IGxhenlCcmVha0l0ZXJhdG9yLmxlbmd0aCgpOwogICAgIGludCBuZXh0QnJlYWsg
PSAtMTsKIAogICAgIFVDaGFyIGxhc3RDaCA9IHBvcyA+IDAgPyBzdHJbcG9zIC0gMV0gOiAwOwpA
QCAtMTcxLDggKzE3MCw3IEBAIGludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIq
IHMKICAgICAgICAgaWYgKG5lZWRzTGluZUJyZWFrSXRlcmF0b3IoY2gpIHx8IG5lZWRzTGluZUJy
ZWFrSXRlcmF0b3IobGFzdENoKSkgewogICAgICAgICAgICAgaWYgKG5leHRCcmVhayA8IGkgJiYg
aSkgewogI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQot
ICAgICAgICAgICAgICAgIGlmICghYnJlYWtJdGVyYXRvcikKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yKHN0ciwgbGVuKTsKKyAgICAgICAgICAg
ICAgICBUZXh0QnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvciA9IGxhenlCcmVha0l0ZXJhdG9y
LmdldCgpOwogICAgICAgICAgICAgICAgIGlmIChicmVha0l0ZXJhdG9yKQogICAgICAgICAgICAg
ICAgICAgICBuZXh0QnJlYWsgPSB0ZXh0QnJlYWtGb2xsb3dpbmcoYnJlYWtJdGVyYXRvciwgaSAt
IDEpOwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCShy
ZXZpc2lvbiA3OTM2NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxNCArMjUsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0gICAgaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hhciosIGludCBwb3Ms
IGludCBsZW4sIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpOworY2xhc3MgTGF6eUxpbmVCcmVha0l0
ZXJhdG9yOwogCi0gICAgaW5saW5lIGJvb2wgaXNCcmVha2FibGUoY29uc3QgVUNoYXIqIHN0ciwg
aW50IHBvcywgaW50IGxlbiwgaW50JiBuZXh0QnJlYWthYmxlLCBib29sIGJyZWFrTkJTUCA9IGZh
bHNlKQotICAgIHsKLSAgICAgICAgaWYgKHBvcyA+IG5leHRCcmVha2FibGUpCi0gICAgICAgICAg
ICBuZXh0QnJlYWthYmxlID0gbmV4dEJyZWFrYWJsZVBvc2l0aW9uKHN0ciwgcG9zLCBsZW4sIGJy
ZWFrTkJTUCk7Ci0gICAgICAgIHJldHVybiBwb3MgPT0gbmV4dEJyZWFrYWJsZTsKLSAgICB9Citp
bnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKExhenlMaW5lQnJlYWtJdGVyYXRvciYsIGludCBwb3Ms
IGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpOworCitpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShMYXp5
TGluZUJyZWFrSXRlcmF0b3ImIGxhenlCcmVha0l0ZXJhdG9yLCBpbnQgcG9zLCBpbnQmIG5leHRC
cmVha2FibGUsIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpCit7CisgICAgaWYgKHBvcyA+IG5leHRC
cmVha2FibGUpCisgICAgICAgIG5leHRCcmVha2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24o
bGF6eUJyZWFrSXRlcmF0b3IsIHBvcywgYnJlYWtOQlNQKTsKKyAgICByZXR1cm4gcG9zID09IG5l
eHRCcmVha2FibGU7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAo=
</data>
<flag name="review"
          id="75436"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83591</attachid>
            <date>2011-02-23 17:40:13 -0800</date>
            <delta_ts>2011-02-24 02:47:38 -0800</delta_ts>
            <desc>This had better be it.</desc>
            <filename>ubrk_setText-no-more.txt</filename>
            <type>text/plain</type>
            <size>17060</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NTA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDItMjMgIE5lZCBIb2xi
cm9vayAgPG5ob2xicm9va0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWluaW1pemUgY2FsbHMgdG8gdWJya19zZXRUZXh0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0OTEyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS85MDMyNzc0PgorCisgICAgICAgIEF2b2lkIGNhbGxpbmcgdWJy
a19zZXRUZXh0KCkgb25jZSBwZXIgY2FsbCB0byBpc0JyZWFrYWJsZSgpIGJ5IHVzaW5nIGEgTGF6
eUxpbmVCcmVha0l0ZXJhdG9yLCB3aGljaCBkZWZlcnMKKyAgICAgICAgYnJlYWsgaXRlcmF0b3Ig
Y3JlYXRpb24gdW50aWwgbmVlZGVkLiBUaGlzIHJlcXVpcmVzIHJlcGxhY2luZyB0aGUgZ2xvYmFs
IGxpbmUgYnJlYWsgaXRlcmF0b3IgcHJpbWl0aXZlIHdpdGggYQorICAgICAgICB2ZXJzaW9uIHRo
YXQgY2FuIGJlIG5lc3RlZCwgc2luY2UgaW4gc29tZSBjYXNlcyB0d28gaXRlcmF0b3JzIG1heSBu
ZWVkIHRvIGJlIG91dHN0YW5kaW5nLiBJbiBwYXJ0aWN1bGFyLAorICAgICAgICBsYXlvdXRJbmxp
bmVDaGlsZHJlbigpIG1heSBpbmRpcmVjdGx5IGNhbGwgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoKSBhbmQgZWFjaCBtYXkgbmVlZCBhbiBpdGVyYXRvci4KKyAgICAgICAgSW4gYSB0ZXN0
IHdpdGggYSBwYXJhZ3JhcGggb2YgSmFwYW5lc2UgdGV4dCwgdGhpcyByZWR1Y2VkIHRoZSBudW1i
ZXIgb2YgdWJya19zZXRUZXh0KCkgY2FsbHMgZnJvbSAxNjQgdG8gMS4KKworICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDogQWRkIExhenlMaW5lQnJlYWtJdGVyYXRv
ci4KKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6TGF6eUxpbmVCcmVh
a0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6fkxh
enlMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRl
cmF0b3I6OnN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6
Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OmdldCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OnJlc2V0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcDogUmVwbGFjZSBsaW5l
QnJlYWtJdGVyYXRvcigpIHByaW1pdGl2ZSB3aXRoIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcigp
L3JlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcigpLgorICAgICAgICAoV2ViQ29yZTo6YWNxdWlyZUxp
bmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJlYWtJdGVy
YXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNw
cDogRGl0dG8gVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6YWNx
dWlyZUxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJl
YWtJdGVyYXRvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4pOiBQYXNzIGEgbWFwcGluZyBvZiBS
ZW5kZXJUZXh0IHRvIExhenlMaW5lQnJlYWtJdGVyYXRvciBmcm9tIG9uZSBjYWxsIG9mIGZpbmRO
ZXh0TGluZUJyZWFrKCkgdG8gdGhlIG5leHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6ZmluZE5leHRMaW5lQnJlYWspOiBVc2Ugc2FpZCBtYXBwaW5nLCByZXNldHRpbmcgTGF6eUxp
bmVCcmVha0l0ZXJhdG9yIGZvciBhbnkgbmV3bHktZW5jb3VudGVyZWQgUmVuZGVyVGV4dC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6IFVzZSBhIGxvY2FsIExhenlMaW5lQnJl
YWtJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwOiBB
Y2NlcHQgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIHJhdGhlciB0aGFuIFRleHRCcmVha0l0ZXJhdG9y
LgorICAgICAgICAoV2ViQ29yZTo6bmV4dEJyZWFrYWJsZVBvc2l0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvYnJlYWtfbGluZXMuaDogQWNjZXB0IExhenlMaW5lQnJlYWtJdGVyYXRvciByYXRo
ZXIgdGhhbiBUZXh0QnJlYWtJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OmlzQnJlYWthYmxl
KToKKwogMjAxMS0wMi0xNyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAkocmV2aXNpb24gNzkzNjcpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xh
c3MgVGV4dEJyZWFrSXRlcmF0b3I7CiAKLSAgICAvLyBOb3RlOiBUaGUgcmV0dXJuZWQgaXRlcmF0
b3IgaXMgZ29vZCBvbmx5IHVudGlsIHlvdSBnZXQgYW5vdGhlciBpdGVyYXRvci4KKyAgICAvLyBO
b3RlOiBUaGUgcmV0dXJuZWQgaXRlcmF0b3IgaXMgZ29vZCBvbmx5IHVudGlsIHlvdSBnZXQgYW5v
dGhlciBpdGVyYXRvciwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIGFjcXVpcmVMaW5lQnJlYWtJdGVy
YXRvci4KIAogICAgIC8vIEl0ZXJhdGVzIG92ZXIgImV4dGVuZGVkIGdyYXBoZW1lIGNsdXN0ZXJz
IiwgYXMgZGVmaW5lZCBpbiBVQVggIzI5LgogICAgIC8vIE5vdGUgdGhhdCBwbGF0Zm9ybSBpbXBs
ZW1lbnRhdGlvbnMgbWF5IGJlIGxlc3Mgc29waGlzdGljYXRlZCAtIGUuZy4gSUNVIHByaW9yIHRv
CkBAIC00Myw3ICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBUZXh0QnJlYWtJdGVy
YXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwog
CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwg
aW50IGxlbmd0aCk7Ci0gICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNv
bnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVM
aW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOworICAgIHZvaWQgcmVs
ZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKik7CiAgICAgVGV4dEJyZWFr
SXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgp
OwogCiAgICAgaW50IHRleHRCcmVha0ZpcnN0KFRleHRCcmVha0l0ZXJhdG9yKik7CkBAIC01Nyw2
ICs1OCw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjb25zdCBpbnQgVGV4dEJyZWFr
RG9uZSA9IC0xOwogCitjbGFzcyBMYXp5TGluZUJyZWFrSXRlcmF0b3IgeworcHVibGljOgorICAg
IExhenlMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nID0gMCwgaW50IGxlbmd0
aCA9IDApCisgICAgICAgIDogbV9zdHJpbmcoc3RyaW5nKQorICAgICAgICAsIG1fbGVuZ3RoKGxl
bmd0aCkKKyAgICAgICAgLCBtX2l0ZXJhdG9yKDApCisgICAgeworICAgIH0KKworICAgIH5MYXp5
TGluZUJyZWFrSXRlcmF0b3IoKQorICAgIHsKKyAgICAgICAgaWYgKG1faXRlcmF0b3IpCisgICAg
ICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IobV9pdGVyYXRvcik7CisgICAgfQorCisg
ICAgY29uc3QgVUNoYXIqIHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nOyB9CisgICAg
aW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKKyAgICBUZXh0QnJlYWtJ
dGVyYXRvciogZ2V0KCkKKyAgICB7CisgICAgICAgIGlmICghbV9pdGVyYXRvcikKKyAgICAgICAg
ICAgIG1faXRlcmF0b3IgPSBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IobV9zdHJpbmcsIG1fbGVu
Z3RoKTsKKyAgICAgICAgcmV0dXJuIG1faXRlcmF0b3I7CisgICAgfQorCisgICAgdm9pZCByZXNl
dChjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgaWYgKG1f
aXRlcmF0b3IpCisgICAgICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IobV9pdGVyYXRv
cik7CisKKyAgICAgICAgbV9zdHJpbmcgPSBzdHJpbmc7CisgICAgICAgIG1fbGVuZ3RoID0gbGVu
Z3RoOworICAgICAgICBtX2l0ZXJhdG9yID0gMDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29u
c3QgVUNoYXIqIG1fc3RyaW5nOworICAgIGludCBtX2xlbmd0aDsKKyAgICBUZXh0QnJlYWtJdGVy
YXRvciogbV9pdGVyYXRvcjsKK307CisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkocmV2
aXNpb24gNzkzNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0
ZXJhdG9ySUNVLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUg
PHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKK3VzaW5nIG5h
bWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFRleHRCcmVha0l0
ZXJhdG9yKiBzZXRVcEl0ZXJhdG9yKGJvb2wmIGNyZWF0ZWRJdGVyYXRvciwgVGV4dEJyZWFrSXRl
cmF0b3IqJiBpdGVyYXRvciwKQEAgLTY4LDEyICs3MCwzNCBAQCBUZXh0QnJlYWtJdGVyYXRvciog
d29yZEJyZWFrSXRlcmF0b3IoY29uCiAgICAgICAgIHN0YXRpY1dvcmRCcmVha0l0ZXJhdG9yLCBV
QlJLX1dPUkQsIHN0cmluZywgbGVuZ3RoKTsKIH0KIAotVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVC
cmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCitzdGF0aWMgYm9v
bCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKK3N0YXRpYyBUZXh0QnJlYWtJdGVy
YXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7CisKK1RleHRCcmVha0l0ZXJhdG9yKiBhY3F1
aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKK3sK
KyAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IgPSAwOworICAgIGlmICgh
Y3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yIHx8IHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yKSB7Cisg
ICAgICAgIHNldFVwSXRlcmF0b3IoY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yLCBzdGF0aWNMaW5l
QnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgICAgIHN3YXAo
c3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIGxpbmVCcmVha0l0ZXJhdG9yKTsKKyAgICB9CisKKyAg
ICBpZiAoIWxpbmVCcmVha0l0ZXJhdG9yKSB7CisgICAgICAgIGJvb2wgY3JlYXRlZE5ld0xpbmVC
cmVha0l0ZXJhdG9yID0gZmFsc2U7CisgICAgICAgIHNldFVwSXRlcmF0b3IoY3JlYXRlZE5ld0xp
bmVCcmVha0l0ZXJhdG9yLCBsaW5lQnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJpbmcsIGxl
bmd0aCk7CisgICAgfQorCisgICAgcmV0dXJuIGxpbmVCcmVha0l0ZXJhdG9yOworfQorCit2b2lk
IHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiB7
Ci0gICAgc3RhdGljIGJvb2wgY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yID0gZmFsc2U7Ci0gICAg
c3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICBy
ZXR1cm4gc2V0VXBJdGVyYXRvcihjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IsCi0gICAgICAgIHN0
YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBVQlJLX0xJTkUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICBB
U1NFUlQoY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yKTsKKyAgICBBU1NFUlQoaXRlcmF0b3IpOwor
CisgICAgaWYgKCFzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcikKKyAgICAgICAgc3RhdGljTGluZUJy
ZWFrSXRlcmF0b3IgPSBpdGVyYXRvcjsKKyAgICBlbHNlCisgICAgICAgIHVicmtfY2xvc2UocmVp
bnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKSk7CiB9CiAKIFRleHRCcmVh
a0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50
IGxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFr
SXRlcmF0b3JRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAkocmV2aXNpb24gNzkzNjcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAjZGVmaW5lIERFQlVHIGlmICgxKSB7fSBlbHNlIHFE
ZWJ1ZwogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogI2lmIFVTRShRVF9JQ1VfVEVYVF9CUkVBS0lORykKQEAgLTg5LDEwICs5MSwzMCBAQCBj
b25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQogICAgICAgICByZXR1cm4gY2hh
cmFjdGVyQnJlYWtJdGVyYXRvcihzdHJpbmcsIGxlbmd0aCk7CiAgICAgfQogCi0gICAgVGV4dEJy
ZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBs
ZW5ndGgpCisgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVy
YXRvcjsKKworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3Io
Y29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBU
ZXh0QnJlYWtJdGVyYXRvciBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICAgICAgcmV0dXJu
IHNldFVwSXRlcmF0b3Ioc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5k
ZXI6OkxpbmUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxp
bmVCcmVha0l0ZXJhdG9yID0gMDsKKyAgICAgICAgaWYgKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9y
KSB7CisgICAgICAgICAgICBzZXRVcEl0ZXJhdG9yKCpzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwg
UVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3RyaW5nLCBsZW5ndGgpOworICAgICAgICAgICAg
c3dhcChzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgbGluZUJyZWFrSXRlcmF0b3IpOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKCFsaW5lQnJlYWtJdGVyYXRvciAmJiBzdHJpbmcgJiYgbGVuZ3Ro
KQorICAgICAgICAgICAgbGluZUJyZWFrSXRlcmF0b3IgPSBuZXcgVGV4dEJyZWFrSXRlcmF0b3Io
UVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3RyaW5nLCBsZW5ndGgpOworCisgICAgICAgIHJl
dHVybiBsaW5lQnJlYWtJdGVyYXRvcjsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2VMaW5lQnJl
YWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCisgICAgeworICAgICAgICBB
U1NFUlQoaXRlcmF0b3IpOworCisgICAgICAgIGlmICghc3RhdGljTGluZUJyZWFrSXRlcmF0b3Ip
CisgICAgICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciA9IGl0ZXJhdG9yOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBkZWxldGUgaXRlcmF0b3I7CiAgICAgfQogCiAgICAgVGV4dEJy
ZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBp
bnQgbGVuZ3RoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHJl
dmlzaW9uIDc5MzY3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgQ29sdW1uSW5mbzsKIGNsYXNzIElubGluZUl0ZXJhdG9yOwogY2xhc3MgTGF5b3V0U3RhdGVN
YWludGFpbmVyOworY2xhc3MgTGF6eUxpbmVCcmVha0l0ZXJhdG9yOwogY2xhc3MgUmVuZGVySW5s
aW5lOwogCiBzdHJ1Y3QgQmlkaVJ1bjsKQEAgLTQ4Niw3ICs0ODcsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2tpcFRyYWlsaW5nV2hpdGVzcGFjZShJbmxpbmVJdGVyYXRvciYsIGJvb2wgaXNMaW5l
RW1wdHksIGJvb2wgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5KTsKICAgICBpbnQgc2tpcExlYWRp
bmdXaGl0ZXNwYWNlKElubGluZUJpZGlSZXNvbHZlciYsIGJvb2wgZmlyc3RMaW5lLCBib29sIGlz
TGluZUVtcHR5LCBib29sIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgRmxvYXRpbmdPYmplY3Qq
IGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOwogICAgIHZvaWQgZml0QmVsb3dGbG9hdHMoZmxv
YXQgd2lkdGhUb0ZpdCwgYm9vbCBmaXJzdExpbmUsIGZsb2F0JiBhdmFpbGFibGVXaWR0aCk7Ci0g
ICAgSW5saW5lSXRlcmF0b3IgZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiwg
Ym9vbCBmaXJzdExpbmUsIGJvb2wmIGlzTGluZUVtcHR5LCBib29sJiBwcmV2aW91c0xpbmVCcm9r
ZUNsZWFubHksIGJvb2wmIGh5cGhlbmF0ZWQsIEVDbGVhciosIEZsb2F0aW5nT2JqZWN0KiBsYXN0
RmxvYXRGcm9tUHJldmlvdXNMaW5lKTsKKyAgICB0eXBlZGVmIHN0ZDo6cGFpcjxSZW5kZXJUZXh0
KiwgTGF6eUxpbmVCcmVha0l0ZXJhdG9yPiBMaW5lQnJlYWtJdGVyYXRvckluZm87CisgICAgSW5s
aW5lSXRlcmF0b3IgZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiwgYm9vbCBm
aXJzdExpbmUsIGJvb2wmIGlzTGluZUVtcHR5LCBMaW5lQnJlYWtJdGVyYXRvckluZm8mLCBib29s
JiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIGJvb2wmIGh5cGhlbmF0ZWQsIEVDbGVhciosIEZs
b2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKTsKICAgICBSb290SW5saW5l
Qm94KiBjb25zdHJ1Y3RMaW5lKHVuc2lnbmVkIHJ1bkNvdW50LCBCaWRpUnVuKiBmaXJzdFJ1biwg
QmlkaVJ1biogbGFzdFJ1biwgYm9vbCBmaXJzdExpbmUsIGJvb2wgbGFzdExpbmUsIFJlbmRlck9i
amVjdCogZW5kT2JqZWN0KTsKICAgICBJbmxpbmVGbG93Qm94KiBjcmVhdGVMaW5lQm94ZXMoUmVu
ZGVyT2JqZWN0KiwgYm9vbCBmaXJzdExpbmUpOwogICAgIHZvaWQgY29tcHV0ZUlubGluZURpcmVj
dGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJveCosIGJvb2wgZmlyc3RMaW5lLCBCaWRp
UnVuKiBmaXJzdFJ1biwgQmlkaVJ1biogdHJhaWxpbmdTcGFjZVJ1biwgYm9vbCByZWFjaGVkRW5k
LCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHJldmlzaW9u
IDc5MzY3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJM
aXN0TWFya2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgi
CiAjaW5jbHVkZSAiVHJhaWxpbmdGbG9hdHNSb290SW5saW5lQm94LmgiCiAjaW5jbHVkZSAiVmVy
dGljYWxQb3NpdGlvbkNhY2hlLmgiCkBAIC02NjIsNiArNjYzLDcgQEAgdm9pZCBSZW5kZXJCbG9j
azo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgogICAgICAgICBib29sIGlzTGluZUVtcHR5ID0gdHJ1
ZTsKICAgICAgICAgYm9vbCBwYWdpbmF0ZWQgPSB2aWV3KCktPmxheW91dFN0YXRlKCkgJiYgdmll
dygpLT5sYXlvdXRTdGF0ZSgpLT5pc1BhZ2luYXRlZCgpOwogCisgICAgICAgIExpbmVCcmVha0l0
ZXJhdG9ySW5mbyBsaW5lQnJlYWtJdGVyYXRvckluZm87CiAgICAgICAgIFZlcnRpY2FsUG9zaXRp
b25DYWNoZSB2ZXJ0aWNhbFBvc2l0aW9uQ2FjaGU7CiAKICAgICAgICAgd2hpbGUgKCFlbmQuYXRF
bmQoKSkgewpAQCAtNjc4LDcgKzY4MCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGlu
ZUNoaWxkcmVuKGIKICAgICAgICAgICAgIAogICAgICAgICAgICAgSW5saW5lSXRlcmF0b3Igb2xk
RW5kID0gZW5kOwogICAgICAgICAgICAgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2
aW91c0xpbmUgPSBtX2Zsb2F0aW5nT2JqZWN0cyA/IG1fZmxvYXRpbmdPYmplY3RzLT5sYXN0KCkg
OiAwOwotICAgICAgICAgICAgZW5kID0gZmluZE5leHRMaW5lQnJlYWsocmVzb2x2ZXIsIGZpcnN0
TGluZSwgaXNMaW5lRW1wdHksIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgaHlwaGVuYXRlZCwg
JmNsZWFyLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKTsKKyAgICAgICAgICAgIGVuZCA9IGZp
bmROZXh0TGluZUJyZWFrKHJlc29sdmVyLCBmaXJzdExpbmUsIGlzTGluZUVtcHR5LCBsaW5lQnJl
YWtJdGVyYXRvckluZm8sIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgaHlwaGVuYXRlZCwgJmNs
ZWFyLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKTsKICAgICAgICAgICAgIGlmIChyZXNvbHZl
ci5wb3NpdGlvbigpLmF0RW5kKCkpIHsKICAgICAgICAgICAgICAgICByZXNvbHZlci5kZWxldGVS
dW5zKCk7CiAgICAgICAgICAgICAgICAgY2hlY2tGb3JGbG9hdHNGcm9tTGFzdExpbmUgPSB0cnVl
OwpAQCAtMTQzMiw3ICsxNDM0LDcgQEAgc3RhdGljIHZvaWQgdHJ5SHlwaGVuYXRpbmcoUmVuZGVy
VGV4dCogdAogICAgIGh5cGhlbmF0ZWQgPSB0cnVlOwogfQogCi1JbmxpbmVJdGVyYXRvciBSZW5k
ZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNvbHZlciwg
Ym9vbCBmaXJzdExpbmUsICBib29sJiBpc0xpbmVFbXB0eSwgYm9vbCYgcHJldmlvdXNMaW5lQnJv
a2VDbGVhbmx5LCAKK0lubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVh
ayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sIGZpcnN0TGluZSwgYm9vbCYgaXNM
aW5lRW1wdHksIExpbmVCcmVha0l0ZXJhdG9ySW5mbyYgbGluZUJyZWFrSXRlcmF0b3JJbmZvLCBi
b29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wmIGh5cGhlbmF0ZWQsIEVDbGVhciogY2xlYXIsIEZs
b2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKQogewogICAgIEFTU0VSVChy
ZXNvbHZlci5wb3NpdGlvbigpLmJsb2NrID09IHRoaXMpOwpAQCAtMTcyMyw3ICsxNzI1LDEyIEBA
IElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmUKICAgICAgICAgICAgICAg
ICAgICAgbWlkV29yZEJyZWFrID0gdyArIHdyYXBXICsgY2hhcldpZHRoID4gd2lkdGg7CiAgICAg
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09
ICdcbicgfHwgKGN1cnJXUyAhPSBQUkUgJiYgIWF0U3RhcnQgJiYgaXNCcmVha2FibGUoc3RyLCBw
b3MsIHN0cmxlbiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSAmJiAoc3R5bGUtPmh5cGhlbnMo
KSAhPSBIeXBoZW5zTm9uZSB8fCAocG9zICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkp
OworICAgICAgICAgICAgICAgIGlmIChsaW5lQnJlYWtJdGVyYXRvckluZm8uZmlyc3QgIT0gdCkg
eworICAgICAgICAgICAgICAgICAgICBsaW5lQnJlYWtJdGVyYXRvckluZm8uZmlyc3QgPSB0Owor
ICAgICAgICAgICAgICAgICAgICBsaW5lQnJlYWtJdGVyYXRvckluZm8uc2Vjb25kLnJlc2V0KHN0
ciwgc3RybGVuKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBib29sIGJl
dHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldTICE9IFBSRSAmJiAhYXRTdGFydCAmJiBp
c0JyZWFrYWJsZShsaW5lQnJlYWtJdGVyYXRvckluZm8uc2Vjb25kLCBwb3MsIG5leHRCcmVha2Fi
bGUsIGJyZWFrTkJTUCkgJiYgKHN0eWxlLT5oeXBoZW5zKCkgIT0gSHlwaGVuc05vbmUgfHwgKHBv
cyAmJiBzdHJbcG9zIC0gMV0gIT0gc29mdEh5cGhlbikpKTsKIAogICAgICAgICAgICAgICAgIGlm
IChiZXR3ZWVuV29yZHMgfHwgbWlkV29yZEJyZWFrKSB7CiAgICAgICAgICAgICAgICAgICAgIGJv
b2wgc3RvcHBlZElnbm9yaW5nU3BhY2VzID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA3OTM2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQ4LDYgKzc0OCw3
IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWwKICAgICBmbG9hdCB3
b3JkU3BhY2luZyA9IHN0eWxlKCktPndvcmRTcGFjaW5nKCk7CiAgICAgaW50IGxlbiA9IHRleHRM
ZW5ndGgoKTsKICAgICBjb25zdCBVQ2hhciogdHh0ID0gY2hhcmFjdGVycygpOworICAgIExhenlM
aW5lQnJlYWtJdGVyYXRvciBicmVha0l0ZXJhdG9yKHR4dCwgbGVuKTsKICAgICBib29sIG5lZWRz
V29yZFNwYWNpbmcgPSBmYWxzZTsKICAgICBib29sIGlnbm9yaW5nU3BhY2VzID0gZmFsc2U7CiAg
ICAgYm9vbCBpc1NwYWNlID0gZmFsc2U7CkBAIC04MDcsNyArODA4LDcgQEAgdm9pZCBSZW5kZXJU
ZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KIAotICAgICAgICBib29sIGhhc0JyZWFrID0gYnJlYWtBbGwgfHwgaXNCcmVha2FibGUo
dHh0LCBpLCBsZW4sIG5leHRCcmVha2FibGUsIGJyZWFrTkJTUCk7CisgICAgICAgIGJvb2wgaGFz
QnJlYWsgPSBicmVha0FsbCB8fCBpc0JyZWFrYWJsZShicmVha0l0ZXJhdG9yLCBpLCBuZXh0QnJl
YWthYmxlLCBicmVha05CU1ApOwogICAgICAgICBib29sIGJldHdlZW5Xb3JkcyA9IHRydWU7CiAg
ICAgICAgIGludCBqID0gaTsKICAgICAgICAgd2hpbGUgKGMgIT0gJ1xuJyAmJiAhaXNTcGFjZUFj
Y29yZGluZ1RvU3R5bGUoYywgc3R5bGUoKSkgJiYgYyAhPSAnXHQnICYmIGMgIT0gc29mdEh5cGhl
bikgewpAQCAtODE1LDcgKzgxNiw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWwKICAgICAgICAgICAgIGlmIChqID09IGxlbikKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIGMgPSB0eHRbal07Ci0gICAgICAgICAgICBpZiAoaXNCcmVha2FibGUo
dHh0LCBqLCBsZW4sIG5leHRCcmVha2FibGUsIGJyZWFrTkJTUCkpCisgICAgICAgICAgICBpZiAo
aXNCcmVha2FibGUoYnJlYWtJdGVyYXRvciwgaiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSkK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGlmIChicmVha0FsbCkgewogICAg
ICAgICAgICAgICAgIGJldHdlZW5Xb3JkcyA9IGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCShyZXZpc2lvbiA3OTM2NykKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMSAr
MTU0LDEwIEBAIHN0YXRpYyBpbmxpbmUgVGV4dEJyZWFrTG9jYXRvclJlZiBsaW5lQnIKIH0KICNl
bmRpZgogCi1pbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0IFVDaGFyKiBzdHIsIGludCBw
b3MsIGludCBsZW4sIGJvb2wgdHJlYXROb0JyZWFrU3BhY2VBc0JyZWFrKQoraW50IG5leHRCcmVh
a2FibGVQb3NpdGlvbihMYXp5TGluZUJyZWFrSXRlcmF0b3ImIGxhenlCcmVha0l0ZXJhdG9yLCBp
bnQgcG9zLCBib29sIHRyZWF0Tm9CcmVha1NwYWNlQXNCcmVhaykKIHsKLSNpZiAhUExBVEZPUk0o
TUFDKSB8fCAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikKLSAgICBUZXh0QnJlYWtJdGVyYXRv
ciogYnJlYWtJdGVyYXRvciA9IDA7Ci0jZW5kaWYKKyAgICBjb25zdCBVQ2hhciogc3RyID0gbGF6
eUJyZWFrSXRlcmF0b3Iuc3RyaW5nKCk7CisgICAgaW50IGxlbiA9IGxhenlCcmVha0l0ZXJhdG9y
Lmxlbmd0aCgpOwogICAgIGludCBuZXh0QnJlYWsgPSAtMTsKIAogICAgIFVDaGFyIGxhc3RDaCA9
IHBvcyA+IDAgPyBzdHJbcG9zIC0gMV0gOiAwOwpAQCAtMTcxLDggKzE3MCw3IEBAIGludCBuZXh0
QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqIHMKICAgICAgICAgaWYgKG5lZWRzTGluZUJy
ZWFrSXRlcmF0b3IoY2gpIHx8IG5lZWRzTGluZUJyZWFrSXRlcmF0b3IobGFzdENoKSkgewogICAg
ICAgICAgICAgaWYgKG5leHRCcmVhayA8IGkgJiYgaSkgewogI2lmICFQTEFURk9STShNQUMpIHx8
ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQotICAgICAgICAgICAgICAgIGlmICghYnJlYWtJ
dGVyYXRvcikKLSAgICAgICAgICAgICAgICAgICAgYnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0
ZXJhdG9yKHN0ciwgbGVuKTsKKyAgICAgICAgICAgICAgICBUZXh0QnJlYWtJdGVyYXRvciogYnJl
YWtJdGVyYXRvciA9IGxhenlCcmVha0l0ZXJhdG9yLmdldCgpOwogICAgICAgICAgICAgICAgIGlm
IChicmVha0l0ZXJhdG9yKQogICAgICAgICAgICAgICAgICAgICBuZXh0QnJlYWsgPSB0ZXh0QnJl
YWtGb2xsb3dpbmcoYnJlYWtJdGVyYXRvciwgaSAtIDEpOwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCShyZXZpc2lvbiA3OTM2NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxNCAr
MjUsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgaW50IG5leHRCcmVha2FibGVQ
b3NpdGlvbihjb25zdCBVQ2hhciosIGludCBwb3MsIGludCBsZW4sIGJvb2wgYnJlYWtOQlNQID0g
ZmFsc2UpOworY2xhc3MgTGF6eUxpbmVCcmVha0l0ZXJhdG9yOwogCi0gICAgaW5saW5lIGJvb2wg
aXNCcmVha2FibGUoY29uc3QgVUNoYXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgaW50JiBuZXh0
QnJlYWthYmxlLCBib29sIGJyZWFrTkJTUCA9IGZhbHNlKQotICAgIHsKLSAgICAgICAgaWYgKHBv
cyA+IG5leHRCcmVha2FibGUpCi0gICAgICAgICAgICBuZXh0QnJlYWthYmxlID0gbmV4dEJyZWFr
YWJsZVBvc2l0aW9uKHN0ciwgcG9zLCBsZW4sIGJyZWFrTkJTUCk7Ci0gICAgICAgIHJldHVybiBw
b3MgPT0gbmV4dEJyZWFrYWJsZTsKLSAgICB9CitpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKExh
enlMaW5lQnJlYWtJdGVyYXRvciYsIGludCBwb3MsIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpOwor
CitpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShMYXp5TGluZUJyZWFrSXRlcmF0b3ImIGxhenlCcmVh
a0l0ZXJhdG9yLCBpbnQgcG9zLCBpbnQmIG5leHRCcmVha2FibGUsIGJvb2wgYnJlYWtOQlNQID0g
ZmFsc2UpCit7CisgICAgaWYgKHBvcyA+IG5leHRCcmVha2FibGUpCisgICAgICAgIG5leHRCcmVh
a2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24obGF6eUJyZWFrSXRlcmF0b3IsIHBvcywgYnJl
YWtOQlNQKTsKKyAgICByZXR1cm4gcG9zID09IG5leHRCcmVha2FibGU7Cit9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAo=
</data>
<flag name="review"
          id="75437"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>83627</attachid>
            <date>2011-02-24 02:50:36 -0800</date>
            <delta_ts>2011-02-24 02:50:36 -0800</delta_ts>
            <desc>glibc backtrace</desc>
            <filename>glibc-bt.txt</filename>
            <type>text/plain</type>
            <size>7746</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">L2xpYi9saWJjLnNvLjZbMHhmMzU2ZTkzNV0KL2xpYi9saWJjLnNvLjYocmVhbGxvYysweDI3Milb
MHhmMzU3MmNkMl0KL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjEvbGliL2xpYlF0Q29yZS5z
by40KFFUZXh0Qm91bmRhcnlGaW5kZXI6Om9wZXJhdG9yPShRVGV4dEJvdW5kYXJ5RmluZGVyIGNv
bnN0JikrMHg2NSlbMHhmMzg0ODU1NV0KL2hvbWUvb3N6aS9XZWJLaXQvV2ViS2l0QnVpbGQvRGVi
dWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoV2ViQ29yZTo6VGV4dEJyZWFrSXRlcmF0b3I6Om9wZXJh
dG9yPShXZWJDb3JlOjpUZXh0QnJlYWtJdGVyYXRvciBjb25zdCYpKzB4MjQpWzB4ZjY1MTFkZDZd
Ci9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40
KFdlYkNvcmU6OnNldFVwSXRlcmF0b3IoV2ViQ29yZTo6VGV4dEJyZWFrSXRlcmF0b3ImLCBRVGV4
dEJvdW5kYXJ5RmluZGVyOjpCb3VuZGFyeVR5cGUsIHVuc2lnbmVkIHNob3J0IGNvbnN0KiwgaW50
KSsweGQwKVsweGY2NTExZWM3XQovaG9tZS9vc3ppL1dlYktpdC9XZWJLaXRCdWlsZC9EZWJ1Zy9s
aWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjphY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IodW5z
aWduZWQgc2hvcnQgY29uc3QqLCBpbnQpKzB4NDkpWzB4ZjY1MTIwNDVdCi9ob21lL29zemkvV2Vi
S2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OkxhenlM
aW5lQnJlYWtJdGVyYXRvcjo6Z2V0KCkrMHgzMylbMHhmNjg1ZmEzZl0KL2hvbWUvb3N6aS9XZWJL
aXQvV2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoV2ViQ29yZTo6bmV4dEJy
ZWFrYWJsZVBvc2l0aW9uKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvciYsIGludCwgYm9v
bCkrMHgxMDcpWzB4ZjY4NWZiNWFdCi9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVn
L2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OmlzQnJlYWthYmxlKFdlYkNvcmU6OkxhenlM
aW5lQnJlYWtJdGVyYXRvciYsIGludCwgaW50JiwgYm9vbCkrMHgzYylbMHhmNjNiNDJiZV0KL2hv
bWUvb3N6aS9XZWJLaXQvV2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKFdlYkNvcmU6OkJpZGlSZXNvbHZl
cjxXZWJDb3JlOjpJbmxpbmVJdGVyYXRvciwgV2ViQ29yZTo6QmlkaVJ1bj4mLCBib29sLCBib29s
Jiwgc3RkOjpwYWlyPFdlYkNvcmU6OlJlbmRlclRleHQqLCBXZWJDb3JlOjpMYXp5TGluZUJyZWFr
SXRlcmF0b3I+JiwgYm9vbCYsIGJvb2wmLCBXZWJDb3JlOjpFQ2xlYXIqLCBXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6RmxvYXRpbmdPYmplY3QqKSsweDE1ZTApWzB4ZjYzYjg3Y2VdCi9ob21lL29zemkv
V2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJlbihib29sLCBpbnQmLCBpbnQmKSsweGNiNClb
MHhmNjNjMTJjNl0KL2hvbWUvb3N6aS9XZWJLaXQvV2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0
V2ViS2l0LnNvLjQoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wsIGludCkr
MHg2NDkpWzB4ZjYzYWIzZjNdCi9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xp
Yi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXQoKSsweDRhKVsw
eGY2M2E5ZWFhXQovaG9tZS9vc3ppL1dlYktpdC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRX
ZWJLaXQuc28uNChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZChXZWJDb3Jl
OjpSZW5kZXJCb3gqLCBXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbyYsIGludCYsIGlu
dCYpKzB4MzJlKVsweGY2M2E4Y2E2XQovaG9tZS9vc3ppL1dlYktpdC9XZWJLaXRCdWlsZC9EZWJ1
Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2tD
aGlsZHJlbihib29sLCBpbnQmKSsweDRhNilbMHhmNjNhYWQ3OF0KL2hvbWUvb3N6aS9XZWJLaXQv
V2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OmxheW91dEJsb2NrKGJvb2wsIGludCkrMHg2NmIpWzB4ZjYzYWI0MTVdCi9ob21lL29zemkv
V2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpsYXlvdXQoKSsweDRhKVsweGY2M2E5ZWFhXQovaG9tZS9vc3ppL1dlYktpdC9X
ZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bGF5b3V0QmxvY2tDaGlsZChXZWJDb3JlOjpSZW5kZXJCb3gqLCBXZWJDb3JlOjpSZW5kZXJC
bG9jazo6TWFyZ2luSW5mbyYsIGludCYsIGludCYpKzB4MzJlKVsweGY2M2E4Y2E2XQovaG9tZS9v
c3ppL1dlYktpdC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29sLCBpbnQmKSsweDRhNilbMHhm
NjNhYWQ3OF0KL2hvbWUvb3N6aS9XZWJLaXQvV2ViS2l0QnVpbGQvRGVidWcvbGliL2xpYlF0V2Vi
S2l0LnNvLjQoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wsIGludCkrMHg2
NmIpWzB4ZjYzYWI0MTVdCi9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9s
aWJRdFdlYktpdC5zby40KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXQoKSsweDRhKVsweGY2
M2E5ZWFhXQovaG9tZS9vc3ppL1dlYktpdC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJL
aXQuc28uNChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZChXZWJDb3JlOjpS
ZW5kZXJCb3gqLCBXZWJDb3JlOjpSZW5kZXJCbG9jazo6TWFyZ2luSW5mbyYsIGludCYsIGludCYp
KzB4MzJlKVsweGY2M2E4Y2E2XQovaG9tZS9vc3ppL1dlYktpdC9XZWJLaXRCdWlsZC9EZWJ1Zy9s
aWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2tDaGls
ZHJlbihib29sLCBpbnQmKSsweDRhNilbMHhmNjNhYWQ3OF0KL2hvbWUvb3N6aS9XZWJLaXQvV2Vi
S2l0QnVpbGQvRGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmxheW91dEJsb2NrKGJvb2wsIGludCkrMHg2NmIpWzB4ZjYzYWI0MTVdCi9ob21lL29zemkvV2Vi
S2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpsYXlvdXQoKSsweDRhKVsweGY2M2E5ZWFhXQovaG9tZS9vc3ppL1dlYktpdC9XZWJL
aXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpSZW5kZXJWaWV3Ojps
YXlvdXQoKSsweDI4MClbMHhmNjQ5OTJkOF0KL2hvbWUvb3N6aS9XZWJLaXQvV2ViS2l0QnVpbGQv
RGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQoYm9v
bCkrMHhiZGQpWzB4ZjYyNWJhMTNdCi9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVn
L2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OkRvY3VtZW50OjppbXBsaWNpdENsb3NlKCkr
MHgzZTIpWzB4ZjVlYjYyNTZdCi9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xp
Yi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0NhbGxJbXBsaWNp
dENsb3NlKCkrMHg5ZilbMHhmNjFiMDM0Zl0KL2hvbWUvb3N6aS9XZWJLaXQvV2ViS2l0QnVpbGQv
RGVidWcvbGliL2xpYlF0V2ViS2l0LnNvLjQoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrQ29t
cGxldGVkKCkrMHgxMTMpWzB4ZjYxYjQ5MDldCi9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxk
L0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRG9u
ZSgpKzB4MWQpWzB4ZjYxYjRhYzVdCi9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVn
L2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpsb2Fk
RG9uZShXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QqKSsweGU0KVsweGY2MTkzZDY2XQov
aG9tZS9vc3ppL1dlYktpdC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6
U3VicmVzb3VyY2VMb2FkZXIqLCBkb3VibGUpKzB4Mjc4KVsweGY2ODI5NzdlXQovaG9tZS9vc3pp
L1dlYktpdC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpT
dWJyZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhkb3VibGUpKzB4Y2UpWzB4ZjYxZTM5
NjBdCi9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5z
by40KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlKiwgZG91YmxlKSsweDJiKVsweGY2MWQ3MzM1XQovaG9tZS9vc3ppL1dlYktp
dC9XZWJLaXRCdWlsZC9EZWJ1Zy9saWIvbGliUXRXZWJLaXQuc28uNChXZWJDb3JlOjpRTmV0d29y
a1JlcGx5SGFuZGxlcjo6ZmluaXNoKCkrMHgxMTMpWzB4ZjY0ZjEzNjddCi9ob21lL29zemkvV2Vi
S2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40KFdlYkNvcmU6OlFOZXR3
b3JrUmVwbHlIYW5kbGVyOjpxdF9tZXRhY2FsbChRTWV0YU9iamVjdDo6Q2FsbCwgaW50LCB2b2lk
KiopKzB4YTQpWzB4ZjY0ZjFjM2NdCi91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQuNy4xL2xpYi9s
aWJRdENvcmUuc28uNChRTWV0YU9iamVjdDo6bWV0YWNhbGwoUU9iamVjdCosIFFNZXRhT2JqZWN0
OjpDYWxsLCBpbnQsIHZvaWQqKikrMHg1NSlbMHhmMzhmOGVjNV0KL3Vzci9sb2NhbC9Ucm9sbHRl
Y2gvUXQtNC43LjEvbGliL2xpYlF0Q29yZS5zby40KFFNZXRhT2JqZWN0OjphY3RpdmF0ZShRT2Jq
ZWN0KiwgUU1ldGFPYmplY3QgY29uc3QqLCBpbnQsIHZvaWQqKikrMHgyODMpWzB4ZjM5MGI5YzNd
Ci9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJRdFdlYktpdC5zby40
KFdlYkNvcmU6OlF0TmV0d29ya1JlcGx5VGhyZWFkU2FmZVByb3h5OjpmaW5pc2hlZCgpKzB4Mzcp
WzB4ZjY3NDliNDVdCi9ob21lL29zemkvV2ViS2l0L1dlYktpdEJ1aWxkL0RlYnVnL2xpYi9saWJR
dFdlYktpdC5zby40KFdlYkNvcmU6OlF0TmV0d29ya1JlcGx5VGhyZWFkU2FmZVByb3h5OjpxdF9t
ZXRhY2FsbChRTWV0YU9iamVjdDo6Q2FsbCwgaW50LCB2b2lkKiopKzB4MWRmKVsweGY2NzRhMTVi
XQovdXNyL2xvY2FsL1Ryb2xsdGVjaC9RdC00LjcuMS9saWIvbGliUXRDb3JlLnNvLjQoUU1ldGFP
YmplY3Q6Om1ldGFjYWxsKFFPYmplY3QqLCBRTWV0YU9iamVjdDo6Q2FsbCwgaW50LCB2b2lkKiop
KzB4NTUpWzB4ZjM4ZjhlYzVdCi91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQuNy4xL2xpYi9saWJR
dENvcmUuc28uNChRTWV0YU9iamVjdDo6YWN0aXZhdGUoUU9iamVjdCosIFFNZXRhT2JqZWN0IGNv
bnN0KiwgaW50LCB2b2lkKiopKzB4MjgzKVsweGYzOTBiOWMzXQovdXNyL2xvY2FsL1Ryb2xsdGVj
aC9RdC00LjcuMS9saWIvbGliUXROZXR3b3JrLnNvLjQoUU5ldHdvcmtSZXBseTo6ZmluaXNoZWQo
KSsweDM3KVsweGY0NjJkMDM3XQovdXNyL2xvY2FsL1Ryb2xsdGVjaC9RdC00LjcuMS9saWIvbGli
UXROZXR3b3JrLnNvLjQoUU5ldHdvcmtSZXBseTo6cXRfbWV0YWNhbGwoUU1ldGFPYmplY3Q6OkNh
bGwsIGludCwgdm9pZCoqKSsweDEyMylbMHhmNDYyZDFhM10KL3Vzci9sb2NhbC9Ucm9sbHRlY2gv
UXQtNC43LjEvbGliL2xpYlF0TmV0d29yay5zby40WzB4ZjQ1OTMzNjJdCi91c3IvbG9jYWwvVHJv
bGx0ZWNoL1F0LTQuNy4xL2xpYi9saWJRdENvcmUuc28uNChRTWV0YU9iamVjdDo6bWV0YWNhbGwo
UU9iamVjdCosIFFNZXRhT2JqZWN0OjpDYWxsLCBpbnQsIHZvaWQqKikrMHg1NSlbMHhmMzhmOGVj
NV0KL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjEvbGliL2xpYlF0Q29yZS5zby40KFFNZXRh
Q2FsbEV2ZW50OjpwbGFjZU1ldGFDYWxsKFFPYmplY3QqKSsweDM2KVsweGYzOTA0NDQ2XQovdXNy
L2xvY2FsL1Ryb2xsdGVjaC9RdC00LjcuMS9saWIvbGliUXRDb3JlLnNvLjQoUU9iamVjdDo6ZXZl
bnQoUUV2ZW50KikrMHgyMjUpWzB4ZjM5MDU0ZDVdCi91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQu
Ny4xL2xpYi9saWJRdEd1aS5zby40KFFBcHBsaWNhdGlvblByaXZhdGU6Om5vdGlmeV9oZWxwZXIo
UU9iamVjdCosIFFFdmVudCopKzB4YmMpWzB4ZjNiOGJmMGNdCi91c3IvbG9jYWwvVHJvbGx0ZWNo
L1F0LTQuNy4xL2xpYi9saWJRdEd1aS5zby40KFFBcHBsaWNhdGlvbjo6bm90aWZ5KFFPYmplY3Qq
LCBRRXZlbnQqKSsweDE4MilbMHhmM2I5NTM3Ml0KL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43
LjEvbGliL2xpYlF0Q29yZS5zby40KFFDb3JlQXBwbGljYXRpb246Om5vdGlmeUludGVybmFsKFFP
YmplY3QqLCBRRXZlbnQqKSsweDdiKVsweGYzOGYzMDJiXQovdXNyL2xvY2FsL1Ryb2xsdGVjaC9R
dC00LjcuMS9saWIvbGliUXRDb3JlLnNvLjQoUUNvcmVBcHBsaWNhdGlvblByaXZhdGU6OnNlbmRQ
b3N0ZWRFdmVudHMoUU9iamVjdCosIGludCwgUVRocmVhZERhdGEqKSsweDJkOClbMHhmMzhmNWU1
OF0KL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjEvbGliL2xpYlF0Q29yZS5zby40KFFDb3Jl
QXBwbGljYXRpb246OnNlbmRQb3N0ZWRFdmVudHMoUU9iamVjdCosIGludCkrMHgyZClbMHhmMzhm
NWZlZF0KL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjEvbGliL2xpYlF0Q29yZS5zby40WzB4
ZjM5MjI5ZjRdCi91c3IvbGliL2xpYmdsaWItMi4wLnNvLjAoZ19tYWluX2NvbnRleHRfZGlzcGF0
Y2grMHgxZTgpWzB4ZjJjNzkxZDhdCi91c3IvbGliL2xpYmdsaWItMi4wLnNvLjBbMHhmMmM3Yzg3
M10KL3Vzci9saWIvbGliZ2xpYi0yLjAuc28uMChnX21haW5fY29udGV4dF9pdGVyYXRpb24rMHg3
MSlbMHhmMmM3Y2EzMV0KL3Vzci9sb2NhbC9Ucm9sbHRlY2gvUXQtNC43LjEvbGliL2xpYlF0Q29y
ZS5zby40KFFFdmVudERpc3BhdGNoZXJHbGliOjpwcm9jZXNzRXZlbnRzKFFGbGFnczxRRXZlbnRM
b29wOjpQcm9jZXNzRXZlbnRzRmxhZz4pKzB4NjEpWzB4ZjM5MjI1MDFdCi91c3IvbG9jYWwvVHJv
bGx0ZWNoL1F0LTQuNy4xL2xpYi9saWJRdEd1aS5zby40WzB4ZjNjNDYzZjVdCi91c3IvbG9jYWwv
VHJvbGx0ZWNoL1F0LTQuNy4xL2xpYi9saWJRdENvcmUuc28uNChRRXZlbnRMb29wOjpwcm9jZXNz
RXZlbnRzKFFGbGFnczxRRXZlbnRMb29wOjpQcm9jZXNzRXZlbnRzRmxhZz4pKzB4NGEpWzB4ZjM4
ZjFhNWFdCi91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQuNy4xL2xpYi9saWJRdENvcmUuc28uNChR
RXZlbnRMb29wOjpleGVjKFFGbGFnczxRRXZlbnRMb29wOjpQcm9jZXNzRXZlbnRzRmxhZz4pKzB4
ZjIpWzB4ZjM4ZjFlZTJdCi91c3IvbG9jYWwvVHJvbGx0ZWNoL1F0LTQuNy4xL2xpYi9saWJRdENv
cmUuc28uNChRQ29yZUFwcGxpY2F0aW9uOjpleGVjKCkrMHhiOSlbMHhmMzhmNjBiOV0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83694</attachid>
            <date>2011-02-24 12:09:16 -0800</date>
            <delta_ts>2011-02-24 12:17:31 -0800</delta_ts>
            <desc>Reapplied changes.</desc>
            <filename>ubrk_setText-reapplied.txt</filename>
            <type>text/plain</type>
            <size>17060</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDItMjQgIE5lZCBIb2xi
cm9vayAgPG5ob2xicm9va0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWluaW1pemUgY2FsbHMgdG8gdWJya19zZXRUZXh0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0OTEyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS85MDMyNzc0PgorCisgICAgICAgIEF2b2lkIGNhbGxpbmcgdWJy
a19zZXRUZXh0KCkgb25jZSBwZXIgY2FsbCB0byBpc0JyZWFrYWJsZSgpIGJ5IHVzaW5nIGEgTGF6
eUxpbmVCcmVha0l0ZXJhdG9yLCB3aGljaCBkZWZlcnMKKyAgICAgICAgYnJlYWsgaXRlcmF0b3Ig
Y3JlYXRpb24gdW50aWwgbmVlZGVkLiBUaGlzIHJlcXVpcmVzIHJlcGxhY2luZyB0aGUgZ2xvYmFs
IGxpbmUgYnJlYWsgaXRlcmF0b3IgcHJpbWl0aXZlIHdpdGggYQorICAgICAgICB2ZXJzaW9uIHRo
YXQgY2FuIGJlIG5lc3RlZCwgc2luY2UgaW4gc29tZSBjYXNlcyB0d28gaXRlcmF0b3JzIG1heSBu
ZWVkIHRvIGJlIG91dHN0YW5kaW5nLiBJbiBwYXJ0aWN1bGFyLAorICAgICAgICBsYXlvdXRJbmxp
bmVDaGlsZHJlbigpIG1heSBpbmRpcmVjdGx5IGNhbGwgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoKSBhbmQgZWFjaCBtYXkgbmVlZCBhbiBpdGVyYXRvci4KKyAgICAgICAgSW4gYSB0ZXN0
IHdpdGggYSBwYXJhZ3JhcGggb2YgSmFwYW5lc2UgdGV4dCwgdGhpcyByZWR1Y2VkIHRoZSBudW1i
ZXIgb2YgdWJya19zZXRUZXh0KCkgY2FsbHMgZnJvbSAxNjQgdG8gMS4KKworICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDogQWRkIExhenlMaW5lQnJlYWtJdGVyYXRv
ci4KKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6TGF6eUxpbmVCcmVh
a0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6fkxh
enlMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRl
cmF0b3I6OnN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6
Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OmdldCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OnJlc2V0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcDogUmVwbGFjZSBsaW5l
QnJlYWtJdGVyYXRvcigpIHByaW1pdGl2ZSB3aXRoIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcigp
L3JlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcigpLgorICAgICAgICAoV2ViQ29yZTo6YWNxdWlyZUxp
bmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJlYWtJdGVy
YXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNw
cDogRGl0dG8gVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6YWNx
dWlyZUxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJl
YWtJdGVyYXRvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4pOiBQYXNzIGEgbWFwcGluZyBvZiBS
ZW5kZXJUZXh0IHRvIExhenlMaW5lQnJlYWtJdGVyYXRvciBmcm9tIG9uZSBjYWxsIG9mIGZpbmRO
ZXh0TGluZUJyZWFrKCkgdG8gdGhlIG5leHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6ZmluZE5leHRMaW5lQnJlYWspOiBVc2Ugc2FpZCBtYXBwaW5nLCByZXNldHRpbmcgTGF6eUxp
bmVCcmVha0l0ZXJhdG9yIGZvciBhbnkgbmV3bHktZW5jb3VudGVyZWQgUmVuZGVyVGV4dC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6IFVzZSBhIGxvY2FsIExhenlMaW5lQnJl
YWtJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwOiBB
Y2NlcHQgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIHJhdGhlciB0aGFuIFRleHRCcmVha0l0ZXJhdG9y
LgorICAgICAgICAoV2ViQ29yZTo6bmV4dEJyZWFrYWJsZVBvc2l0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvYnJlYWtfbGluZXMuaDogQWNjZXB0IExhenlMaW5lQnJlYWtJdGVyYXRvciByYXRo
ZXIgdGhhbiBUZXh0QnJlYWtJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OmlzQnJlYWthYmxl
KToKKwogMjAxMS0wMi0yNCAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAkocmV2aXNpb24gNzk1NzQpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xh
c3MgVGV4dEJyZWFrSXRlcmF0b3I7CiAKLSAgICAvLyBOb3RlOiBUaGUgcmV0dXJuZWQgaXRlcmF0
b3IgaXMgZ29vZCBvbmx5IHVudGlsIHlvdSBnZXQgYW5vdGhlciBpdGVyYXRvci4KKyAgICAvLyBO
b3RlOiBUaGUgcmV0dXJuZWQgaXRlcmF0b3IgaXMgZ29vZCBvbmx5IHVudGlsIHlvdSBnZXQgYW5v
dGhlciBpdGVyYXRvciwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIGFjcXVpcmVMaW5lQnJlYWtJdGVy
YXRvci4KIAogICAgIC8vIEl0ZXJhdGVzIG92ZXIgImV4dGVuZGVkIGdyYXBoZW1lIGNsdXN0ZXJz
IiwgYXMgZGVmaW5lZCBpbiBVQVggIzI5LgogICAgIC8vIE5vdGUgdGhhdCBwbGF0Zm9ybSBpbXBs
ZW1lbnRhdGlvbnMgbWF5IGJlIGxlc3Mgc29waGlzdGljYXRlZCAtIGUuZy4gSUNVIHByaW9yIHRv
CkBAIC00Myw3ICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBUZXh0QnJlYWtJdGVy
YXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwog
CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwg
aW50IGxlbmd0aCk7Ci0gICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNv
bnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVM
aW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOworICAgIHZvaWQgcmVs
ZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKik7CiAgICAgVGV4dEJyZWFr
SXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgp
OwogCiAgICAgaW50IHRleHRCcmVha0ZpcnN0KFRleHRCcmVha0l0ZXJhdG9yKik7CkBAIC01Nyw2
ICs1OCw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjb25zdCBpbnQgVGV4dEJyZWFr
RG9uZSA9IC0xOwogCitjbGFzcyBMYXp5TGluZUJyZWFrSXRlcmF0b3IgeworcHVibGljOgorICAg
IExhenlMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nID0gMCwgaW50IGxlbmd0
aCA9IDApCisgICAgICAgIDogbV9zdHJpbmcoc3RyaW5nKQorICAgICAgICAsIG1fbGVuZ3RoKGxl
bmd0aCkKKyAgICAgICAgLCBtX2l0ZXJhdG9yKDApCisgICAgeworICAgIH0KKworICAgIH5MYXp5
TGluZUJyZWFrSXRlcmF0b3IoKQorICAgIHsKKyAgICAgICAgaWYgKG1faXRlcmF0b3IpCisgICAg
ICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IobV9pdGVyYXRvcik7CisgICAgfQorCisg
ICAgY29uc3QgVUNoYXIqIHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nOyB9CisgICAg
aW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKKyAgICBUZXh0QnJlYWtJ
dGVyYXRvciogZ2V0KCkKKyAgICB7CisgICAgICAgIGlmICghbV9pdGVyYXRvcikKKyAgICAgICAg
ICAgIG1faXRlcmF0b3IgPSBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IobV9zdHJpbmcsIG1fbGVu
Z3RoKTsKKyAgICAgICAgcmV0dXJuIG1faXRlcmF0b3I7CisgICAgfQorCisgICAgdm9pZCByZXNl
dChjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgaWYgKG1f
aXRlcmF0b3IpCisgICAgICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IobV9pdGVyYXRv
cik7CisKKyAgICAgICAgbV9zdHJpbmcgPSBzdHJpbmc7CisgICAgICAgIG1fbGVuZ3RoID0gbGVu
Z3RoOworICAgICAgICBtX2l0ZXJhdG9yID0gMDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29u
c3QgVUNoYXIqIG1fc3RyaW5nOworICAgIGludCBtX2xlbmd0aDsKKyAgICBUZXh0QnJlYWtJdGVy
YXRvciogbV9pdGVyYXRvcjsKK307CisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkocmV2
aXNpb24gNzk1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0
ZXJhdG9ySUNVLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUg
PHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKK3VzaW5nIG5h
bWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFRleHRCcmVha0l0
ZXJhdG9yKiBzZXRVcEl0ZXJhdG9yKGJvb2wmIGNyZWF0ZWRJdGVyYXRvciwgVGV4dEJyZWFrSXRl
cmF0b3IqJiBpdGVyYXRvciwKQEAgLTY4LDEyICs3MCwzNCBAQCBUZXh0QnJlYWtJdGVyYXRvciog
d29yZEJyZWFrSXRlcmF0b3IoY29uCiAgICAgICAgIHN0YXRpY1dvcmRCcmVha0l0ZXJhdG9yLCBV
QlJLX1dPUkQsIHN0cmluZywgbGVuZ3RoKTsKIH0KIAotVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVC
cmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCitzdGF0aWMgYm9v
bCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKK3N0YXRpYyBUZXh0QnJlYWtJdGVy
YXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7CisKK1RleHRCcmVha0l0ZXJhdG9yKiBhY3F1
aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKK3sK
KyAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IgPSAwOworICAgIGlmICgh
Y3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yIHx8IHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yKSB7Cisg
ICAgICAgIHNldFVwSXRlcmF0b3IoY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yLCBzdGF0aWNMaW5l
QnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgICAgIHN3YXAo
c3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIGxpbmVCcmVha0l0ZXJhdG9yKTsKKyAgICB9CisKKyAg
ICBpZiAoIWxpbmVCcmVha0l0ZXJhdG9yKSB7CisgICAgICAgIGJvb2wgY3JlYXRlZE5ld0xpbmVC
cmVha0l0ZXJhdG9yID0gZmFsc2U7CisgICAgICAgIHNldFVwSXRlcmF0b3IoY3JlYXRlZE5ld0xp
bmVCcmVha0l0ZXJhdG9yLCBsaW5lQnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJpbmcsIGxl
bmd0aCk7CisgICAgfQorCisgICAgcmV0dXJuIGxpbmVCcmVha0l0ZXJhdG9yOworfQorCit2b2lk
IHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiB7
Ci0gICAgc3RhdGljIGJvb2wgY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yID0gZmFsc2U7Ci0gICAg
c3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICBy
ZXR1cm4gc2V0VXBJdGVyYXRvcihjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IsCi0gICAgICAgIHN0
YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBVQlJLX0xJTkUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICBB
U1NFUlQoY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yKTsKKyAgICBBU1NFUlQoaXRlcmF0b3IpOwor
CisgICAgaWYgKCFzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcikKKyAgICAgICAgc3RhdGljTGluZUJy
ZWFrSXRlcmF0b3IgPSBpdGVyYXRvcjsKKyAgICBlbHNlCisgICAgICAgIHVicmtfY2xvc2UocmVp
bnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKSk7CiB9CiAKIFRleHRCcmVh
a0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50
IGxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFr
SXRlcmF0b3JRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAkocmV2aXNpb24gNzk1NzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAjZGVmaW5lIERFQlVHIGlmICgxKSB7fSBlbHNlIHFE
ZWJ1ZwogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogI2lmIFVTRShRVF9JQ1VfVEVYVF9CUkVBS0lORykKQEAgLTgwLDEwICs4MiwzMCBAQCBj
b25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQogICAgICAgICByZXR1cm4gY2hh
cmFjdGVyQnJlYWtJdGVyYXRvcihzdHJpbmcsIGxlbmd0aCk7CiAgICAgfQogCi0gICAgVGV4dEJy
ZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBs
ZW5ndGgpCisgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVy
YXRvcjsKKworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3Io
Y29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBU
ZXh0QnJlYWtJdGVyYXRvciBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICAgICAgcmV0dXJu
IHNldFVwSXRlcmF0b3Ioc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5k
ZXI6OkxpbmUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxp
bmVCcmVha0l0ZXJhdG9yID0gMDsKKyAgICAgICAgaWYgKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9y
KSB7CisgICAgICAgICAgICBzZXRVcEl0ZXJhdG9yKCpzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwg
UVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3RyaW5nLCBsZW5ndGgpOworICAgICAgICAgICAg
c3dhcChzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgbGluZUJyZWFrSXRlcmF0b3IpOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKCFsaW5lQnJlYWtJdGVyYXRvciAmJiBzdHJpbmcgJiYgbGVuZ3Ro
KQorICAgICAgICAgICAgbGluZUJyZWFrSXRlcmF0b3IgPSBuZXcgVGV4dEJyZWFrSXRlcmF0b3Io
UVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3RyaW5nLCBsZW5ndGgpOworCisgICAgICAgIHJl
dHVybiBsaW5lQnJlYWtJdGVyYXRvcjsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2VMaW5lQnJl
YWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCisgICAgeworICAgICAgICBB
U1NFUlQoaXRlcmF0b3IpOworCisgICAgICAgIGlmICghc3RhdGljTGluZUJyZWFrSXRlcmF0b3Ip
CisgICAgICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciA9IGl0ZXJhdG9yOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBkZWxldGUgaXRlcmF0b3I7CiAgICAgfQogCiAgICAgVGV4dEJy
ZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBp
bnQgbGVuZ3RoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHJl
dmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgQ29sdW1uSW5mbzsKIGNsYXNzIElubGluZUl0ZXJhdG9yOwogY2xhc3MgTGF5b3V0U3RhdGVN
YWludGFpbmVyOworY2xhc3MgTGF6eUxpbmVCcmVha0l0ZXJhdG9yOwogY2xhc3MgUmVuZGVySW5s
aW5lOwogCiBzdHJ1Y3QgQmlkaVJ1bjsKQEAgLTQ4Niw3ICs0ODcsOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2tpcFRyYWlsaW5nV2hpdGVzcGFjZShJbmxpbmVJdGVyYXRvciYsIGJvb2wgaXNMaW5l
RW1wdHksIGJvb2wgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5KTsKICAgICBpbnQgc2tpcExlYWRp
bmdXaGl0ZXNwYWNlKElubGluZUJpZGlSZXNvbHZlciYsIGJvb2wgZmlyc3RMaW5lLCBib29sIGlz
TGluZUVtcHR5LCBib29sIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgRmxvYXRpbmdPYmplY3Qq
IGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOwogICAgIHZvaWQgZml0QmVsb3dGbG9hdHMoZmxv
YXQgd2lkdGhUb0ZpdCwgYm9vbCBmaXJzdExpbmUsIGZsb2F0JiBhdmFpbGFibGVXaWR0aCk7Ci0g
ICAgSW5saW5lSXRlcmF0b3IgZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiwg
Ym9vbCBmaXJzdExpbmUsIGJvb2wmIGlzTGluZUVtcHR5LCBib29sJiBwcmV2aW91c0xpbmVCcm9r
ZUNsZWFubHksIGJvb2wmIGh5cGhlbmF0ZWQsIEVDbGVhciosIEZsb2F0aW5nT2JqZWN0KiBsYXN0
RmxvYXRGcm9tUHJldmlvdXNMaW5lKTsKKyAgICB0eXBlZGVmIHN0ZDo6cGFpcjxSZW5kZXJUZXh0
KiwgTGF6eUxpbmVCcmVha0l0ZXJhdG9yPiBMaW5lQnJlYWtJdGVyYXRvckluZm87CisgICAgSW5s
aW5lSXRlcmF0b3IgZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiwgYm9vbCBm
aXJzdExpbmUsIGJvb2wmIGlzTGluZUVtcHR5LCBMaW5lQnJlYWtJdGVyYXRvckluZm8mLCBib29s
JiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIGJvb2wmIGh5cGhlbmF0ZWQsIEVDbGVhciosIEZs
b2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKTsKICAgICBSb290SW5saW5l
Qm94KiBjb25zdHJ1Y3RMaW5lKHVuc2lnbmVkIHJ1bkNvdW50LCBCaWRpUnVuKiBmaXJzdFJ1biwg
QmlkaVJ1biogbGFzdFJ1biwgYm9vbCBmaXJzdExpbmUsIGJvb2wgbGFzdExpbmUsIFJlbmRlck9i
amVjdCogZW5kT2JqZWN0KTsKICAgICBJbmxpbmVGbG93Qm94KiBjcmVhdGVMaW5lQm94ZXMoUmVu
ZGVyT2JqZWN0KiwgYm9vbCBmaXJzdExpbmUpOwogICAgIHZvaWQgY29tcHV0ZUlubGluZURpcmVj
dGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJveCosIGJvb2wgZmlyc3RMaW5lLCBCaWRp
UnVuKiBmaXJzdFJ1biwgQmlkaVJ1biogdHJhaWxpbmdTcGFjZVJ1biwgYm9vbCByZWFjaGVkRW5k
LCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAJKHJldmlzaW9u
IDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJM
aXN0TWFya2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKICNpbmNsdWRlICJUZXh0UnVuLmgi
CiAjaW5jbHVkZSAiVHJhaWxpbmdGbG9hdHNSb290SW5saW5lQm94LmgiCiAjaW5jbHVkZSAiVmVy
dGljYWxQb3NpdGlvbkNhY2hlLmgiCkBAIC02NjIsNiArNjYzLDcgQEAgdm9pZCBSZW5kZXJCbG9j
azo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgogICAgICAgICBib29sIGlzTGluZUVtcHR5ID0gdHJ1
ZTsKICAgICAgICAgYm9vbCBwYWdpbmF0ZWQgPSB2aWV3KCktPmxheW91dFN0YXRlKCkgJiYgdmll
dygpLT5sYXlvdXRTdGF0ZSgpLT5pc1BhZ2luYXRlZCgpOwogCisgICAgICAgIExpbmVCcmVha0l0
ZXJhdG9ySW5mbyBsaW5lQnJlYWtJdGVyYXRvckluZm87CiAgICAgICAgIFZlcnRpY2FsUG9zaXRp
b25DYWNoZSB2ZXJ0aWNhbFBvc2l0aW9uQ2FjaGU7CiAKICAgICAgICAgd2hpbGUgKCFlbmQuYXRF
bmQoKSkgewpAQCAtNjc4LDcgKzY4MCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGlu
ZUNoaWxkcmVuKGIKICAgICAgICAgICAgIAogICAgICAgICAgICAgSW5saW5lSXRlcmF0b3Igb2xk
RW5kID0gZW5kOwogICAgICAgICAgICAgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2
aW91c0xpbmUgPSBtX2Zsb2F0aW5nT2JqZWN0cyA/IG1fZmxvYXRpbmdPYmplY3RzLT5sYXN0KCkg
OiAwOwotICAgICAgICAgICAgZW5kID0gZmluZE5leHRMaW5lQnJlYWsocmVzb2x2ZXIsIGZpcnN0
TGluZSwgaXNMaW5lRW1wdHksIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgaHlwaGVuYXRlZCwg
JmNsZWFyLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKTsKKyAgICAgICAgICAgIGVuZCA9IGZp
bmROZXh0TGluZUJyZWFrKHJlc29sdmVyLCBmaXJzdExpbmUsIGlzTGluZUVtcHR5LCBsaW5lQnJl
YWtJdGVyYXRvckluZm8sIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgaHlwaGVuYXRlZCwgJmNs
ZWFyLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKTsKICAgICAgICAgICAgIGlmIChyZXNvbHZl
ci5wb3NpdGlvbigpLmF0RW5kKCkpIHsKICAgICAgICAgICAgICAgICByZXNvbHZlci5kZWxldGVS
dW5zKCk7CiAgICAgICAgICAgICAgICAgY2hlY2tGb3JGbG9hdHNGcm9tTGFzdExpbmUgPSB0cnVl
OwpAQCAtMTQzMiw3ICsxNDM0LDcgQEAgc3RhdGljIHZvaWQgdHJ5SHlwaGVuYXRpbmcoUmVuZGVy
VGV4dCogdAogICAgIGh5cGhlbmF0ZWQgPSB0cnVlOwogfQogCi1JbmxpbmVJdGVyYXRvciBSZW5k
ZXJCbG9jazo6ZmluZE5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNvbHZlciwg
Ym9vbCBmaXJzdExpbmUsICBib29sJiBpc0xpbmVFbXB0eSwgYm9vbCYgcHJldmlvdXNMaW5lQnJv
a2VDbGVhbmx5LCAKK0lubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVh
ayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sIGZpcnN0TGluZSwgYm9vbCYgaXNM
aW5lRW1wdHksIExpbmVCcmVha0l0ZXJhdG9ySW5mbyYgbGluZUJyZWFrSXRlcmF0b3JJbmZvLCBi
b29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wmIGh5cGhlbmF0ZWQsIEVDbGVhciogY2xlYXIsIEZs
b2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lKQogewogICAgIEFTU0VSVChy
ZXNvbHZlci5wb3NpdGlvbigpLmJsb2NrID09IHRoaXMpOwpAQCAtMTcyMyw3ICsxNzI1LDEyIEBA
IElubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmUKICAgICAgICAgICAgICAg
ICAgICAgbWlkV29yZEJyZWFrID0gdyArIHdyYXBXICsgY2hhcldpZHRoID4gd2lkdGg7CiAgICAg
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgYm9vbCBiZXR3ZWVuV29yZHMgPSBjID09
ICdcbicgfHwgKGN1cnJXUyAhPSBQUkUgJiYgIWF0U3RhcnQgJiYgaXNCcmVha2FibGUoc3RyLCBw
b3MsIHN0cmxlbiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSAmJiAoc3R5bGUtPmh5cGhlbnMo
KSAhPSBIeXBoZW5zTm9uZSB8fCAocG9zICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkp
OworICAgICAgICAgICAgICAgIGlmIChsaW5lQnJlYWtJdGVyYXRvckluZm8uZmlyc3QgIT0gdCkg
eworICAgICAgICAgICAgICAgICAgICBsaW5lQnJlYWtJdGVyYXRvckluZm8uZmlyc3QgPSB0Owor
ICAgICAgICAgICAgICAgICAgICBsaW5lQnJlYWtJdGVyYXRvckluZm8uc2Vjb25kLnJlc2V0KHN0
ciwgc3RybGVuKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBib29sIGJl
dHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldTICE9IFBSRSAmJiAhYXRTdGFydCAmJiBp
c0JyZWFrYWJsZShsaW5lQnJlYWtJdGVyYXRvckluZm8uc2Vjb25kLCBwb3MsIG5leHRCcmVha2Fi
bGUsIGJyZWFrTkJTUCkgJiYgKHN0eWxlLT5oeXBoZW5zKCkgIT0gSHlwaGVuc05vbmUgfHwgKHBv
cyAmJiBzdHJbcG9zIC0gMV0gIT0gc29mdEh5cGhlbikpKTsKIAogICAgICAgICAgICAgICAgIGlm
IChiZXR3ZWVuV29yZHMgfHwgbWlkV29yZEJyZWFrKSB7CiAgICAgICAgICAgICAgICAgICAgIGJv
b2wgc3RvcHBlZElnbm9yaW5nU3BhY2VzID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA3OTU3NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQ4LDYgKzc0OCw3
IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWwKICAgICBmbG9hdCB3
b3JkU3BhY2luZyA9IHN0eWxlKCktPndvcmRTcGFjaW5nKCk7CiAgICAgaW50IGxlbiA9IHRleHRM
ZW5ndGgoKTsKICAgICBjb25zdCBVQ2hhciogdHh0ID0gY2hhcmFjdGVycygpOworICAgIExhenlM
aW5lQnJlYWtJdGVyYXRvciBicmVha0l0ZXJhdG9yKHR4dCwgbGVuKTsKICAgICBib29sIG5lZWRz
V29yZFNwYWNpbmcgPSBmYWxzZTsKICAgICBib29sIGlnbm9yaW5nU3BhY2VzID0gZmFsc2U7CiAg
ICAgYm9vbCBpc1NwYWNlID0gZmFsc2U7CkBAIC04MDcsNyArODA4LDcgQEAgdm9pZCBSZW5kZXJU
ZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KIAotICAgICAgICBib29sIGhhc0JyZWFrID0gYnJlYWtBbGwgfHwgaXNCcmVha2FibGUo
dHh0LCBpLCBsZW4sIG5leHRCcmVha2FibGUsIGJyZWFrTkJTUCk7CisgICAgICAgIGJvb2wgaGFz
QnJlYWsgPSBicmVha0FsbCB8fCBpc0JyZWFrYWJsZShicmVha0l0ZXJhdG9yLCBpLCBuZXh0QnJl
YWthYmxlLCBicmVha05CU1ApOwogICAgICAgICBib29sIGJldHdlZW5Xb3JkcyA9IHRydWU7CiAg
ICAgICAgIGludCBqID0gaTsKICAgICAgICAgd2hpbGUgKGMgIT0gJ1xuJyAmJiAhaXNTcGFjZUFj
Y29yZGluZ1RvU3R5bGUoYywgc3R5bGUoKSkgJiYgYyAhPSAnXHQnICYmIGMgIT0gc29mdEh5cGhl
bikgewpAQCAtODE1LDcgKzgxNiw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWwKICAgICAgICAgICAgIGlmIChqID09IGxlbikKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIGMgPSB0eHRbal07Ci0gICAgICAgICAgICBpZiAoaXNCcmVha2FibGUo
dHh0LCBqLCBsZW4sIG5leHRCcmVha2FibGUsIGJyZWFrTkJTUCkpCisgICAgICAgICAgICBpZiAo
aXNCcmVha2FibGUoYnJlYWtJdGVyYXRvciwgaiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSkK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGlmIChicmVha0FsbCkgewogICAg
ICAgICAgICAgICAgIGJldHdlZW5Xb3JkcyA9IGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCShyZXZpc2lvbiA3OTU3NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMSAr
MTU0LDEwIEBAIHN0YXRpYyBpbmxpbmUgVGV4dEJyZWFrTG9jYXRvclJlZiBsaW5lQnIKIH0KICNl
bmRpZgogCi1pbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0IFVDaGFyKiBzdHIsIGludCBw
b3MsIGludCBsZW4sIGJvb2wgdHJlYXROb0JyZWFrU3BhY2VBc0JyZWFrKQoraW50IG5leHRCcmVh
a2FibGVQb3NpdGlvbihMYXp5TGluZUJyZWFrSXRlcmF0b3ImIGxhenlCcmVha0l0ZXJhdG9yLCBp
bnQgcG9zLCBib29sIHRyZWF0Tm9CcmVha1NwYWNlQXNCcmVhaykKIHsKLSNpZiAhUExBVEZPUk0o
TUFDKSB8fCAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikKLSAgICBUZXh0QnJlYWtJdGVyYXRv
ciogYnJlYWtJdGVyYXRvciA9IDA7Ci0jZW5kaWYKKyAgICBjb25zdCBVQ2hhciogc3RyID0gbGF6
eUJyZWFrSXRlcmF0b3Iuc3RyaW5nKCk7CisgICAgaW50IGxlbiA9IGxhenlCcmVha0l0ZXJhdG9y
Lmxlbmd0aCgpOwogICAgIGludCBuZXh0QnJlYWsgPSAtMTsKIAogICAgIFVDaGFyIGxhc3RDaCA9
IHBvcyA+IDAgPyBzdHJbcG9zIC0gMV0gOiAwOwpAQCAtMTcxLDggKzE3MCw3IEBAIGludCBuZXh0
QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqIHMKICAgICAgICAgaWYgKG5lZWRzTGluZUJy
ZWFrSXRlcmF0b3IoY2gpIHx8IG5lZWRzTGluZUJyZWFrSXRlcmF0b3IobGFzdENoKSkgewogICAg
ICAgICAgICAgaWYgKG5leHRCcmVhayA8IGkgJiYgaSkgewogI2lmICFQTEFURk9STShNQUMpIHx8
ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQotICAgICAgICAgICAgICAgIGlmICghYnJlYWtJ
dGVyYXRvcikKLSAgICAgICAgICAgICAgICAgICAgYnJlYWtJdGVyYXRvciA9IGxpbmVCcmVha0l0
ZXJhdG9yKHN0ciwgbGVuKTsKKyAgICAgICAgICAgICAgICBUZXh0QnJlYWtJdGVyYXRvciogYnJl
YWtJdGVyYXRvciA9IGxhenlCcmVha0l0ZXJhdG9yLmdldCgpOwogICAgICAgICAgICAgICAgIGlm
IChicmVha0l0ZXJhdG9yKQogICAgICAgICAgICAgICAgICAgICBuZXh0QnJlYWsgPSB0ZXh0QnJl
YWtGb2xsb3dpbmcoYnJlYWtJdGVyYXRvciwgaSAtIDEpOwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCShyZXZpc2lvbiA3OTU3NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxNCAr
MjUsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgaW50IG5leHRCcmVha2FibGVQ
b3NpdGlvbihjb25zdCBVQ2hhciosIGludCBwb3MsIGludCBsZW4sIGJvb2wgYnJlYWtOQlNQID0g
ZmFsc2UpOworY2xhc3MgTGF6eUxpbmVCcmVha0l0ZXJhdG9yOwogCi0gICAgaW5saW5lIGJvb2wg
aXNCcmVha2FibGUoY29uc3QgVUNoYXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgaW50JiBuZXh0
QnJlYWthYmxlLCBib29sIGJyZWFrTkJTUCA9IGZhbHNlKQotICAgIHsKLSAgICAgICAgaWYgKHBv
cyA+IG5leHRCcmVha2FibGUpCi0gICAgICAgICAgICBuZXh0QnJlYWthYmxlID0gbmV4dEJyZWFr
YWJsZVBvc2l0aW9uKHN0ciwgcG9zLCBsZW4sIGJyZWFrTkJTUCk7Ci0gICAgICAgIHJldHVybiBw
b3MgPT0gbmV4dEJyZWFrYWJsZTsKLSAgICB9CitpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKExh
enlMaW5lQnJlYWtJdGVyYXRvciYsIGludCBwb3MsIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpOwor
CitpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShMYXp5TGluZUJyZWFrSXRlcmF0b3ImIGxhenlCcmVh
a0l0ZXJhdG9yLCBpbnQgcG9zLCBpbnQmIG5leHRCcmVha2FibGUsIGJvb2wgYnJlYWtOQlNQID0g
ZmFsc2UpCit7CisgICAgaWYgKHBvcyA+IG5leHRCcmVha2FibGUpCisgICAgICAgIG5leHRCcmVh
a2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24obGF6eUJyZWFrSXRlcmF0b3IsIHBvcywgYnJl
YWtOQlNQKTsKKyAgICByZXR1cm4gcG9zID09IG5leHRCcmVha2FibGU7Cit9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAo=
</data>
<flag name="review"
          id="75558"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83695</attachid>
            <date>2011-02-24 12:17:31 -0800</date>
            <delta_ts>2011-02-24 13:37:48 -0800</delta_ts>
            <desc>Changes for Qt.</desc>
            <filename>ubrk_setText-reapplied-qt.txt</filename>
            <type>text/plain</type>
            <size>17080</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDItMjQgIE5lZCBIb2xi
cm9vayAgPG5ob2xicm9va0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWluaW1pemUgY2FsbHMgdG8gdWJya19zZXRUZXh0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0OTEyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS85MDMyNzc0PgorCisgICAgICAgIEF2b2lkIGNhbGxpbmcgdWJy
a19zZXRUZXh0KCkgb25jZSBwZXIgY2FsbCB0byBpc0JyZWFrYWJsZSgpIGJ5IHVzaW5nIGEgTGF6
eUxpbmVCcmVha0l0ZXJhdG9yLCB3aGljaCBkZWZlcnMKKyAgICAgICAgYnJlYWsgaXRlcmF0b3Ig
Y3JlYXRpb24gdW50aWwgbmVlZGVkLiBUaGlzIHJlcXVpcmVzIHJlcGxhY2luZyB0aGUgZ2xvYmFs
IGxpbmUgYnJlYWsgaXRlcmF0b3IgcHJpbWl0aXZlIHdpdGggYQorICAgICAgICB2ZXJzaW9uIHRo
YXQgY2FuIGJlIG5lc3RlZCwgc2luY2UgaW4gc29tZSBjYXNlcyB0d28gaXRlcmF0b3JzIG1heSBu
ZWVkIHRvIGJlIG91dHN0YW5kaW5nLiBJbiBwYXJ0aWN1bGFyLAorICAgICAgICBsYXlvdXRJbmxp
bmVDaGlsZHJlbigpIG1heSBpbmRpcmVjdGx5IGNhbGwgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoKSBhbmQgZWFjaCBtYXkgbmVlZCBhbiBpdGVyYXRvci4KKyAgICAgICAgSW4gYSB0ZXN0
IHdpdGggYSBwYXJhZ3JhcGggb2YgSmFwYW5lc2UgdGV4dCwgdGhpcyByZWR1Y2VkIHRoZSBudW1i
ZXIgb2YgdWJya19zZXRUZXh0KCkgY2FsbHMgZnJvbSAxNjQgdG8gMS4KKworICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDogQWRkIExhenlMaW5lQnJlYWtJdGVyYXRv
ci4KKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6TGF6eUxpbmVCcmVh
a0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6fkxh
enlMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRl
cmF0b3I6OnN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6
Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OmdldCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OnJlc2V0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcDogUmVwbGFjZSBsaW5l
QnJlYWtJdGVyYXRvcigpIHByaW1pdGl2ZSB3aXRoIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcigp
L3JlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcigpLgorICAgICAgICAoV2ViQ29yZTo6YWNxdWlyZUxp
bmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJlYWtJdGVy
YXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNw
cDogRGl0dG8gVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6YWNx
dWlyZUxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJl
YWtJdGVyYXRvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4pOiBQYXNzIGEgbWFwcGluZyBvZiBS
ZW5kZXJUZXh0IHRvIExhenlMaW5lQnJlYWtJdGVyYXRvciBmcm9tIG9uZSBjYWxsIG9mIGZpbmRO
ZXh0TGluZUJyZWFrKCkgdG8gdGhlIG5leHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6ZmluZE5leHRMaW5lQnJlYWspOiBVc2Ugc2FpZCBtYXBwaW5nLCByZXNldHRpbmcgTGF6eUxp
bmVCcmVha0l0ZXJhdG9yIGZvciBhbnkgbmV3bHktZW5jb3VudGVyZWQgUmVuZGVyVGV4dC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6IFVzZSBhIGxvY2FsIExhenlMaW5lQnJl
YWtJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwOiBB
Y2NlcHQgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIHJhdGhlciB0aGFuIFRleHRCcmVha0l0ZXJhdG9y
LgorICAgICAgICAoV2ViQ29yZTo6bmV4dEJyZWFrYWJsZVBvc2l0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvYnJlYWtfbGluZXMuaDogQWNjZXB0IExhenlMaW5lQnJlYWtJdGVyYXRvciByYXRo
ZXIgdGhhbiBUZXh0QnJlYWtJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OmlzQnJlYWthYmxl
KToKKwogMjAxMS0wMi0yNCAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAkocmV2aXNpb24gNzk1NzQpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xh
c3MgVGV4dEJyZWFrSXRlcmF0b3I7CiAKLSAgICAvLyBOb3RlOiBUaGUgcmV0dXJuZWQgaXRlcmF0
b3IgaXMgZ29vZCBvbmx5IHVudGlsIHlvdSBnZXQgYW5vdGhlciBpdGVyYXRvci4KKyAgICAvLyBO
b3RlOiBUaGUgcmV0dXJuZWQgaXRlcmF0b3IgaXMgZ29vZCBvbmx5IHVudGlsIHlvdSBnZXQgYW5v
dGhlciBpdGVyYXRvciwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIGFjcXVpcmVMaW5lQnJlYWtJdGVy
YXRvci4KIAogICAgIC8vIEl0ZXJhdGVzIG92ZXIgImV4dGVuZGVkIGdyYXBoZW1lIGNsdXN0ZXJz
IiwgYXMgZGVmaW5lZCBpbiBVQVggIzI5LgogICAgIC8vIE5vdGUgdGhhdCBwbGF0Zm9ybSBpbXBs
ZW1lbnRhdGlvbnMgbWF5IGJlIGxlc3Mgc29waGlzdGljYXRlZCAtIGUuZy4gSUNVIHByaW9yIHRv
CkBAIC00Myw3ICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBUZXh0QnJlYWtJdGVy
YXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwog
CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwg
aW50IGxlbmd0aCk7Ci0gICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNv
bnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVM
aW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOworICAgIHZvaWQgcmVs
ZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKik7CiAgICAgVGV4dEJyZWFr
SXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgp
OwogCiAgICAgaW50IHRleHRCcmVha0ZpcnN0KFRleHRCcmVha0l0ZXJhdG9yKik7CkBAIC01Nyw2
ICs1OCw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjb25zdCBpbnQgVGV4dEJyZWFr
RG9uZSA9IC0xOwogCitjbGFzcyBMYXp5TGluZUJyZWFrSXRlcmF0b3IgeworcHVibGljOgorICAg
IExhenlMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nID0gMCwgaW50IGxlbmd0
aCA9IDApCisgICAgICAgIDogbV9zdHJpbmcoc3RyaW5nKQorICAgICAgICAsIG1fbGVuZ3RoKGxl
bmd0aCkKKyAgICAgICAgLCBtX2l0ZXJhdG9yKDApCisgICAgeworICAgIH0KKworICAgIH5MYXp5
TGluZUJyZWFrSXRlcmF0b3IoKQorICAgIHsKKyAgICAgICAgaWYgKG1faXRlcmF0b3IpCisgICAg
ICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IobV9pdGVyYXRvcik7CisgICAgfQorCisg
ICAgY29uc3QgVUNoYXIqIHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nOyB9CisgICAg
aW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKKyAgICBUZXh0QnJlYWtJ
dGVyYXRvciogZ2V0KCkKKyAgICB7CisgICAgICAgIGlmICghbV9pdGVyYXRvcikKKyAgICAgICAg
ICAgIG1faXRlcmF0b3IgPSBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IobV9zdHJpbmcsIG1fbGVu
Z3RoKTsKKyAgICAgICAgcmV0dXJuIG1faXRlcmF0b3I7CisgICAgfQorCisgICAgdm9pZCByZXNl
dChjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgaWYgKG1f
aXRlcmF0b3IpCisgICAgICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IobV9pdGVyYXRv
cik7CisKKyAgICAgICAgbV9zdHJpbmcgPSBzdHJpbmc7CisgICAgICAgIG1fbGVuZ3RoID0gbGVu
Z3RoOworICAgICAgICBtX2l0ZXJhdG9yID0gMDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29u
c3QgVUNoYXIqIG1fc3RyaW5nOworICAgIGludCBtX2xlbmd0aDsKKyAgICBUZXh0QnJlYWtJdGVy
YXRvciogbV9pdGVyYXRvcjsKK307CisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkocmV2
aXNpb24gNzk1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0
ZXJhdG9ySUNVLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUg
PHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKK3VzaW5nIG5h
bWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFRleHRCcmVha0l0
ZXJhdG9yKiBzZXRVcEl0ZXJhdG9yKGJvb2wmIGNyZWF0ZWRJdGVyYXRvciwgVGV4dEJyZWFrSXRl
cmF0b3IqJiBpdGVyYXRvciwKQEAgLTY4LDEyICs3MCwzNCBAQCBUZXh0QnJlYWtJdGVyYXRvciog
d29yZEJyZWFrSXRlcmF0b3IoY29uCiAgICAgICAgIHN0YXRpY1dvcmRCcmVha0l0ZXJhdG9yLCBV
QlJLX1dPUkQsIHN0cmluZywgbGVuZ3RoKTsKIH0KIAotVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVC
cmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCitzdGF0aWMgYm9v
bCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKK3N0YXRpYyBUZXh0QnJlYWtJdGVy
YXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7CisKK1RleHRCcmVha0l0ZXJhdG9yKiBhY3F1
aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKK3sK
KyAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IgPSAwOworICAgIGlmICgh
Y3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yIHx8IHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yKSB7Cisg
ICAgICAgIHNldFVwSXRlcmF0b3IoY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yLCBzdGF0aWNMaW5l
QnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgICAgIHN3YXAo
c3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIGxpbmVCcmVha0l0ZXJhdG9yKTsKKyAgICB9CisKKyAg
ICBpZiAoIWxpbmVCcmVha0l0ZXJhdG9yKSB7CisgICAgICAgIGJvb2wgY3JlYXRlZE5ld0xpbmVC
cmVha0l0ZXJhdG9yID0gZmFsc2U7CisgICAgICAgIHNldFVwSXRlcmF0b3IoY3JlYXRlZE5ld0xp
bmVCcmVha0l0ZXJhdG9yLCBsaW5lQnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJpbmcsIGxl
bmd0aCk7CisgICAgfQorCisgICAgcmV0dXJuIGxpbmVCcmVha0l0ZXJhdG9yOworfQorCit2b2lk
IHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiB7
Ci0gICAgc3RhdGljIGJvb2wgY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yID0gZmFsc2U7Ci0gICAg
c3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICBy
ZXR1cm4gc2V0VXBJdGVyYXRvcihjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IsCi0gICAgICAgIHN0
YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBVQlJLX0xJTkUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICBB
U1NFUlQoY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yKTsKKyAgICBBU1NFUlQoaXRlcmF0b3IpOwor
CisgICAgaWYgKCFzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcikKKyAgICAgICAgc3RhdGljTGluZUJy
ZWFrSXRlcmF0b3IgPSBpdGVyYXRvcjsKKyAgICBlbHNlCisgICAgICAgIHVicmtfY2xvc2UocmVp
bnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKSk7CiB9CiAKIFRleHRCcmVh
a0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50
IGxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFr
SXRlcmF0b3JRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAkocmV2aXNpb24gNzk1NzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAjZGVmaW5lIERFQlVHIGlmICgxKSB7fSBlbHNlIHFE
ZWJ1ZwogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogI2lmIFVTRShRVF9JQ1VfVEVYVF9CUkVBS0lORykKQEAgLTgwLDEwICs4MiwzMCBAQCBj
b25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQogICAgICAgICByZXR1cm4gY2hh
cmFjdGVyQnJlYWtJdGVyYXRvcihzdHJpbmcsIGxlbmd0aCk7CiAgICAgfQogCi0gICAgVGV4dEJy
ZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBs
ZW5ndGgpCisgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVy
YXRvcjsKKworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3Io
Y29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBU
ZXh0QnJlYWtJdGVyYXRvciBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICAgICAgcmV0dXJu
IHNldFVwSXRlcmF0b3Ioc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5k
ZXI6OkxpbmUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxp
bmVCcmVha0l0ZXJhdG9yID0gMDsKKyAgICAgICAgaWYgKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9y
KSB7CisgICAgICAgICAgICBzZXRVcEl0ZXJhdG9yKCpzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwg
UVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3RyaW5nLCBsZW5ndGgpOworICAgICAgICAgICAg
c3dhcChzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgbGluZUJyZWFrSXRlcmF0b3IpOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKCFsaW5lQnJlYWtJdGVyYXRvciAmJiBzdHJpbmcgJiYgbGVuZ3Ro
KQorICAgICAgICAgICAgbGluZUJyZWFrSXRlcmF0b3IgPSBuZXcgVGV4dEJyZWFrSXRlcmF0b3Io
dHlwZSwgUVN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IFFDaGFyKj4oc3RyaW5nKSwgbGVu
Z3RoKSk7CisKKyAgICAgICAgcmV0dXJuIGxpbmVCcmVha0l0ZXJhdG9yOworICAgIH0KKworICAg
IHZvaWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRv
cikKKyAgICB7CisgICAgICAgIEFTU0VSVChpdGVyYXRvcik7CisKKyAgICAgICAgaWYgKCFzdGF0
aWNMaW5lQnJlYWtJdGVyYXRvcikKKyAgICAgICAgICAgIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9y
ID0gaXRlcmF0b3I7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRlbGV0ZSBpdGVyYXRvcjsK
ICAgICB9CiAKICAgICBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKGNv
bnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suaAkocmV2aXNpb24gNzk1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb2x1bW5JbmZvOwogY2xhc3MgSW5saW5lSXRlcmF0b3I7
CiBjbGFzcyBMYXlvdXRTdGF0ZU1haW50YWluZXI7CitjbGFzcyBMYXp5TGluZUJyZWFrSXRlcmF0
b3I7CiBjbGFzcyBSZW5kZXJJbmxpbmU7CiAKIHN0cnVjdCBCaWRpUnVuOwpAQCAtNDg2LDcgKzQ4
Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBza2lwVHJhaWxpbmdXaGl0ZXNwYWNlKElubGluZUl0
ZXJhdG9yJiwgYm9vbCBpc0xpbmVFbXB0eSwgYm9vbCBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHkp
OwogICAgIGludCBza2lwTGVhZGluZ1doaXRlc3BhY2UoSW5saW5lQmlkaVJlc29sdmVyJiwgYm9v
bCBmaXJzdExpbmUsIGJvb2wgaXNMaW5lRW1wdHksIGJvb2wgcHJldmlvdXNMaW5lQnJva2VDbGVh
bmx5LCBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSk7CiAgICAgdm9p
ZCBmaXRCZWxvd0Zsb2F0cyhmbG9hdCB3aWR0aFRvRml0LCBib29sIGZpcnN0TGluZSwgZmxvYXQm
IGF2YWlsYWJsZVdpZHRoKTsKLSAgICBJbmxpbmVJdGVyYXRvciBmaW5kTmV4dExpbmVCcmVhayhJ
bmxpbmVCaWRpUmVzb2x2ZXImLCBib29sIGZpcnN0TGluZSwgYm9vbCYgaXNMaW5lRW1wdHksIGJv
b2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgYm9vbCYgaHlwaGVuYXRlZCwgRUNsZWFyKiwg
RmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOworICAgIHR5cGVkZWYg
c3RkOjpwYWlyPFJlbmRlclRleHQqLCBMYXp5TGluZUJyZWFrSXRlcmF0b3I+IExpbmVCcmVha0l0
ZXJhdG9ySW5mbzsKKyAgICBJbmxpbmVJdGVyYXRvciBmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVC
aWRpUmVzb2x2ZXImLCBib29sIGZpcnN0TGluZSwgYm9vbCYgaXNMaW5lRW1wdHksIExpbmVCcmVh
a0l0ZXJhdG9ySW5mbyYsIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgYm9vbCYgaHlw
aGVuYXRlZCwgRUNsZWFyKiwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xp
bmUpOwogICAgIFJvb3RJbmxpbmVCb3gqIGNvbnN0cnVjdExpbmUodW5zaWduZWQgcnVuQ291bnQs
IEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiBsYXN0UnVuLCBib29sIGZpcnN0TGluZSwgYm9v
bCBsYXN0TGluZSwgUmVuZGVyT2JqZWN0KiBlbmRPYmplY3QpOwogICAgIElubGluZUZsb3dCb3gq
IGNyZWF0ZUxpbmVCb3hlcyhSZW5kZXJPYmplY3QqLCBib29sIGZpcnN0TGluZSk7CiAgICAgdm9p
ZCBjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5saW5lQm94Kiwg
Ym9vbCBmaXJzdExpbmUsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiB0cmFpbGluZ1NwYWNl
UnVuLCBib29sIHJlYWNoZWRFbmQsIEdseXBoT3ZlcmZsb3dBbmRGYWxsYmFja0ZvbnRzTWFwJik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcAkocmV2aXNpb24gNzk1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIlJlbmRlckxpc3RNYXJrZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3Lmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgog
I2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlICJUcmFpbGluZ0Zsb2F0c1Jvb3RJbmxpbmVC
b3guaCIKICNpbmNsdWRlICJWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUuaCIKQEAgLTY2Miw2ICs2NjMs
NyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVDaGlsZHJlbihiCiAgICAgICAgIGJv
b2wgaXNMaW5lRW1wdHkgPSB0cnVlOwogICAgICAgICBib29sIHBhZ2luYXRlZCA9IHZpZXcoKS0+
bGF5b3V0U3RhdGUoKSAmJiB2aWV3KCktPmxheW91dFN0YXRlKCktPmlzUGFnaW5hdGVkKCk7CiAK
KyAgICAgICAgTGluZUJyZWFrSXRlcmF0b3JJbmZvIGxpbmVCcmVha0l0ZXJhdG9ySW5mbzsKICAg
ICAgICAgVmVydGljYWxQb3NpdGlvbkNhY2hlIHZlcnRpY2FsUG9zaXRpb25DYWNoZTsKIAogICAg
ICAgICB3aGlsZSAoIWVuZC5hdEVuZCgpKSB7CkBAIC02NzgsNyArNjgwLDcgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBJbmxpbmVJdGVyYXRvciBvbGRFbmQgPSBlbmQ7CiAgICAgICAgICAgICBGbG9hdGluZ09iamVj
dCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSA9IG1fZmxvYXRpbmdPYmplY3RzID8gbV9mbG9h
dGluZ09iamVjdHMtPmxhc3QoKSA6IDA7Ci0gICAgICAgICAgICBlbmQgPSBmaW5kTmV4dExpbmVC
cmVhayhyZXNvbHZlciwgZmlyc3RMaW5lLCBpc0xpbmVFbXB0eSwgcHJldmlvdXNMaW5lQnJva2VD
bGVhbmx5LCBoeXBoZW5hdGVkLCAmY2xlYXIsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOwor
ICAgICAgICAgICAgZW5kID0gZmluZE5leHRMaW5lQnJlYWsocmVzb2x2ZXIsIGZpcnN0TGluZSwg
aXNMaW5lRW1wdHksIGxpbmVCcmVha0l0ZXJhdG9ySW5mbywgcHJldmlvdXNMaW5lQnJva2VDbGVh
bmx5LCBoeXBoZW5hdGVkLCAmY2xlYXIsIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOwogICAg
ICAgICAgICAgaWYgKHJlc29sdmVyLnBvc2l0aW9uKCkuYXRFbmQoKSkgewogICAgICAgICAgICAg
ICAgIHJlc29sdmVyLmRlbGV0ZVJ1bnMoKTsKICAgICAgICAgICAgICAgICBjaGVja0ZvckZsb2F0
c0Zyb21MYXN0TGluZSA9IHRydWU7CkBAIC0xNDMyLDcgKzE0MzQsNyBAQCBzdGF0aWMgdm9pZCB0
cnlIeXBoZW5hdGluZyhSZW5kZXJUZXh0KiB0CiAgICAgaHlwaGVuYXRlZCA9IHRydWU7CiB9CiAK
LUlubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRp
UmVzb2x2ZXImIHJlc29sdmVyLCBib29sIGZpcnN0TGluZSwgIGJvb2wmIGlzTGluZUVtcHR5LCBi
b29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIAorSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxv
Y2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wg
Zmlyc3RMaW5lLCBib29sJiBpc0xpbmVFbXB0eSwgTGluZUJyZWFrSXRlcmF0b3JJbmZvJiBsaW5l
QnJlYWtJdGVyYXRvckluZm8sIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCYgaHlwaGVuYXRl
ZCwgRUNsZWFyKiBjbGVhciwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xp
bmUpCiB7CiAgICAgQVNTRVJUKHJlc29sdmVyLnBvc2l0aW9uKCkuYmxvY2sgPT0gdGhpcyk7CkBA
IC0xNzIzLDcgKzE3MjUsMTIgQEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0
TGluZQogICAgICAgICAgICAgICAgICAgICBtaWRXb3JkQnJlYWsgPSB3ICsgd3JhcFcgKyBjaGFy
V2lkdGggPiB3aWR0aDsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBib29s
IGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldTICE9IFBSRSAmJiAhYXRTdGFydCAm
JiBpc0JyZWFrYWJsZShzdHIsIHBvcywgc3RybGVuLCBuZXh0QnJlYWthYmxlLCBicmVha05CU1Ap
ICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhlbnNOb25lIHx8IChwb3MgJiYgc3RyW3BvcyAt
IDFdICE9IHNvZnRIeXBoZW4pKSk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmVCcmVha0l0ZXJh
dG9ySW5mby5maXJzdCAhPSB0KSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmVCcmVha0l0ZXJh
dG9ySW5mby5maXJzdCA9IHQ7CisgICAgICAgICAgICAgICAgICAgIGxpbmVCcmVha0l0ZXJhdG9y
SW5mby5zZWNvbmQucmVzZXQoc3RyLCBzdHJsZW4pOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIGJvb2wgYmV0d2VlbldvcmRzID0gYyA9PSAnXG4nIHx8IChjdXJyV1MgIT0g
UFJFICYmICFhdFN0YXJ0ICYmIGlzQnJlYWthYmxlKGxpbmVCcmVha0l0ZXJhdG9ySW5mby5zZWNv
bmQsIHBvcywgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSAmJiAoc3R5bGUtPmh5cGhlbnMoKSAh
PSBIeXBoZW5zTm9uZSB8fCAocG9zICYmIHN0cltwb3MgLSAxXSAhPSBzb2Z0SHlwaGVuKSkpOwog
CiAgICAgICAgICAgICAgICAgaWYgKGJldHdlZW5Xb3JkcyB8fCBtaWRXb3JkQnJlYWspIHsKICAg
ICAgICAgICAgICAgICAgICAgYm9vbCBzdG9wcGVkSWdub3JpbmdTcGFjZXMgPSBmYWxzZTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDc5NTc0
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03NDgsNiArNzQ4LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVk
TG9naWNhbAogICAgIGZsb2F0IHdvcmRTcGFjaW5nID0gc3R5bGUoKS0+d29yZFNwYWNpbmcoKTsK
ICAgICBpbnQgbGVuID0gdGV4dExlbmd0aCgpOwogICAgIGNvbnN0IFVDaGFyKiB0eHQgPSBjaGFy
YWN0ZXJzKCk7CisgICAgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIGJyZWFrSXRlcmF0b3IodHh0LCBs
ZW4pOwogICAgIGJvb2wgbmVlZHNXb3JkU3BhY2luZyA9IGZhbHNlOwogICAgIGJvb2wgaWdub3Jp
bmdTcGFjZXMgPSBmYWxzZTsKICAgICBib29sIGlzU3BhY2UgPSBmYWxzZTsKQEAgLTgwNyw3ICs4
MDgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsCiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgaGFzQnJlYWsgPSBicmVh
a0FsbCB8fCBpc0JyZWFrYWJsZSh0eHQsIGksIGxlbiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQ
KTsKKyAgICAgICAgYm9vbCBoYXNCcmVhayA9IGJyZWFrQWxsIHx8IGlzQnJlYWthYmxlKGJyZWFr
SXRlcmF0b3IsIGksIG5leHRCcmVha2FibGUsIGJyZWFrTkJTUCk7CiAgICAgICAgIGJvb2wgYmV0
d2VlbldvcmRzID0gdHJ1ZTsKICAgICAgICAgaW50IGogPSBpOwogICAgICAgICB3aGlsZSAoYyAh
PSAnXG4nICYmICFpc1NwYWNlQWNjb3JkaW5nVG9TdHlsZShjLCBzdHlsZSgpKSAmJiBjICE9ICdc
dCcgJiYgYyAhPSBzb2Z0SHlwaGVuKSB7CkBAIC04MTUsNyArODE2LDcgQEAgdm9pZCBSZW5kZXJU
ZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAogICAgICAgICAgICAgaWYgKGogPT0gbGVuKQog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgYyA9IHR4dFtqXTsKLSAgICAgICAg
ICAgIGlmIChpc0JyZWFrYWJsZSh0eHQsIGosIGxlbiwgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQ
KSkKKyAgICAgICAgICAgIGlmIChpc0JyZWFrYWJsZShicmVha0l0ZXJhdG9yLCBqLCBuZXh0QnJl
YWthYmxlLCBicmVha05CU1ApKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
aWYgKGJyZWFrQWxsKSB7CiAgICAgICAgICAgICAgICAgYmV0d2VlbldvcmRzID0gZmFsc2U7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19saW5lcy5jcHAJKHJldmlzaW9uIDc5
NTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTU0LDExICsxNTQsMTAgQEAgc3RhdGljIGlubGluZSBUZXh0QnJlYWtMb2Nh
dG9yUmVmIGxpbmVCcgogfQogI2VuZGlmCiAKLWludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oY29u
c3QgVUNoYXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgYm9vbCB0cmVhdE5vQnJlYWtTcGFjZUFz
QnJlYWspCitpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKExhenlMaW5lQnJlYWtJdGVyYXRvciYg
bGF6eUJyZWFrSXRlcmF0b3IsIGludCBwb3MsIGJvb2wgdHJlYXROb0JyZWFrU3BhY2VBc0JyZWFr
KQogewotI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKQot
ICAgIFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yID0gMDsKLSNlbmRpZgorICAgIGNv
bnN0IFVDaGFyKiBzdHIgPSBsYXp5QnJlYWtJdGVyYXRvci5zdHJpbmcoKTsKKyAgICBpbnQgbGVu
ID0gbGF6eUJyZWFrSXRlcmF0b3IubGVuZ3RoKCk7CiAgICAgaW50IG5leHRCcmVhayA9IC0xOwog
CiAgICAgVUNoYXIgbGFzdENoID0gcG9zID4gMCA/IHN0cltwb3MgLSAxXSA6IDA7CkBAIC0xNzEs
OCArMTcwLDcgQEAgaW50IG5leHRCcmVha2FibGVQb3NpdGlvbihjb25zdCBVQ2hhciogcwogICAg
ICAgICBpZiAobmVlZHNMaW5lQnJlYWtJdGVyYXRvcihjaCkgfHwgbmVlZHNMaW5lQnJlYWtJdGVy
YXRvcihsYXN0Q2gpKSB7CiAgICAgICAgICAgICBpZiAobmV4dEJyZWFrIDwgaSAmJiBpKSB7CiAj
aWYgIVBMQVRGT1JNKE1BQykgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpCi0gICAgICAg
ICAgICAgICAgaWYgKCFicmVha0l0ZXJhdG9yKQotICAgICAgICAgICAgICAgICAgICBicmVha0l0
ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3Ioc3RyLCBsZW4pOworICAgICAgICAgICAgICAgIFRl
eHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yID0gbGF6eUJyZWFrSXRlcmF0b3IuZ2V0KCk7
CiAgICAgICAgICAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3IpCiAgICAgICAgICAgICAgICAgICAg
IG5leHRCcmVhayA9IHRleHRCcmVha0ZvbGxvd2luZyhicmVha0l0ZXJhdG9yLCBpIC0gMSk7CiAj
ZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHJldmlzaW9u
IDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2JyZWFrX2xpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI1LDE0ICsyNSwxNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAg
ICBpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0IFVDaGFyKiwgaW50IHBvcywgaW50IGxl
biwgYm9vbCBicmVha05CU1AgPSBmYWxzZSk7CitjbGFzcyBMYXp5TGluZUJyZWFrSXRlcmF0b3I7
CiAKLSAgICBpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShjb25zdCBVQ2hhciogc3RyLCBpbnQgcG9z
LCBpbnQgbGVuLCBpbnQmIG5leHRCcmVha2FibGUsIGJvb2wgYnJlYWtOQlNQID0gZmFsc2UpCi0g
ICAgewotICAgICAgICBpZiAocG9zID4gbmV4dEJyZWFrYWJsZSkKLSAgICAgICAgICAgIG5leHRC
cmVha2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24oc3RyLCBwb3MsIGxlbiwgYnJlYWtOQlNQ
KTsKLSAgICAgICAgcmV0dXJuIHBvcyA9PSBuZXh0QnJlYWthYmxlOwotICAgIH0KK2ludCBuZXh0
QnJlYWthYmxlUG9zaXRpb24oTGF6eUxpbmVCcmVha0l0ZXJhdG9yJiwgaW50IHBvcywgYm9vbCBi
cmVha05CU1AgPSBmYWxzZSk7CisKK2lubGluZSBib29sIGlzQnJlYWthYmxlKExhenlMaW5lQnJl
YWtJdGVyYXRvciYgbGF6eUJyZWFrSXRlcmF0b3IsIGludCBwb3MsIGludCYgbmV4dEJyZWFrYWJs
ZSwgYm9vbCBicmVha05CU1AgPSBmYWxzZSkKK3sKKyAgICBpZiAocG9zID4gbmV4dEJyZWFrYWJs
ZSkKKyAgICAgICAgbmV4dEJyZWFrYWJsZSA9IG5leHRCcmVha2FibGVQb3NpdGlvbihsYXp5QnJl
YWtJdGVyYXRvciwgcG9zLCBicmVha05CU1ApOworICAgIHJldHVybiBwb3MgPT0gbmV4dEJyZWFr
YWJsZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83709</attachid>
            <date>2011-02-24 13:37:48 -0800</date>
            <delta_ts>2011-02-24 23:21:01 -0800</delta_ts>
            <desc>Changes for Qt.</desc>
            <filename>ubrk_setText-reapplied-qt-fix.txt</filename>
            <type>text/plain</type>
            <size>17101</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDItMjQgIE5lZCBIb2xi
cm9vayAgPG5ob2xicm9va0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWluaW1pemUgY2FsbHMgdG8gdWJya19zZXRUZXh0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0OTEyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS85MDMyNzc0PgorCisgICAgICAgIEF2b2lkIGNhbGxpbmcgdWJy
a19zZXRUZXh0KCkgb25jZSBwZXIgY2FsbCB0byBpc0JyZWFrYWJsZSgpIGJ5IHVzaW5nIGEgTGF6
eUxpbmVCcmVha0l0ZXJhdG9yLCB3aGljaCBkZWZlcnMKKyAgICAgICAgYnJlYWsgaXRlcmF0b3Ig
Y3JlYXRpb24gdW50aWwgbmVlZGVkLiBUaGlzIHJlcXVpcmVzIHJlcGxhY2luZyB0aGUgZ2xvYmFs
IGxpbmUgYnJlYWsgaXRlcmF0b3IgcHJpbWl0aXZlIHdpdGggYQorICAgICAgICB2ZXJzaW9uIHRo
YXQgY2FuIGJlIG5lc3RlZCwgc2luY2UgaW4gc29tZSBjYXNlcyB0d28gaXRlcmF0b3JzIG1heSBu
ZWVkIHRvIGJlIG91dHN0YW5kaW5nLiBJbiBwYXJ0aWN1bGFyLAorICAgICAgICBsYXlvdXRJbmxp
bmVDaGlsZHJlbigpIG1heSBpbmRpcmVjdGx5IGNhbGwgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoKSBhbmQgZWFjaCBtYXkgbmVlZCBhbiBpdGVyYXRvci4KKyAgICAgICAgSW4gYSB0ZXN0
IHdpdGggYSBwYXJhZ3JhcGggb2YgSmFwYW5lc2UgdGV4dCwgdGhpcyByZWR1Y2VkIHRoZSBudW1i
ZXIgb2YgdWJya19zZXRUZXh0KCkgY2FsbHMgZnJvbSAxNjQgdG8gMS4KKworICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDogQWRkIExhenlMaW5lQnJlYWtJdGVyYXRv
ci4KKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6TGF6eUxpbmVCcmVh
a0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6fkxh
enlMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRl
cmF0b3I6OnN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6
Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OmdldCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OnJlc2V0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcDogUmVwbGFjZSBsaW5l
QnJlYWtJdGVyYXRvcigpIHByaW1pdGl2ZSB3aXRoIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcigp
L3JlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcigpLgorICAgICAgICAoV2ViQ29yZTo6YWNxdWlyZUxp
bmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJlYWtJdGVy
YXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNw
cDogRGl0dG8gVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6YWNx
dWlyZUxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJl
YWtJdGVyYXRvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4pOiBQYXNzIGEgbWFwcGluZyBvZiBS
ZW5kZXJUZXh0IHRvIExhenlMaW5lQnJlYWtJdGVyYXRvciBmcm9tIG9uZSBjYWxsIG9mIGZpbmRO
ZXh0TGluZUJyZWFrKCkgdG8gdGhlIG5leHQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6ZmluZE5leHRMaW5lQnJlYWspOiBVc2Ugc2FpZCBtYXBwaW5nLCByZXNldHRpbmcgTGF6eUxp
bmVCcmVha0l0ZXJhdG9yIGZvciBhbnkgbmV3bHktZW5jb3VudGVyZWQgUmVuZGVyVGV4dC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6IFVzZSBhIGxvY2FsIExhenlMaW5lQnJl
YWtJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiByZW5kZXJpbmcvYnJlYWtfbGluZXMuY3BwOiBB
Y2NlcHQgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIHJhdGhlciB0aGFuIFRleHRCcmVha0l0ZXJhdG9y
LgorICAgICAgICAoV2ViQ29yZTo6bmV4dEJyZWFrYWJsZVBvc2l0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvYnJlYWtfbGluZXMuaDogQWNjZXB0IExhenlMaW5lQnJlYWtJdGVyYXRvciByYXRo
ZXIgdGhhbiBUZXh0QnJlYWtJdGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OmlzQnJlYWthYmxl
KToKKwogMjAxMS0wMi0yNCAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAkocmV2aXNpb24gNzk1NzQpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xh
c3MgVGV4dEJyZWFrSXRlcmF0b3I7CiAKLSAgICAvLyBOb3RlOiBUaGUgcmV0dXJuZWQgaXRlcmF0
b3IgaXMgZ29vZCBvbmx5IHVudGlsIHlvdSBnZXQgYW5vdGhlciBpdGVyYXRvci4KKyAgICAvLyBO
b3RlOiBUaGUgcmV0dXJuZWQgaXRlcmF0b3IgaXMgZ29vZCBvbmx5IHVudGlsIHlvdSBnZXQgYW5v
dGhlciBpdGVyYXRvciwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIGFjcXVpcmVMaW5lQnJlYWtJdGVy
YXRvci4KIAogICAgIC8vIEl0ZXJhdGVzIG92ZXIgImV4dGVuZGVkIGdyYXBoZW1lIGNsdXN0ZXJz
IiwgYXMgZGVmaW5lZCBpbiBVQVggIzI5LgogICAgIC8vIE5vdGUgdGhhdCBwbGF0Zm9ybSBpbXBs
ZW1lbnRhdGlvbnMgbWF5IGJlIGxlc3Mgc29waGlzdGljYXRlZCAtIGUuZy4gSUNVIHByaW9yIHRv
CkBAIC00Myw3ICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBUZXh0QnJlYWtJdGVy
YXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOwog
CiAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwg
aW50IGxlbmd0aCk7Ci0gICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNv
bnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVM
aW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgpOworICAgIHZvaWQgcmVs
ZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKik7CiAgICAgVGV4dEJyZWFr
SXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciosIGludCBsZW5ndGgp
OwogCiAgICAgaW50IHRleHRCcmVha0ZpcnN0KFRleHRCcmVha0l0ZXJhdG9yKik7CkBAIC01Nyw2
ICs1OCw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjb25zdCBpbnQgVGV4dEJyZWFr
RG9uZSA9IC0xOwogCitjbGFzcyBMYXp5TGluZUJyZWFrSXRlcmF0b3IgeworcHVibGljOgorICAg
IExhenlMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nID0gMCwgaW50IGxlbmd0
aCA9IDApCisgICAgICAgIDogbV9zdHJpbmcoc3RyaW5nKQorICAgICAgICAsIG1fbGVuZ3RoKGxl
bmd0aCkKKyAgICAgICAgLCBtX2l0ZXJhdG9yKDApCisgICAgeworICAgIH0KKworICAgIH5MYXp5
TGluZUJyZWFrSXRlcmF0b3IoKQorICAgIHsKKyAgICAgICAgaWYgKG1faXRlcmF0b3IpCisgICAg
ICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IobV9pdGVyYXRvcik7CisgICAgfQorCisg
ICAgY29uc3QgVUNoYXIqIHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nOyB9CisgICAg
aW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKKyAgICBUZXh0QnJlYWtJ
dGVyYXRvciogZ2V0KCkKKyAgICB7CisgICAgICAgIGlmICghbV9pdGVyYXRvcikKKyAgICAgICAg
ICAgIG1faXRlcmF0b3IgPSBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IobV9zdHJpbmcsIG1fbGVu
Z3RoKTsKKyAgICAgICAgcmV0dXJuIG1faXRlcmF0b3I7CisgICAgfQorCisgICAgdm9pZCByZXNl
dChjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgaWYgKG1f
aXRlcmF0b3IpCisgICAgICAgICAgICByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IobV9pdGVyYXRv
cik7CisKKyAgICAgICAgbV9zdHJpbmcgPSBzdHJpbmc7CisgICAgICAgIG1fbGVuZ3RoID0gbGVu
Z3RoOworICAgICAgICBtX2l0ZXJhdG9yID0gMDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29u
c3QgVUNoYXIqIG1fc3RyaW5nOworICAgIGludCBtX2xlbmd0aDsKKyAgICBUZXh0QnJlYWtJdGVy
YXRvciogbV9pdGVyYXRvcjsKK307CisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkocmV2
aXNpb24gNzk1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0
ZXJhdG9ySUNVLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUg
PHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKK3VzaW5nIG5h
bWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFRleHRCcmVha0l0
ZXJhdG9yKiBzZXRVcEl0ZXJhdG9yKGJvb2wmIGNyZWF0ZWRJdGVyYXRvciwgVGV4dEJyZWFrSXRl
cmF0b3IqJiBpdGVyYXRvciwKQEAgLTY4LDEyICs3MCwzNCBAQCBUZXh0QnJlYWtJdGVyYXRvciog
d29yZEJyZWFrSXRlcmF0b3IoY29uCiAgICAgICAgIHN0YXRpY1dvcmRCcmVha0l0ZXJhdG9yLCBV
QlJLX1dPUkQsIHN0cmluZywgbGVuZ3RoKTsKIH0KIAotVGV4dEJyZWFrSXRlcmF0b3IqIGxpbmVC
cmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCitzdGF0aWMgYm9v
bCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKK3N0YXRpYyBUZXh0QnJlYWtJdGVy
YXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7CisKK1RleHRCcmVha0l0ZXJhdG9yKiBhY3F1
aXJlTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKK3sK
KyAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IgPSAwOworICAgIGlmICgh
Y3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yIHx8IHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yKSB7Cisg
ICAgICAgIHNldFVwSXRlcmF0b3IoY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yLCBzdGF0aWNMaW5l
QnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgICAgIHN3YXAo
c3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIGxpbmVCcmVha0l0ZXJhdG9yKTsKKyAgICB9CisKKyAg
ICBpZiAoIWxpbmVCcmVha0l0ZXJhdG9yKSB7CisgICAgICAgIGJvb2wgY3JlYXRlZE5ld0xpbmVC
cmVha0l0ZXJhdG9yID0gZmFsc2U7CisgICAgICAgIHNldFVwSXRlcmF0b3IoY3JlYXRlZE5ld0xp
bmVCcmVha0l0ZXJhdG9yLCBsaW5lQnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJpbmcsIGxl
bmd0aCk7CisgICAgfQorCisgICAgcmV0dXJuIGxpbmVCcmVha0l0ZXJhdG9yOworfQorCit2b2lk
IHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiB7
Ci0gICAgc3RhdGljIGJvb2wgY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yID0gZmFsc2U7Ci0gICAg
c3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICBy
ZXR1cm4gc2V0VXBJdGVyYXRvcihjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IsCi0gICAgICAgIHN0
YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBVQlJLX0xJTkUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICBB
U1NFUlQoY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yKTsKKyAgICBBU1NFUlQoaXRlcmF0b3IpOwor
CisgICAgaWYgKCFzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcikKKyAgICAgICAgc3RhdGljTGluZUJy
ZWFrSXRlcmF0b3IgPSBpdGVyYXRvcjsKKyAgICBlbHNlCisgICAgICAgIHVicmtfY2xvc2UocmVp
bnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKSk7CiB9CiAKIFRleHRCcmVh
a0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50
IGxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFr
SXRlcmF0b3JRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9xdC9UZXh0QnJlYWtJdGVyYXRvclF0LmNwcAkocmV2aXNpb24gNzk1NzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAjZGVmaW5lIERFQlVHIGlmICgxKSB7fSBlbHNlIHFE
ZWJ1ZwogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogI2lmIFVTRShRVF9JQ1VfVEVYVF9CUkVBS0lORykKQEAgLTgwLDEwICs4MiwzMCBAQCBj
b25zdCBjaGFyKiBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKQogICAgICAgICByZXR1cm4gY2hh
cmFjdGVyQnJlYWtJdGVyYXRvcihzdHJpbmcsIGxlbmd0aCk7CiAgICAgfQogCi0gICAgVGV4dEJy
ZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBs
ZW5ndGgpCisgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVy
YXRvcjsKKworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3Io
Y29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBU
ZXh0QnJlYWtJdGVyYXRvciBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKLSAgICAgICAgcmV0dXJu
IHNldFVwSXRlcmF0b3Ioc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5k
ZXI6OkxpbmUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICAgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGxp
bmVCcmVha0l0ZXJhdG9yID0gMDsKKyAgICAgICAgaWYgKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9y
KSB7CisgICAgICAgICAgICBzZXRVcEl0ZXJhdG9yKCpzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwg
UVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgc3RyaW5nLCBsZW5ndGgpOworICAgICAgICAgICAg
c3dhcChzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciwgbGluZUJyZWFrSXRlcmF0b3IpOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKCFsaW5lQnJlYWtJdGVyYXRvciAmJiBzdHJpbmcgJiYgbGVuZ3Ro
KQorICAgICAgICAgICAgbGluZUJyZWFrSXRlcmF0b3IgPSBuZXcgVGV4dEJyZWFrSXRlcmF0b3Io
UVRleHRCb3VuZGFyeUZpbmRlcjo6TGluZSwgUVN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0
IFFDaGFyKj4oc3RyaW5nKSwgbGVuZ3RoKSk7CisKKyAgICAgICAgcmV0dXJuIGxpbmVCcmVha0l0
ZXJhdG9yOworICAgIH0KKworICAgIHZvaWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRC
cmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKKyAgICB7CisgICAgICAgIEFTU0VSVChpdGVyYXRvcik7
CisKKyAgICAgICAgaWYgKCFzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcikKKyAgICAgICAgICAgIHN0
YXRpY0xpbmVCcmVha0l0ZXJhdG9yID0gaXRlcmF0b3I7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGRlbGV0ZSBpdGVyYXRvcjsKICAgICB9CiAKICAgICBUZXh0QnJlYWtJdGVyYXRvciogc2Vu
dGVuY2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkocmV2aXNpb24gNzk1NzQpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb2x1bW5JbmZvOwog
Y2xhc3MgSW5saW5lSXRlcmF0b3I7CiBjbGFzcyBMYXlvdXRTdGF0ZU1haW50YWluZXI7CitjbGFz
cyBMYXp5TGluZUJyZWFrSXRlcmF0b3I7CiBjbGFzcyBSZW5kZXJJbmxpbmU7CiAKIHN0cnVjdCBC
aWRpUnVuOwpAQCAtNDg2LDcgKzQ4Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBza2lwVHJhaWxp
bmdXaGl0ZXNwYWNlKElubGluZUl0ZXJhdG9yJiwgYm9vbCBpc0xpbmVFbXB0eSwgYm9vbCBwcmV2
aW91c0xpbmVCcm9rZUNsZWFubHkpOwogICAgIGludCBza2lwTGVhZGluZ1doaXRlc3BhY2UoSW5s
aW5lQmlkaVJlc29sdmVyJiwgYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNMaW5lRW1wdHksIGJvb2wg
cHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVBy
ZXZpb3VzTGluZSk7CiAgICAgdm9pZCBmaXRCZWxvd0Zsb2F0cyhmbG9hdCB3aWR0aFRvRml0LCBi
b29sIGZpcnN0TGluZSwgZmxvYXQmIGF2YWlsYWJsZVdpZHRoKTsKLSAgICBJbmxpbmVJdGVyYXRv
ciBmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImLCBib29sIGZpcnN0TGluZSwg
Ym9vbCYgaXNMaW5lRW1wdHksIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgYm9vbCYg
aHlwaGVuYXRlZCwgRUNsZWFyKiwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91
c0xpbmUpOworICAgIHR5cGVkZWYgc3RkOjpwYWlyPFJlbmRlclRleHQqLCBMYXp5TGluZUJyZWFr
SXRlcmF0b3I+IExpbmVCcmVha0l0ZXJhdG9ySW5mbzsKKyAgICBJbmxpbmVJdGVyYXRvciBmaW5k
TmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImLCBib29sIGZpcnN0TGluZSwgYm9vbCYg
aXNMaW5lRW1wdHksIExpbmVCcmVha0l0ZXJhdG9ySW5mbyYsIGJvb2wmIHByZXZpb3VzTGluZUJy
b2tlQ2xlYW5seSwgYm9vbCYgaHlwaGVuYXRlZCwgRUNsZWFyKiwgRmxvYXRpbmdPYmplY3QqIGxh
c3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOwogICAgIFJvb3RJbmxpbmVCb3gqIGNvbnN0cnVjdExp
bmUodW5zaWduZWQgcnVuQ291bnQsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiBsYXN0UnVu
LCBib29sIGZpcnN0TGluZSwgYm9vbCBsYXN0TGluZSwgUmVuZGVyT2JqZWN0KiBlbmRPYmplY3Qp
OwogICAgIElubGluZUZsb3dCb3gqIGNyZWF0ZUxpbmVCb3hlcyhSZW5kZXJPYmplY3QqLCBib29s
IGZpcnN0TGluZSk7CiAgICAgdm9pZCBjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9y
TGluZShSb290SW5saW5lQm94KiwgYm9vbCBmaXJzdExpbmUsIEJpZGlSdW4qIGZpcnN0UnVuLCBC
aWRpUnVuKiB0cmFpbGluZ1NwYWNlUnVuLCBib29sIHJlYWNoZWRFbmQsIEdseXBoT3ZlcmZsb3dB
bmRGYWxsYmFja0ZvbnRzTWFwJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gNzk1NzQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RNYXJrZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJU
ZXh0QnJlYWtJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlICJUcmFp
bGluZ0Zsb2F0c1Jvb3RJbmxpbmVCb3guaCIKICNpbmNsdWRlICJWZXJ0aWNhbFBvc2l0aW9uQ2Fj
aGUuaCIKQEAgLTY2Miw2ICs2NjMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxpbmVD
aGlsZHJlbihiCiAgICAgICAgIGJvb2wgaXNMaW5lRW1wdHkgPSB0cnVlOwogICAgICAgICBib29s
IHBhZ2luYXRlZCA9IHZpZXcoKS0+bGF5b3V0U3RhdGUoKSAmJiB2aWV3KCktPmxheW91dFN0YXRl
KCktPmlzUGFnaW5hdGVkKCk7CiAKKyAgICAgICAgTGluZUJyZWFrSXRlcmF0b3JJbmZvIGxpbmVC
cmVha0l0ZXJhdG9ySW5mbzsKICAgICAgICAgVmVydGljYWxQb3NpdGlvbkNhY2hlIHZlcnRpY2Fs
UG9zaXRpb25DYWNoZTsKIAogICAgICAgICB3aGlsZSAoIWVuZC5hdEVuZCgpKSB7CkBAIC02Nzgs
NyArNjgwLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBJbmxpbmVJdGVyYXRvciBvbGRFbmQgPSBlbmQ7CiAgICAg
ICAgICAgICBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSA9IG1fZmxv
YXRpbmdPYmplY3RzID8gbV9mbG9hdGluZ09iamVjdHMtPmxhc3QoKSA6IDA7Ci0gICAgICAgICAg
ICBlbmQgPSBmaW5kTmV4dExpbmVCcmVhayhyZXNvbHZlciwgZmlyc3RMaW5lLCBpc0xpbmVFbXB0
eSwgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCBoeXBoZW5hdGVkLCAmY2xlYXIsIGxhc3RGbG9h
dEZyb21QcmV2aW91c0xpbmUpOworICAgICAgICAgICAgZW5kID0gZmluZE5leHRMaW5lQnJlYWso
cmVzb2x2ZXIsIGZpcnN0TGluZSwgaXNMaW5lRW1wdHksIGxpbmVCcmVha0l0ZXJhdG9ySW5mbywg
cHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCBoeXBoZW5hdGVkLCAmY2xlYXIsIGxhc3RGbG9hdEZy
b21QcmV2aW91c0xpbmUpOwogICAgICAgICAgICAgaWYgKHJlc29sdmVyLnBvc2l0aW9uKCkuYXRF
bmQoKSkgewogICAgICAgICAgICAgICAgIHJlc29sdmVyLmRlbGV0ZVJ1bnMoKTsKICAgICAgICAg
ICAgICAgICBjaGVja0ZvckZsb2F0c0Zyb21MYXN0TGluZSA9IHRydWU7CkBAIC0xNDMyLDcgKzE0
MzQsNyBAQCBzdGF0aWMgdm9pZCB0cnlIeXBoZW5hdGluZyhSZW5kZXJUZXh0KiB0CiAgICAgaHlw
aGVuYXRlZCA9IHRydWU7CiB9CiAKLUlubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4
dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sIGZpcnN0TGluZSwg
IGJvb2wmIGlzTGluZUVtcHR5LCBib29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIAorSW5s
aW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJpZGlSZXNv
bHZlciYgcmVzb2x2ZXIsIGJvb2wgZmlyc3RMaW5lLCBib29sJiBpc0xpbmVFbXB0eSwgTGluZUJy
ZWFrSXRlcmF0b3JJbmZvJiBsaW5lQnJlYWtJdGVyYXRvckluZm8sIGJvb2wmIHByZXZpb3VzTGlu
ZUJyb2tlQ2xlYW5seSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbCYgaHlwaGVuYXRlZCwgRUNsZWFyKiBjbGVhciwgRmxvYXRpbmdPYmplY3QqIGxh
c3RGbG9hdEZyb21QcmV2aW91c0xpbmUpCiB7CiAgICAgQVNTRVJUKHJlc29sdmVyLnBvc2l0aW9u
KCkuYmxvY2sgPT0gdGhpcyk7CkBAIC0xNzIzLDcgKzE3MjUsMTIgQEAgSW5saW5lSXRlcmF0b3Ig
UmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZQogICAgICAgICAgICAgICAgICAgICBtaWRXb3JkQnJl
YWsgPSB3ICsgd3JhcFcgKyBjaGFyV2lkdGggPiB3aWR0aDsKICAgICAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgICAgICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3VycldT
ICE9IFBSRSAmJiAhYXRTdGFydCAmJiBpc0JyZWFrYWJsZShzdHIsIHBvcywgc3RybGVuLCBuZXh0
QnJlYWthYmxlLCBicmVha05CU1ApICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhlbnNOb25l
IHx8IChwb3MgJiYgc3RyW3BvcyAtIDFdICE9IHNvZnRIeXBoZW4pKSk7CisgICAgICAgICAgICAg
ICAgaWYgKGxpbmVCcmVha0l0ZXJhdG9ySW5mby5maXJzdCAhPSB0KSB7CisgICAgICAgICAgICAg
ICAgICAgIGxpbmVCcmVha0l0ZXJhdG9ySW5mby5maXJzdCA9IHQ7CisgICAgICAgICAgICAgICAg
ICAgIGxpbmVCcmVha0l0ZXJhdG9ySW5mby5zZWNvbmQucmVzZXQoc3RyLCBzdHJsZW4pOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGJvb2wgYmV0d2VlbldvcmRzID0gYyA9
PSAnXG4nIHx8IChjdXJyV1MgIT0gUFJFICYmICFhdFN0YXJ0ICYmIGlzQnJlYWthYmxlKGxpbmVC
cmVha0l0ZXJhdG9ySW5mby5zZWNvbmQsIHBvcywgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSAm
JiAoc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5zTm9uZSB8fCAocG9zICYmIHN0cltwb3MgLSAx
XSAhPSBzb2Z0SHlwaGVuKSkpOwogCiAgICAgICAgICAgICAgICAgaWYgKGJldHdlZW5Xb3JkcyB8
fCBtaWRXb3JkQnJlYWspIHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBzdG9wcGVkSWdub3Jp
bmdTcGFjZXMgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAJKHJldmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDgsNiArNzQ4LDcgQEAgdm9pZCBSZW5kZXJU
ZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAogICAgIGZsb2F0IHdvcmRTcGFjaW5nID0gc3R5
bGUoKS0+d29yZFNwYWNpbmcoKTsKICAgICBpbnQgbGVuID0gdGV4dExlbmd0aCgpOwogICAgIGNv
bnN0IFVDaGFyKiB0eHQgPSBjaGFyYWN0ZXJzKCk7CisgICAgTGF6eUxpbmVCcmVha0l0ZXJhdG9y
IGJyZWFrSXRlcmF0b3IodHh0LCBsZW4pOwogICAgIGJvb2wgbmVlZHNXb3JkU3BhY2luZyA9IGZh
bHNlOwogICAgIGJvb2wgaWdub3JpbmdTcGFjZXMgPSBmYWxzZTsKICAgICBib29sIGlzU3BhY2Ug
PSBmYWxzZTsKQEAgLTgwNyw3ICs4MDgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAg
IGJvb2wgaGFzQnJlYWsgPSBicmVha0FsbCB8fCBpc0JyZWFrYWJsZSh0eHQsIGksIGxlbiwgbmV4
dEJyZWFrYWJsZSwgYnJlYWtOQlNQKTsKKyAgICAgICAgYm9vbCBoYXNCcmVhayA9IGJyZWFrQWxs
IHx8IGlzQnJlYWthYmxlKGJyZWFrSXRlcmF0b3IsIGksIG5leHRCcmVha2FibGUsIGJyZWFrTkJT
UCk7CiAgICAgICAgIGJvb2wgYmV0d2VlbldvcmRzID0gdHJ1ZTsKICAgICAgICAgaW50IGogPSBp
OwogICAgICAgICB3aGlsZSAoYyAhPSAnXG4nICYmICFpc1NwYWNlQWNjb3JkaW5nVG9TdHlsZShj
LCBzdHlsZSgpKSAmJiBjICE9ICdcdCcgJiYgYyAhPSBzb2Z0SHlwaGVuKSB7CkBAIC04MTUsNyAr
ODE2LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAogICAgICAg
ICAgICAgaWYgKGogPT0gbGVuKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
YyA9IHR4dFtqXTsKLSAgICAgICAgICAgIGlmIChpc0JyZWFrYWJsZSh0eHQsIGosIGxlbiwgbmV4
dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSkKKyAgICAgICAgICAgIGlmIChpc0JyZWFrYWJsZShicmVh
a0l0ZXJhdG9yLCBqLCBuZXh0QnJlYWthYmxlLCBicmVha05CU1ApKQogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgaWYgKGJyZWFrQWxsKSB7CiAgICAgICAgICAgICAgICAgYmV0
d2VlbldvcmRzID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJlYWtf
bGluZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVha19s
aW5lcy5jcHAJKHJldmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2Jy
ZWFrX2xpbmVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDExICsxNTQsMTAgQEAgc3RhdGlj
IGlubGluZSBUZXh0QnJlYWtMb2NhdG9yUmVmIGxpbmVCcgogfQogI2VuZGlmCiAKLWludCBuZXh0
QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwgYm9v
bCB0cmVhdE5vQnJlYWtTcGFjZUFzQnJlYWspCitpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKExh
enlMaW5lQnJlYWtJdGVyYXRvciYgbGF6eUJyZWFrSXRlcmF0b3IsIGludCBwb3MsIGJvb2wgdHJl
YXROb0JyZWFrU3BhY2VBc0JyZWFrKQogewotI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKQotICAgIFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9y
ID0gMDsKLSNlbmRpZgorICAgIGNvbnN0IFVDaGFyKiBzdHIgPSBsYXp5QnJlYWtJdGVyYXRvci5z
dHJpbmcoKTsKKyAgICBpbnQgbGVuID0gbGF6eUJyZWFrSXRlcmF0b3IubGVuZ3RoKCk7CiAgICAg
aW50IG5leHRCcmVhayA9IC0xOwogCiAgICAgVUNoYXIgbGFzdENoID0gcG9zID4gMCA/IHN0cltw
b3MgLSAxXSA6IDA7CkBAIC0xNzEsOCArMTcwLDcgQEAgaW50IG5leHRCcmVha2FibGVQb3NpdGlv
bihjb25zdCBVQ2hhciogcwogICAgICAgICBpZiAobmVlZHNMaW5lQnJlYWtJdGVyYXRvcihjaCkg
fHwgbmVlZHNMaW5lQnJlYWtJdGVyYXRvcihsYXN0Q2gpKSB7CiAgICAgICAgICAgICBpZiAobmV4
dEJyZWFrIDwgaSAmJiBpKSB7CiAjaWYgIVBMQVRGT1JNKE1BQykgfHwgIWRlZmluZWQoQlVJTERJ
TkdfT05fVElHRVIpCi0gICAgICAgICAgICAgICAgaWYgKCFicmVha0l0ZXJhdG9yKQotICAgICAg
ICAgICAgICAgICAgICBicmVha0l0ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3Ioc3RyLCBsZW4p
OworICAgICAgICAgICAgICAgIFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yID0gbGF6
eUJyZWFrSXRlcmF0b3IuZ2V0KCk7CiAgICAgICAgICAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3Ip
CiAgICAgICAgICAgICAgICAgICAgIG5leHRCcmVhayA9IHRleHRCcmVha0ZvbGxvd2luZyhicmVh
a0l0ZXJhdG9yLCBpIC0gMSk7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L2JyZWFrX2xpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2Jy
ZWFrX2xpbmVzLmgJKHJldmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L2JyZWFrX2xpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDE0ICsyNSwxNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSAgICBpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0IFVD
aGFyKiwgaW50IHBvcywgaW50IGxlbiwgYm9vbCBicmVha05CU1AgPSBmYWxzZSk7CitjbGFzcyBM
YXp5TGluZUJyZWFrSXRlcmF0b3I7CiAKLSAgICBpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShjb25z
dCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBpbnQmIG5leHRCcmVha2FibGUsIGJvb2wg
YnJlYWtOQlNQID0gZmFsc2UpCi0gICAgewotICAgICAgICBpZiAocG9zID4gbmV4dEJyZWFrYWJs
ZSkKLSAgICAgICAgICAgIG5leHRCcmVha2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24oc3Ry
LCBwb3MsIGxlbiwgYnJlYWtOQlNQKTsKLSAgICAgICAgcmV0dXJuIHBvcyA9PSBuZXh0QnJlYWth
YmxlOwotICAgIH0KK2ludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oTGF6eUxpbmVCcmVha0l0ZXJh
dG9yJiwgaW50IHBvcywgYm9vbCBicmVha05CU1AgPSBmYWxzZSk7CisKK2lubGluZSBib29sIGlz
QnJlYWthYmxlKExhenlMaW5lQnJlYWtJdGVyYXRvciYgbGF6eUJyZWFrSXRlcmF0b3IsIGludCBw
b3MsIGludCYgbmV4dEJyZWFrYWJsZSwgYm9vbCBicmVha05CU1AgPSBmYWxzZSkKK3sKKyAgICBp
ZiAocG9zID4gbmV4dEJyZWFrYWJsZSkKKyAgICAgICAgbmV4dEJyZWFrYWJsZSA9IG5leHRCcmVh
a2FibGVQb3NpdGlvbihsYXp5QnJlYWtJdGVyYXRvciwgcG9zLCBicmVha05CU1ApOworICAgIHJl
dHVybiBwb3MgPT0gbmV4dEJyZWFrYWJsZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83775</attachid>
            <date>2011-02-24 23:21:01 -0800</date>
            <delta_ts>2011-02-25 10:33:55 -0800</delta_ts>
            <desc>Changes for additional platforms.</desc>
            <filename>ubrk_setText-platforms.txt</filename>
            <type>text/plain</type>
            <size>22348</size>
            <attacher name="Ned Holbrook">ned</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NjQ3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDItMjQgIE5lZCBIb2xi
cm9vayAgPG5ob2xicm9va0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWluaW1pemUgY2FsbHMgdG8gdWJya19zZXRUZXh0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0OTEyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS85MDMyNzc0PgorCisgICAgICAgIEF2b2lkIGNhbGxpbmcgdWJy
a19zZXRUZXh0KCkgb25jZSBwZXIgY2FsbCB0byBpc0JyZWFrYWJsZSgpIGJ5IHVzaW5nIGEgTGF6
eUxpbmVCcmVha0l0ZXJhdG9yLCB3aGljaCBkZWZlcnMKKyAgICAgICAgYnJlYWsgaXRlcmF0b3Ig
Y3JlYXRpb24gdW50aWwgbmVlZGVkLiBUaGlzIHJlcXVpcmVzIHJlcGxhY2luZyB0aGUgZ2xvYmFs
IGxpbmUgYnJlYWsgaXRlcmF0b3IgcHJpbWl0aXZlIHdpdGggYQorICAgICAgICB2ZXJzaW9uIHRo
YXQgY2FuIGJlIG5lc3RlZCwgc2luY2UgaW4gc29tZSBjYXNlcyB0d28gaXRlcmF0b3JzIG1heSBu
ZWVkIHRvIGJlIG91dHN0YW5kaW5nLiBJbiBwYXJ0aWN1bGFyLAorICAgICAgICBsYXlvdXRJbmxp
bmVDaGlsZHJlbigpIG1heSBpbmRpcmVjdGx5IGNhbGwgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoKSBhbmQgZWFjaCBtYXkgbmVlZCBhbiBpdGVyYXRvci4KKyAgICAgICAgSW4gYSB0ZXN0
IHdpdGggYSBwYXJhZ3JhcGggb2YgSmFwYW5lc2UgdGV4dCwgdGhpcyByZWR1Y2VkIHRoZSBudW1i
ZXIgb2YgdWJya19zZXRUZXh0KCkgY2FsbHMgZnJvbSAxNjQgdG8gMS4KKworICAgICAgICAqIHBs
YXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDogQWRkIExhenlMaW5lQnJlYWtJdGVyYXRv
ci4KKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6TGF6eUxpbmVCcmVh
a0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxhenlMaW5lQnJlYWtJdGVyYXRvcjo6fkxh
enlMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRl
cmF0b3I6OnN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6
Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OmdldCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXp5TGluZUJyZWFrSXRlcmF0b3I6OnJlc2V0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcDogUmVwbGFjZSBsaW5l
QnJlYWtJdGVyYXRvcigpIHByaW1pdGl2ZSB3aXRoIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcigp
L3JlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcigpLgorICAgICAgICAoV2ViQ29yZTo6YWNxdWlyZUxp
bmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJlYWtJdGVy
YXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9icmV3L1RleHRCcmVha0l0ZXJhdG9yQnJl
dy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6YWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAg
ICogcGxhdGZvcm0vdGV4dC9ndGsvVGV4dEJyZWFrSXRlcmF0b3JHdGsuY3BwOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OmFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgIChXZWJD
b3JlOjpyZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
cXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6YWNx
dWlyZUxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbGVhc2VMaW5lQnJl
YWtJdGVyYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC93aW5jZS9UZXh0QnJlYWtJdGVy
YXRvcldpbkNFLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjphY3F1aXJlTGluZUJyZWFr
SXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6cmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpsYXlvdXRJbmxpbmVDaGlsZHJlbik6IFBhc3MgYSBtYXBwaW5nIG9mIFJlbmRlclRleHQgdG8g
TGF6eUxpbmVCcmVha0l0ZXJhdG9yIGZyb20gb25lIGNhbGwgb2YgZmluZE5leHRMaW5lQnJlYWso
KSB0byB0aGUgbmV4dC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmaW5kTmV4dExp
bmVCcmVhayk6IFVzZSBzYWlkIG1hcHBpbmcsIHJlc2V0dGluZyBMYXp5TGluZUJyZWFrSXRlcmF0
b3IgZm9yIGFueSBuZXdseS1lbmNvdW50ZXJlZCBSZW5kZXJUZXh0LgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUZXh0LmNwcDogVXNlIGEgbG9jYWwgTGF6eUxpbmVCcmVha0l0ZXJhdG9yLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0
aHMpOgorICAgICAgICAqIHJlbmRlcmluZy9icmVha19saW5lcy5jcHA6IEFjY2VwdCBMYXp5TGlu
ZUJyZWFrSXRlcmF0b3IgcmF0aGVyIHRoYW4gVW5pQ2hhciBidWZmZXIuCisgICAgICAgIChXZWJD
b3JlOjpuZXh0QnJlYWthYmxlUG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9icmVha19s
aW5lcy5oOiBBY2NlcHQgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIHJhdGhlciB0aGFuIFVuaUNoYXIg
YnVmZmVyLgorICAgICAgICAoV2ViQ29yZTo6aXNCcmVha2FibGUpOgorCiAyMDExLTAyLTI0ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRCcmVha0l0ZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCShyZXZpc2lvbiA3OTU3NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNyArMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBUZXh0QnJlYWtJ
dGVyYXRvcjsKIAotICAgIC8vIE5vdGU6IFRoZSByZXR1cm5lZCBpdGVyYXRvciBpcyBnb29kIG9u
bHkgdW50aWwgeW91IGdldCBhbm90aGVyIGl0ZXJhdG9yLgorICAgIC8vIE5vdGU6IFRoZSByZXR1
cm5lZCBpdGVyYXRvciBpcyBnb29kIG9ubHkgdW50aWwgeW91IGdldCBhbm90aGVyIGl0ZXJhdG9y
LCB3aXRoIHRoZSBleGNlcHRpb24gb2YgYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yLgogCiAgICAg
Ly8gSXRlcmF0ZXMgb3ZlciAiZXh0ZW5kZWQgZ3JhcGhlbWUgY2x1c3RlcnMiLCBhcyBkZWZpbmVk
IGluIFVBWCAjMjkuCiAgICAgLy8gTm90ZSB0aGF0IHBsYXRmb3JtIGltcGxlbWVudGF0aW9ucyBt
YXkgYmUgbGVzcyBzb3BoaXN0aWNhdGVkIC0gZS5nLiBJQ1UgcHJpb3IgdG8KQEAgLTQzLDcgKzQz
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CiAKICAgICBUZXh0QnJl
YWtJdGVyYXRvciogd29yZEJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKTsK
LSAgICBUZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoKTsKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJh
dG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CisgICAgdm9pZCByZWxlYXNlTGluZUJyZWFr
SXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqKTsKICAgICBUZXh0QnJlYWtJdGVyYXRvciogc2Vu
dGVuY2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCk7CiAKICAgICBpbnQg
dGV4dEJyZWFrRmlyc3QoVGV4dEJyZWFrSXRlcmF0b3IqKTsKQEAgLTU3LDYgKzU4LDQ3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNvbnN0IGludCBUZXh0QnJlYWtEb25lID0gLTE7CiAK
K2NsYXNzIExhenlMaW5lQnJlYWtJdGVyYXRvciB7CitwdWJsaWM6CisgICAgTGF6eUxpbmVCcmVh
a0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcgPSAwLCBpbnQgbGVuZ3RoID0gMCkKKyAgICAg
ICAgOiBtX3N0cmluZyhzdHJpbmcpCisgICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQorICAgICAg
ICAsIG1faXRlcmF0b3IoMCkKKyAgICB7CisgICAgfQorCisgICAgfkxhenlMaW5lQnJlYWtJdGVy
YXRvcigpCisgICAgeworICAgICAgICBpZiAobV9pdGVyYXRvcikKKyAgICAgICAgICAgIHJlbGVh
c2VMaW5lQnJlYWtJdGVyYXRvcihtX2l0ZXJhdG9yKTsKKyAgICB9CisKKyAgICBjb25zdCBVQ2hh
ciogc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmc7IH0KKyAgICBpbnQgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KKworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBnZXQo
KQorICAgIHsKKyAgICAgICAgaWYgKCFtX2l0ZXJhdG9yKQorICAgICAgICAgICAgbV9pdGVyYXRv
ciA9IGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihtX3N0cmluZywgbV9sZW5ndGgpOworICAgICAg
ICByZXR1cm4gbV9pdGVyYXRvcjsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KGNvbnN0IFVDaGFy
KiBzdHJpbmcsIGludCBsZW5ndGgpCisgICAgeworICAgICAgICBpZiAobV9pdGVyYXRvcikKKyAg
ICAgICAgICAgIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihtX2l0ZXJhdG9yKTsKKworICAgICAg
ICBtX3N0cmluZyA9IHN0cmluZzsKKyAgICAgICAgbV9sZW5ndGggPSBsZW5ndGg7CisgICAgICAg
IG1faXRlcmF0b3IgPSAwOworICAgIH0KKworcHJpdmF0ZToKKyAgICBjb25zdCBVQ2hhciogbV9z
dHJpbmc7CisgICAgaW50IG1fbGVuZ3RoOworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBtX2l0ZXJh
dG9yOworfTsKKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwCShyZXZpc2lvbiA3OTU3NCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSA8dW5pY29kZS91YnJr
Lmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsK
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHNldFVw
SXRlcmF0b3IoYm9vbCYgY3JlYXRlZEl0ZXJhdG9yLCBUZXh0QnJlYWtJdGVyYXRvciomIGl0ZXJh
dG9yLApAQCAtNjgsMTIgKzcwLDM0IEBAIFRleHRCcmVha0l0ZXJhdG9yKiB3b3JkQnJlYWtJdGVy
YXRvcihjb24KICAgICAgICAgc3RhdGljV29yZEJyZWFrSXRlcmF0b3IsIFVCUktfV09SRCwgc3Ry
aW5nLCBsZW5ndGgpOwogfQogCi1UZXh0QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3Io
Y29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKK3N0YXRpYyBib29sIGNyZWF0ZWRMaW5l
QnJlYWtJdGVyYXRvciA9IGZhbHNlOworc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNM
aW5lQnJlYWtJdGVyYXRvcjsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVMaW5lQnJlYWtJ
dGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQoreworICAgIFRleHRCcmVh
a0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvciA9IDA7CisgICAgaWYgKCFjcmVhdGVkTGluZUJy
ZWFrSXRlcmF0b3IgfHwgc3RhdGljTGluZUJyZWFrSXRlcmF0b3IpIHsKKyAgICAgICAgc2V0VXBJ
dGVyYXRvcihjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IsIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9y
LCBVQlJLX0xJTkUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICAgICAgc3dhcChzdGF0aWNMaW5lQnJl
YWtJdGVyYXRvciwgbGluZUJyZWFrSXRlcmF0b3IpOworICAgIH0KKworICAgIGlmICghbGluZUJy
ZWFrSXRlcmF0b3IpIHsKKyAgICAgICAgYm9vbCBjcmVhdGVkTmV3TGluZUJyZWFrSXRlcmF0b3Ig
PSBmYWxzZTsKKyAgICAgICAgc2V0VXBJdGVyYXRvcihjcmVhdGVkTmV3TGluZUJyZWFrSXRlcmF0
b3IsIGxpbmVCcmVha0l0ZXJhdG9yLCBVQlJLX0xJTkUsIHN0cmluZywgbGVuZ3RoKTsKKyAgICB9
CisKKyAgICByZXR1cm4gbGluZUJyZWFrSXRlcmF0b3I7Cit9CisKK3ZvaWQgcmVsZWFzZUxpbmVC
cmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKIHsKLSAgICBzdGF0aWMg
Ym9vbCBjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IgPSBmYWxzZTsKLSAgICBzdGF0aWMgVGV4dEJy
ZWFrSXRlcmF0b3IqIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yOwotICAgIHJldHVybiBzZXRVcEl0
ZXJhdG9yKGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciwKLSAgICAgICAgc3RhdGljTGluZUJyZWFr
SXRlcmF0b3IsIFVCUktfTElORSwgc3RyaW5nLCBsZW5ndGgpOworICAgIEFTU0VSVChjcmVhdGVk
TGluZUJyZWFrSXRlcmF0b3IpOworICAgIEFTU0VSVChpdGVyYXRvcik7CisKKyAgICBpZiAoIXN0
YXRpY0xpbmVCcmVha0l0ZXJhdG9yKQorICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciA9
IGl0ZXJhdG9yOworICAgIGVsc2UKKyAgICAgICAgdWJya19jbG9zZShyZWludGVycHJldF9jYXN0
PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpKTsKIH0KIAogVGV4dEJyZWFrSXRlcmF0b3IqIHNl
bnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9icmV3L1RleHRCcmVha0l0ZXJhdG9yQnJl
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9icmV3L1Rl
eHRCcmVha0l0ZXJhdG9yQnJldy5jcHAJKHJldmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9icmV3L1RleHRCcmVha0l0ZXJhdG9yQnJldy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOwog
dXNpbmcgbmFtZXNwYWNlIFdURjo6VW5pY29kZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MjYwLDExICsyNjEsMzAgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIGNoYXJhY3RlckJyZWFrSXRlcmF0
bwogICAgIHJldHVybiAmaXRlcmF0b3I7CiB9CiAKLVRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJl
YWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorc3RhdGljIFRleHRC
cmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKKworVGV4dEJyZWFrSXRlcmF0
b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVu
Z3RoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGluZUJyZWFrSXRlcmF0b3IgLCBpdGVy
YXRvciwgKCkpOwotICAgIGl0ZXJhdG9yLnJlc2V0KHN0cmluZywgbGVuZ3RoKTsKLSAgICByZXR1
cm4gJml0ZXJhdG9yOworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvciA9
IDA7CisgICAgaWYgKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yKSB7CisgICAgICAgIHN0YXRpY0xp
bmVCcmVha0l0ZXJhdG9yLT5yZXNldChzdHJpbmcsIGxlbmd0aCk7CisgICAgICAgIHN3YXAoc3Rh
dGljTGluZUJyZWFrSXRlcmF0b3IsIGxpbmVCcmVha0l0ZXJhdG9yKTsKKyAgICB9CisKKyAgICBp
ZiAoIWxpbmVCcmVha0l0ZXJhdG9yICYmIHN0cmluZyAmJiBsZW5ndGgpCisgICAgICAgIGxpbmVC
cmVha0l0ZXJhdG9yID0gbmV3IExpbmVCcmVha0l0ZXJhdG9yKHN0cmluZywgbGVuZ3RoKTsKKwor
ICAgIHJldHVybiBsaW5lQnJlYWtJdGVyYXRvcjsKK30KKwordm9pZCByZWxlYXNlTGluZUJyZWFr
SXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQoreworICAgIEFTU0VSVChpdGVy
YXRvcik7CisKKyAgICBpZiAoIXN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yKQorICAgICAgICBzdGF0
aWNMaW5lQnJlYWtJdGVyYXRvciA9IGl0ZXJhdG9yOworICAgIGVsc2UKKyAgICAgICAgZGVsZXRl
IGl0ZXJhdG9yOwogfQogCiBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9y
KGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L2d0ay9UZXh0QnJlYWtJdGVyYXRvckd0ay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dEJyZWFrSXRlcmF0b3JHdGsuY3Bw
CShyZXZpc2lvbiA3OTU3NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1Rl
eHRCcmVha0l0ZXJhdG9yR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDExICsyMzksMzQg
QEAgVGV4dEJyZWFrSXRlcmF0b3IqIHdvcmRCcmVha0l0ZXJhdG9yKGNvbgogICAgIHJldHVybiBz
ZXRVcEl0ZXJhdG9yKGNyZWF0ZWRXb3JkQnJlYWtJdGVyYXRvciwgc3RhdGljV29yZEJyZWFrSXRl
cmF0b3IsIFVCUktfV09SRCwgc3RyaW5nLCBsZW5ndGgpOwogfQogCi1UZXh0QnJlYWtJdGVyYXRv
ciogbGluZUJyZWFrSXRlcmF0b3IoY29uc3QgVUNoYXIqIHN0cmluZywgaW50IGxlbmd0aCkKK3N0
YXRpYyBib29sIGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciA9IGZhbHNlOworc3RhdGljIFRleHRC
cmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcjsKKworVGV4dEJyZWFrSXRlcmF0
b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQgbGVu
Z3RoKQogewotICAgIHN0YXRpYyBib29sIGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciA9IGZhbHNl
OwotICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7
Ci0gICAgcmV0dXJuIHNldFVwSXRlcmF0b3IoY3JlYXRlZExpbmVCcmVha0l0ZXJhdG9yLCBzdGF0
aWNMaW5lQnJlYWtJdGVyYXRvciwgVUJSS19MSU5FLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgVGV4
dEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yID0gMDsKKyAgICBpZiAoIWNyZWF0ZWRM
aW5lQnJlYWtJdGVyYXRvciB8fCBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvcikgeworICAgICAgICBz
ZXRVcEl0ZXJhdG9yKGNyZWF0ZWRMaW5lQnJlYWtJdGVyYXRvciwgc3RhdGljTGluZUJyZWFrSXRl
cmF0b3IsIFVCUktfTElORSwgc3RyaW5nLCBsZW5ndGgpOworICAgICAgICBzd2FwKHN0YXRpY0xp
bmVCcmVha0l0ZXJhdG9yLCBsaW5lQnJlYWtJdGVyYXRvcik7CisgICAgfQorCisgICAgaWYgKCFs
aW5lQnJlYWtJdGVyYXRvcikgeworICAgICAgICBib29sIGNyZWF0ZWROZXdMaW5lQnJlYWtJdGVy
YXRvciA9IGZhbHNlOworICAgICAgICBzZXRVcEl0ZXJhdG9yKGNyZWF0ZWROZXdMaW5lQnJlYWtJ
dGVyYXRvciwgbGluZUJyZWFrSXRlcmF0b3IsIFVCUktfTElORSwgc3RyaW5nLCBsZW5ndGgpOwor
ICAgIH0KKworICAgIHJldHVybiBsaW5lQnJlYWtJdGVyYXRvcjsKK30KKwordm9pZCByZWxlYXNl
TGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQoreworICAgIEFT
U0VSVChjcmVhdGVkTGluZUJyZWFrSXRlcmF0b3IpOworICAgIEFTU0VSVChpdGVyYXRvcik7CisK
KyAgICBpZiAoIXN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yKQorICAgICAgICBzdGF0aWNMaW5lQnJl
YWtJdGVyYXRvciA9IGl0ZXJhdG9yOworICAgIGVsc2UKKyAgICAgICAgZGVsZXRlIGl0ZXJhdG9y
OwogfQogCiBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVD
aGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L3F0L1RleHRCcmVha0l0ZXJhdG9yUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JRdC5jcHAJKHJldmlzaW9uIDc5
NTc0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9xdC9UZXh0QnJlYWtJdGVyYXRv
clF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQAogI2RlZmluZSBERUJVRyBp
ZiAoMSkge30gZWxzZSBxRGVidWcKICNlbmRpZgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBVU0UoUVRfSUNVX1RFWFRfQlJFQUtJTkcpCkBAIC04
MCwxMCArODIsMzAgQEAgY29uc3QgY2hhciogY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkKICAg
ICAgICAgcmV0dXJuIGNoYXJhY3RlckJyZWFrSXRlcmF0b3Ioc3RyaW5nLCBsZW5ndGgpOwogICAg
IH0KIAotICAgIFRleHRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hh
ciogc3RyaW5nLCBpbnQgbGVuZ3RoKQorICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3Rh
dGljTGluZUJyZWFrSXRlcmF0b3I7CisKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogYWNxdWlyZUxp
bmVCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCiAgICAgewot
ICAgICAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3Igc3RhdGljTGluZUJyZWFrSXRlcmF0b3I7
Ci0gICAgICAgIHJldHVybiBzZXRVcEl0ZXJhdG9yKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLCBR
VGV4dEJvdW5kYXJ5RmluZGVyOjpMaW5lLCBzdHJpbmcsIGxlbmd0aCk7CisgICAgICAgIFRleHRC
cmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvciA9IDA7CisgICAgICAgIGlmIChzdGF0aWNM
aW5lQnJlYWtJdGVyYXRvcikgeworICAgICAgICAgICAgc2V0VXBJdGVyYXRvcigqc3RhdGljTGlu
ZUJyZWFrSXRlcmF0b3IsIFFUZXh0Qm91bmRhcnlGaW5kZXI6OkxpbmUsIHN0cmluZywgbGVuZ3Ro
KTsKKyAgICAgICAgICAgIHN3YXAoc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIGxpbmVCcmVha0l0
ZXJhdG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghbGluZUJyZWFrSXRlcmF0b3IgJiYg
c3RyaW5nICYmIGxlbmd0aCkKKyAgICAgICAgICAgIGxpbmVCcmVha0l0ZXJhdG9yID0gbmV3IFRl
eHRCcmVha0l0ZXJhdG9yKFFUZXh0Qm91bmRhcnlGaW5kZXI6OkxpbmUsIFFTdHJpbmcocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBRQ2hhcio+KHN0cmluZyksIGxlbmd0aCkpOworCisgICAgICAgIHJl
dHVybiBsaW5lQnJlYWtJdGVyYXRvcjsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2VMaW5lQnJl
YWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCisgICAgeworICAgICAgICBB
U1NFUlQoaXRlcmF0b3IpOworCisgICAgICAgIGlmICghc3RhdGljTGluZUJyZWFrSXRlcmF0b3Ip
CisgICAgICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciA9IGl0ZXJhdG9yOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBkZWxldGUgaXRlcmF0b3I7CiAgICAgfQogCiAgICAgVGV4dEJy
ZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBp
bnQgbGVuZ3RoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW5jZS9UZXh0
QnJlYWtJdGVyYXRvcldpbkNFLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L3dpbmNlL1RleHRCcmVha0l0ZXJhdG9yV2luQ0UuY3BwCShyZXZpc2lvbiA3OTU3
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luY2UvVGV4dEJyZWFrSXRlcmF0
b3JXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCit1
c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjo6VW5pY29kZTsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMjQxLDExICsyNDIsMzAgQEAgVGV4dEJyZWFrSXRlcmF0b3Iq
IGNoYXJhY3RlckJyZWFrSXRlcmF0bwogICAgIHJldHVybiAmaXRlcmF0b3I7CiB9CiAKLVRleHRC
cmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvcihjb25zdCBVQ2hhciogc3RyaW5nLCBpbnQg
bGVuZ3RoKQorc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNMaW5lQnJlYWtJdGVyYXRv
cjsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihjb25zdCBV
Q2hhciogc3RyaW5nLCBpbnQgbGVuZ3RoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoTGlu
ZUJyZWFrSXRlcmF0b3IgLCBpdGVyYXRvciwgKCkpOwotICAgIGl0ZXJhdG9yLnJlc2V0KHN0cmlu
ZywgbGVuZ3RoKTsKLSAgICByZXR1cm4gJml0ZXJhdG9yOworICAgIFRleHRCcmVha0l0ZXJhdG9y
KiBsaW5lQnJlYWtJdGVyYXRvciA9IDA7CisgICAgaWYgKHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9y
KSB7CisgICAgICAgIHN0YXRpY0xpbmVCcmVha0l0ZXJhdG9yLT5yZXNldChzdHJpbmcsIGxlbmd0
aCk7CisgICAgICAgIHN3YXAoc3RhdGljTGluZUJyZWFrSXRlcmF0b3IsIGxpbmVCcmVha0l0ZXJh
dG9yKTsKKyAgICB9CisKKyAgICBpZiAoIWxpbmVCcmVha0l0ZXJhdG9yICYmIHN0cmluZyAmJiBs
ZW5ndGgpCisgICAgICAgIGxpbmVCcmVha0l0ZXJhdG9yID0gbmV3IExpbmVCcmVha0l0ZXJhdG9y
KHN0cmluZywgbGVuZ3RoKTsKKworICAgIHJldHVybiBsaW5lQnJlYWtJdGVyYXRvcjsKK30KKwor
dm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9y
KQoreworICAgIEFTU0VSVChpdGVyYXRvcik7CisKKyAgICBpZiAoIXN0YXRpY0xpbmVCcmVha0l0
ZXJhdG9yKQorICAgICAgICBzdGF0aWNMaW5lQnJlYWtJdGVyYXRvciA9IGl0ZXJhdG9yOworICAg
IGVsc2UKKyAgICAgICAgZGVsZXRlIGl0ZXJhdG9yOwogfQogCiBUZXh0QnJlYWtJdGVyYXRvciog
c2VudGVuY2VCcmVha0l0ZXJhdG9yKGNvbnN0IFVDaGFyKiBzdHJpbmcsIGludCBsZW5ndGgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkocmV2aXNpb24gNzk1NzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb2x1bW5JbmZv
OwogY2xhc3MgSW5saW5lSXRlcmF0b3I7CiBjbGFzcyBMYXlvdXRTdGF0ZU1haW50YWluZXI7Citj
bGFzcyBMYXp5TGluZUJyZWFrSXRlcmF0b3I7CiBjbGFzcyBSZW5kZXJJbmxpbmU7CiAKIHN0cnVj
dCBCaWRpUnVuOwpAQCAtNDg2LDcgKzQ4Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBza2lwVHJh
aWxpbmdXaGl0ZXNwYWNlKElubGluZUl0ZXJhdG9yJiwgYm9vbCBpc0xpbmVFbXB0eSwgYm9vbCBw
cmV2aW91c0xpbmVCcm9rZUNsZWFubHkpOwogICAgIGludCBza2lwTGVhZGluZ1doaXRlc3BhY2Uo
SW5saW5lQmlkaVJlc29sdmVyJiwgYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNMaW5lRW1wdHksIGJv
b2wgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJv
bVByZXZpb3VzTGluZSk7CiAgICAgdm9pZCBmaXRCZWxvd0Zsb2F0cyhmbG9hdCB3aWR0aFRvRml0
LCBib29sIGZpcnN0TGluZSwgZmxvYXQmIGF2YWlsYWJsZVdpZHRoKTsKLSAgICBJbmxpbmVJdGVy
YXRvciBmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImLCBib29sIGZpcnN0TGlu
ZSwgYm9vbCYgaXNMaW5lRW1wdHksIGJvb2wmIHByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSwgYm9v
bCYgaHlwaGVuYXRlZCwgRUNsZWFyKiwgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2
aW91c0xpbmUpOworICAgIHR5cGVkZWYgc3RkOjpwYWlyPFJlbmRlclRleHQqLCBMYXp5TGluZUJy
ZWFrSXRlcmF0b3I+IExpbmVCcmVha0l0ZXJhdG9ySW5mbzsKKyAgICBJbmxpbmVJdGVyYXRvciBm
aW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImLCBib29sIGZpcnN0TGluZSwgYm9v
bCYgaXNMaW5lRW1wdHksIExpbmVCcmVha0l0ZXJhdG9ySW5mbyYsIGJvb2wmIHByZXZpb3VzTGlu
ZUJyb2tlQ2xlYW5seSwgYm9vbCYgaHlwaGVuYXRlZCwgRUNsZWFyKiwgRmxvYXRpbmdPYmplY3Qq
IGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpOwogICAgIFJvb3RJbmxpbmVCb3gqIGNvbnN0cnVj
dExpbmUodW5zaWduZWQgcnVuQ291bnQsIEJpZGlSdW4qIGZpcnN0UnVuLCBCaWRpUnVuKiBsYXN0
UnVuLCBib29sIGZpcnN0TGluZSwgYm9vbCBsYXN0TGluZSwgUmVuZGVyT2JqZWN0KiBlbmRPYmpl
Y3QpOwogICAgIElubGluZUZsb3dCb3gqIGNyZWF0ZUxpbmVCb3hlcyhSZW5kZXJPYmplY3QqLCBi
b29sIGZpcnN0TGluZSk7CiAgICAgdm9pZCBjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25z
Rm9yTGluZShSb290SW5saW5lQm94KiwgYm9vbCBmaXJzdExpbmUsIEJpZGlSdW4qIGZpcnN0UnVu
LCBCaWRpUnVuKiB0cmFpbGluZ1NwYWNlUnVuLCBib29sIHJlYWNoZWRFbmQsIEdseXBoT3ZlcmZs
b3dBbmRGYWxsYmFja0ZvbnRzTWFwJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkocmV2aXNpb24gNzk1NzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RNYXJrZXIuaCIK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRl
ICJUZXh0QnJlYWtJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRSdW4uaCIKICNpbmNsdWRlICJU
cmFpbGluZ0Zsb2F0c1Jvb3RJbmxpbmVCb3guaCIKICNpbmNsdWRlICJWZXJ0aWNhbFBvc2l0aW9u
Q2FjaGUuaCIKQEAgLTY2Miw2ICs2NjMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRJbmxp
bmVDaGlsZHJlbihiCiAgICAgICAgIGJvb2wgaXNMaW5lRW1wdHkgPSB0cnVlOwogICAgICAgICBi
b29sIHBhZ2luYXRlZCA9IHZpZXcoKS0+bGF5b3V0U3RhdGUoKSAmJiB2aWV3KCktPmxheW91dFN0
YXRlKCktPmlzUGFnaW5hdGVkKCk7CiAKKyAgICAgICAgTGluZUJyZWFrSXRlcmF0b3JJbmZvIGxp
bmVCcmVha0l0ZXJhdG9ySW5mbzsKICAgICAgICAgVmVydGljYWxQb3NpdGlvbkNhY2hlIHZlcnRp
Y2FsUG9zaXRpb25DYWNoZTsKIAogICAgICAgICB3aGlsZSAoIWVuZC5hdEVuZCgpKSB7CkBAIC02
NzgsNyArNjgwLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0SW5saW5lQ2hpbGRyZW4oYgog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBJbmxpbmVJdGVyYXRvciBvbGRFbmQgPSBlbmQ7CiAg
ICAgICAgICAgICBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSA9IG1f
ZmxvYXRpbmdPYmplY3RzID8gbV9mbG9hdGluZ09iamVjdHMtPmxhc3QoKSA6IDA7Ci0gICAgICAg
ICAgICBlbmQgPSBmaW5kTmV4dExpbmVCcmVhayhyZXNvbHZlciwgZmlyc3RMaW5lLCBpc0xpbmVF
bXB0eSwgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCBoeXBoZW5hdGVkLCAmY2xlYXIsIGxhc3RG
bG9hdEZyb21QcmV2aW91c0xpbmUpOworICAgICAgICAgICAgZW5kID0gZmluZE5leHRMaW5lQnJl
YWsocmVzb2x2ZXIsIGZpcnN0TGluZSwgaXNMaW5lRW1wdHksIGxpbmVCcmVha0l0ZXJhdG9ySW5m
bywgcHJldmlvdXNMaW5lQnJva2VDbGVhbmx5LCBoeXBoZW5hdGVkLCAmY2xlYXIsIGxhc3RGbG9h
dEZyb21QcmV2aW91c0xpbmUpOwogICAgICAgICAgICAgaWYgKHJlc29sdmVyLnBvc2l0aW9uKCku
YXRFbmQoKSkgewogICAgICAgICAgICAgICAgIHJlc29sdmVyLmRlbGV0ZVJ1bnMoKTsKICAgICAg
ICAgICAgICAgICBjaGVja0ZvckZsb2F0c0Zyb21MYXN0TGluZSA9IHRydWU7CkBAIC0xNDMyLDcg
KzE0MzQsNyBAQCBzdGF0aWMgdm9pZCB0cnlIeXBoZW5hdGluZyhSZW5kZXJUZXh0KiB0CiAgICAg
aHlwaGVuYXRlZCA9IHRydWU7CiB9CiAKLUlubGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5k
TmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVzb2x2ZXImIHJlc29sdmVyLCBib29sIGZpcnN0TGlu
ZSwgIGJvb2wmIGlzTGluZUVtcHR5LCBib29sJiBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHksIAor
SW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKElubGluZUJpZGlS
ZXNvbHZlciYgcmVzb2x2ZXIsIGJvb2wgZmlyc3RMaW5lLCBib29sJiBpc0xpbmVFbXB0eSwgTGlu
ZUJyZWFrSXRlcmF0b3JJbmZvJiBsaW5lQnJlYWtJdGVyYXRvckluZm8sIGJvb2wmIHByZXZpb3Vz
TGluZUJyb2tlQ2xlYW5seSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCYgaHlwaGVuYXRlZCwgRUNsZWFyKiBjbGVhciwgRmxvYXRpbmdPYmplY3Qq
IGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUpCiB7CiAgICAgQVNTRVJUKHJlc29sdmVyLnBvc2l0
aW9uKCkuYmxvY2sgPT0gdGhpcyk7CkBAIC0xNzIzLDcgKzE3MjUsMTIgQEAgSW5saW5lSXRlcmF0
b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZQogICAgICAgICAgICAgICAgICAgICBtaWRXb3Jk
QnJlYWsgPSB3ICsgd3JhcFcgKyBjaGFyV2lkdGggPiB3aWR0aDsKICAgICAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgICAgICBib29sIGJldHdlZW5Xb3JkcyA9IGMgPT0gJ1xuJyB8fCAoY3Vy
cldTICE9IFBSRSAmJiAhYXRTdGFydCAmJiBpc0JyZWFrYWJsZShzdHIsIHBvcywgc3RybGVuLCBu
ZXh0QnJlYWthYmxlLCBicmVha05CU1ApICYmIChzdHlsZS0+aHlwaGVucygpICE9IEh5cGhlbnNO
b25lIHx8IChwb3MgJiYgc3RyW3BvcyAtIDFdICE9IHNvZnRIeXBoZW4pKSk7CisgICAgICAgICAg
ICAgICAgaWYgKGxpbmVCcmVha0l0ZXJhdG9ySW5mby5maXJzdCAhPSB0KSB7CisgICAgICAgICAg
ICAgICAgICAgIGxpbmVCcmVha0l0ZXJhdG9ySW5mby5maXJzdCA9IHQ7CisgICAgICAgICAgICAg
ICAgICAgIGxpbmVCcmVha0l0ZXJhdG9ySW5mby5zZWNvbmQucmVzZXQoc3RyLCBzdHJsZW4pOwor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGJvb2wgYmV0d2VlbldvcmRzID0g
YyA9PSAnXG4nIHx8IChjdXJyV1MgIT0gUFJFICYmICFhdFN0YXJ0ICYmIGlzQnJlYWthYmxlKGxp
bmVCcmVha0l0ZXJhdG9ySW5mby5zZWNvbmQsIHBvcywgbmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQ
KSAmJiAoc3R5bGUtPmh5cGhlbnMoKSAhPSBIeXBoZW5zTm9uZSB8fCAocG9zICYmIHN0cltwb3Mg
LSAxXSAhPSBzb2Z0SHlwaGVuKSkpOwogCiAgICAgICAgICAgICAgICAgaWYgKGJldHdlZW5Xb3Jk
cyB8fCBtaWRXb3JkQnJlYWspIHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBzdG9wcGVkSWdu
b3JpbmdTcGFjZXMgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHAJKHJldmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDgsNiArNzQ4LDcgQEAgdm9pZCBSZW5k
ZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAogICAgIGZsb2F0IHdvcmRTcGFjaW5nID0g
c3R5bGUoKS0+d29yZFNwYWNpbmcoKTsKICAgICBpbnQgbGVuID0gdGV4dExlbmd0aCgpOwogICAg
IGNvbnN0IFVDaGFyKiB0eHQgPSBjaGFyYWN0ZXJzKCk7CisgICAgTGF6eUxpbmVCcmVha0l0ZXJh
dG9yIGJyZWFrSXRlcmF0b3IodHh0LCBsZW4pOwogICAgIGJvb2wgbmVlZHNXb3JkU3BhY2luZyA9
IGZhbHNlOwogICAgIGJvb2wgaWdub3JpbmdTcGFjZXMgPSBmYWxzZTsKICAgICBib29sIGlzU3Bh
Y2UgPSBmYWxzZTsKQEAgLTgwNyw3ICs4MDgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAg
ICAgIGJvb2wgaGFzQnJlYWsgPSBicmVha0FsbCB8fCBpc0JyZWFrYWJsZSh0eHQsIGksIGxlbiwg
bmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKTsKKyAgICAgICAgYm9vbCBoYXNCcmVhayA9IGJyZWFr
QWxsIHx8IGlzQnJlYWthYmxlKGJyZWFrSXRlcmF0b3IsIGksIG5leHRCcmVha2FibGUsIGJyZWFr
TkJTUCk7CiAgICAgICAgIGJvb2wgYmV0d2VlbldvcmRzID0gdHJ1ZTsKICAgICAgICAgaW50IGog
PSBpOwogICAgICAgICB3aGlsZSAoYyAhPSAnXG4nICYmICFpc1NwYWNlQWNjb3JkaW5nVG9TdHls
ZShjLCBzdHlsZSgpKSAmJiBjICE9ICdcdCcgJiYgYyAhPSBzb2Z0SHlwaGVuKSB7CkBAIC04MTUs
NyArODE2LDcgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbAogICAg
ICAgICAgICAgaWYgKGogPT0gbGVuKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgYyA9IHR4dFtqXTsKLSAgICAgICAgICAgIGlmIChpc0JyZWFrYWJsZSh0eHQsIGosIGxlbiwg
bmV4dEJyZWFrYWJsZSwgYnJlYWtOQlNQKSkKKyAgICAgICAgICAgIGlmIChpc0JyZWFrYWJsZShi
cmVha0l0ZXJhdG9yLCBqLCBuZXh0QnJlYWthYmxlLCBicmVha05CU1ApKQogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgaWYgKGJyZWFrQWxsKSB7CiAgICAgICAgICAgICAgICAg
YmV0d2VlbldvcmRzID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvYnJl
YWtfbGluZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9icmVh
a19saW5lcy5jcHAJKHJldmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L2JyZWFrX2xpbmVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDExICsxNTQsMTAgQEAgc3Rh
dGljIGlubGluZSBUZXh0QnJlYWtMb2NhdG9yUmVmIGxpbmVCcgogfQogI2VuZGlmCiAKLWludCBu
ZXh0QnJlYWthYmxlUG9zaXRpb24oY29uc3QgVUNoYXIqIHN0ciwgaW50IHBvcywgaW50IGxlbiwg
Ym9vbCB0cmVhdE5vQnJlYWtTcGFjZUFzQnJlYWspCitpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9u
KExhenlMaW5lQnJlYWtJdGVyYXRvciYgbGF6eUJyZWFrSXRlcmF0b3IsIGludCBwb3MsIGJvb2wg
dHJlYXROb0JyZWFrU3BhY2VBc0JyZWFrKQogewotI2lmICFQTEFURk9STShNQUMpIHx8ICFkZWZp
bmVkKEJVSUxESU5HX09OX1RJR0VSKQotICAgIFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJh
dG9yID0gMDsKLSNlbmRpZgorICAgIGNvbnN0IFVDaGFyKiBzdHIgPSBsYXp5QnJlYWtJdGVyYXRv
ci5zdHJpbmcoKTsKKyAgICBpbnQgbGVuID0gbGF6eUJyZWFrSXRlcmF0b3IubGVuZ3RoKCk7CiAg
ICAgaW50IG5leHRCcmVhayA9IC0xOwogCiAgICAgVUNoYXIgbGFzdENoID0gcG9zID4gMCA/IHN0
cltwb3MgLSAxXSA6IDA7CkBAIC0xNzEsOCArMTcwLDcgQEAgaW50IG5leHRCcmVha2FibGVQb3Np
dGlvbihjb25zdCBVQ2hhciogcwogICAgICAgICBpZiAobmVlZHNMaW5lQnJlYWtJdGVyYXRvcihj
aCkgfHwgbmVlZHNMaW5lQnJlYWtJdGVyYXRvcihsYXN0Q2gpKSB7CiAgICAgICAgICAgICBpZiAo
bmV4dEJyZWFrIDwgaSAmJiBpKSB7CiAjaWYgIVBMQVRGT1JNKE1BQykgfHwgIWRlZmluZWQoQlVJ
TERJTkdfT05fVElHRVIpCi0gICAgICAgICAgICAgICAgaWYgKCFicmVha0l0ZXJhdG9yKQotICAg
ICAgICAgICAgICAgICAgICBicmVha0l0ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3Ioc3RyLCBs
ZW4pOworICAgICAgICAgICAgICAgIFRleHRCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yID0g
bGF6eUJyZWFrSXRlcmF0b3IuZ2V0KCk7CiAgICAgICAgICAgICAgICAgaWYgKGJyZWFrSXRlcmF0
b3IpCiAgICAgICAgICAgICAgICAgICAgIG5leHRCcmVhayA9IHRleHRCcmVha0ZvbGxvd2luZyhi
cmVha0l0ZXJhdG9yLCBpIC0gMSk7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL2JyZWFrX2xpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L2JyZWFrX2xpbmVzLmgJKHJldmlzaW9uIDc5NTc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL2JyZWFrX2xpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDE0ICsyNSwxNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBpbnQgbmV4dEJyZWFrYWJsZVBvc2l0aW9uKGNvbnN0
IFVDaGFyKiwgaW50IHBvcywgaW50IGxlbiwgYm9vbCBicmVha05CU1AgPSBmYWxzZSk7CitjbGFz
cyBMYXp5TGluZUJyZWFrSXRlcmF0b3I7CiAKLSAgICBpbmxpbmUgYm9vbCBpc0JyZWFrYWJsZShj
b25zdCBVQ2hhciogc3RyLCBpbnQgcG9zLCBpbnQgbGVuLCBpbnQmIG5leHRCcmVha2FibGUsIGJv
b2wgYnJlYWtOQlNQID0gZmFsc2UpCi0gICAgewotICAgICAgICBpZiAocG9zID4gbmV4dEJyZWFr
YWJsZSkKLSAgICAgICAgICAgIG5leHRCcmVha2FibGUgPSBuZXh0QnJlYWthYmxlUG9zaXRpb24o
c3RyLCBwb3MsIGxlbiwgYnJlYWtOQlNQKTsKLSAgICAgICAgcmV0dXJuIHBvcyA9PSBuZXh0QnJl
YWthYmxlOwotICAgIH0KK2ludCBuZXh0QnJlYWthYmxlUG9zaXRpb24oTGF6eUxpbmVCcmVha0l0
ZXJhdG9yJiwgaW50IHBvcywgYm9vbCBicmVha05CU1AgPSBmYWxzZSk7CisKK2lubGluZSBib29s
IGlzQnJlYWthYmxlKExhenlMaW5lQnJlYWtJdGVyYXRvciYgbGF6eUJyZWFrSXRlcmF0b3IsIGlu
dCBwb3MsIGludCYgbmV4dEJyZWFrYWJsZSwgYm9vbCBicmVha05CU1AgPSBmYWxzZSkKK3sKKyAg
ICBpZiAocG9zID4gbmV4dEJyZWFrYWJsZSkKKyAgICAgICAgbmV4dEJyZWFrYWJsZSA9IG5leHRC
cmVha2FibGVQb3NpdGlvbihsYXp5QnJlYWtJdGVyYXRvciwgcG9zLCBicmVha05CU1ApOworICAg
IHJldHVybiBwb3MgPT0gbmV4dEJyZWFrYWJsZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCg==
</data>
<flag name="review"
          id="75663"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>