<?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>6751</bug_id>
          
          <creation_ts>2006-01-23 21:49:47 -0800</creation_ts>
          <short_desc>For unnamed frames, window.name returns a generated name</short_desc>
          <delta_ts>2010-11-03 02:22:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Frames</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>48806</dependson>
          <blocked>48768</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>ian</cc>
    
    <cc>mihaip</cc>
    
    <cc>mrobinson</cc>
    
    <cc>sam</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>29662</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-01-23 21:49:47 -0800</bug_when>
    <thetext>The generated names look like &quot;&lt;!--framePath //&lt;!--frame0--&gt;--&gt;&quot;. Other browsers just return the original empty name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29663</commentid>
    <comment_count>1</comment_count>
      <attachid>5900</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-01-23 21:50:17 -0800</bug_when>
    <thetext>Created attachment 5900
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297116</commentid>
    <comment_count>2</comment_count>
      <attachid>71356</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-10-20 16:32:45 -0700</bug_when>
    <thetext>Created attachment 71356
Patch with updated test case (Work-in-progress)

Work-in-progress patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297120</commentid>
    <comment_count>3</comment_count>
      <attachid>71356</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-20 16:34:21 -0700</bug_when>
    <thetext>Comment on attachment 71356
Patch with updated test case (Work-in-progress)

I don&apos;t really understand the difference between name and domName.  What use is a name if not for the DOM?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297186</commentid>
    <comment_count>4</comment_count>
      <attachid>71377</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-10-20 18:14:38 -0700</bug_when>
    <thetext>Created attachment 71377
Patch with updated test case (Work-in-progress)

Work-in-progress patch.

Re-purpose FrameTree::name() to return the actual name of the frame as per the HTML5 spec. Added method FrameTree::uniqueName() to return a unique frame name (may be generated).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298512</commentid>
    <comment_count>5</comment_count>
      <attachid>71666</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-10-23 21:00:54 -0700</bug_when>
    <thetext>Created attachment 71666
Patch with updated test case

Updated change log.

For the the port-specific API changes in this patch, I chose to preserve the current behavior of returning the unique frame name. We may want to consider changing the API behavior so that it returns the actual name of the frame, which may be the empty string.

One concern I had was regressing the fix for bug 12732, which was landed in changeset 24396 &lt;http://trac.webkit.org/changeset/24396&gt;. The test case landed in this changeset &lt;http://trac.webkit.org/browser/trunk/LayoutTests/fast/frames/iframe-set-inner-html.html&gt; used frame name uniqueness for two unnamed frames to verify the fix. Clearly, this approach conflicts with this patch and the HTML5 spec with regards to frame names.

Further investigation is needed to be able to devise an alternative test for bug 12732. Alternatively, we could expose a DRT method that returns the internal unique name for a frame and modify the test case to use this method. Does anyone have any additional insight/suggestions into bug 12732 and its test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300498</commentid>
    <comment_count>6</comment_count>
      <attachid>71666</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-27 13:14:15 -0700</bug_when>
    <thetext>Comment on attachment 71666
Patch with updated test case

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

&gt; WebCore/page/FrameTree.cpp:45
&gt; +    m_name = name;
&gt;      if (!parent()) {
&gt; -        m_name = name;
&gt; +        m_uniqueName = name;

Is m_uniqueName guaranteed to be unique?  If I explicitly set the name of two frames, can I cause a collision?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300624</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-10-27 15:14:52 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 71666 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=71666&amp;action=review
&gt; 
&gt; &gt; WebCore/page/FrameTree.cpp:45
&gt; &gt; +    m_name = name;
&gt; &gt;      if (!parent()) {
&gt; &gt; -        m_name = name;
&gt; &gt; +        m_uniqueName = name;
&gt; 
&gt; Is m_uniqueName guaranteed to be unique?  If I explicitly set the name of two frames, can I cause a collision?

Yes, m_uniqueName is guaranteed to be unique by the if-condition in FrameTree::uniqueName() &lt;http://trac.webkit.org/browser/trunk/WebCore/page/FrameTree.cpp?rev=60287#L104&gt; and FrameTree::child(const AtomicString&amp; name) &lt;http://trac.webkit.org/browser/trunk/WebCore/page/FrameTree.cpp?rev=60287#L159&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300632</commentid>
    <comment_count>8</comment_count>
      <attachid>71666</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-27 15:28:57 -0700</bug_when>
    <thetext>Comment on attachment 71666
Patch with updated test case

Great.  Thanks for writing this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302252</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-10-29 20:49:36 -0700</bug_when>
    <thetext>Committed r70971: &lt;http://trac.webkit.org/changeset/70971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302260</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-10-29 23:15:18 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Committed r70971: &lt;http://trac.webkit.org/changeset/70971&gt;

This caused layout test failures. Rolled out patch in changeset 70976 &lt;http://trac.webkit.org/changeset/70976&gt; while I look into this further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302321</commentid>
    <comment_count>11</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-10-30 09:07:18 -0700</bug_when>
    <thetext>Regarding &quot;We should consider exposing a DRT method for obtaining the internal frame name (which
may be generated) and re-implementing this test to use it.&quot;, there&apos;s already layoutTestController.dumpChildFramesAsText() which exposes internal names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302322</commentid>
    <comment_count>12</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-10-30 09:15:08 -0700</bug_when>
    <thetext>Regarding naming, name() vs. uniqueName() seems confusing, and it also makes it easier to miss switching a callsite from name() to uniqueName() with in your patch. domName() and internalUniqueName() may be better, or perhaps domName() and internalID().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302334</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-30 12:48:21 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Regarding naming, name() vs. uniqueName() seems confusing, and it also makes it easier to miss switching a callsite from name() to uniqueName() with in your patch. domName() and internalUniqueName() may be better, or perhaps domName() and internalID().

Generally, we try to name things with their DOM names, so we&apos;ll want this method to be called name().  However, landing a patch using domName() and then changing it to name() might be a good way of proving that we&apos;re correctly changed all the call sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303458</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-11-02 10:29:34 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; Regarding naming, name() vs. uniqueName() seems confusing, and it also makes it easier to miss switching a callsite from name() to uniqueName() with in your patch. domName() and internalUniqueName() may be better, or perhaps domName() and internalID().
&gt; 
&gt; Generally, we try to name things with their DOM names, so we&apos;ll want this method to be called name().  However, landing a patch using domName() and then changing it to name() might be a good way of proving that we&apos;re correctly changed all the call sites.

With the passing of bug #48806, I plan to retry landing this patch in at least two parts based on Adam&apos;s suggestion later tonight.

Also, based on Mihai Parparita&apos;s feedback I will also land an updated iframe-set-inner-html.html test that uses layoutTestController.dumpChildFramesAsText().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303938</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-11-03 02:14:21 -0700</bug_when>
    <thetext>Split the patch into two parts: 1) substitute FrameTree::uniqueName() for FrameTree::name() and 2) Re-purpose FrameTree::name() for the DOM-specific name and implement support for the empty string as a valid frame name.

Committed (1) in changeset 71216 &lt;trac.webkit.org/changeset/71216&gt; and changeset 71217 &lt;http://trac.webkit.org/changeset/71217&gt;.

Committed (2) in changeset 71219 &lt;http://trac.webkit.org/changeset/71219&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303940</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-03 02:15:28 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/71219 might have broken GTK Linux 64-bit Debug
The following tests are not passing:
svg/css/getComputedStyle-basic.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303945</commentid>
    <comment_count>17</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-11-03 02:22:12 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; http://trac.webkit.org/changeset/71219 might have broken GTK Linux 64-bit Debug
&gt; The following tests are not passing:
&gt; svg/css/getComputedStyle-basic.xhtml

This failure is not related to this bug. Using the build bot console view &lt;http://build.webkit.org/console&gt; this test started failing after the patch for bug #48608 &lt;https://bugs.webkit.org/show_bug.cgi?id=48608&gt; was landed in changeset  71218 &lt;http://trac.webkit.org/changeset/71218&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>5900</attachid>
            <date>2006-01-23 21:50:17 -0800</date>
            <delta_ts>2006-01-23 21:50:17 -0800</delta_ts>
            <desc>test case</desc>
            <filename>frame-window-name.zip</filename>
            <type>application/zip</type>
            <size>4107</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAANtFODQAAAAAAAAAAAAAAAASABAAZnJhbWUtd2luZG93LW5hbWUvVVgMAE6/1UNO
v9VD9QH1AVBLAwQUAAgACACIRTg0AAAAAAAAAAAAAAAAGwAQAGZyYW1lLXdpbmRvdy1uYW1lLy5E
U19TdG9yZVVYDABrv9VDr77VQ/UB9QHtl81KxDAYRW9qkRZBunQZX0D0DcowLlwLLlxpO85YiA1Y
x2775po0d6TDtIILmUG/A+GEJF/6k5AfAGq2XlwBGYAEwVGKURKmHSL62CXV93GBZ7zhBebGjPcl
HBh+7FI3Yo+oUA/Hz5aFsQX6YVWnzucfPX1Uilc8oYHF2uVKn9+OwL1Ld99HLJrSFNaaieplW10O
OuypyvrdT7WpiKY1tl652na8RVWuLPvczOj49/+xIAjCoREWUiQn+30NQRAOEL8+aDqnu2DF+oiO
BzEZremc7oIV20V0TCd0Rms6p7tgLlqKlw/FJyue5xTPikrT+Y8+WRD+DUdBmd//r6fv/4Ig/GFU
PL+dz/B1IdjB77XapYdNALYPAiyL2dZvxWeDck3ndBcsBwFB2BefUEsHCKY4vNItAQAABBgAAFBL
AwQKAAAAAADsRTg0AAAAAAAAAAAAAAAACQAQAF9fTUFDT1NYL1VYDABrv9VDa7/VQ/UB9QFQSwME
CgAAAAAA7EU4NAAAAAAAAAAAAAAAABsAEABfX01BQ09TWC9mcmFtZS13aW5kb3ctbmFtZS9VWAwA
a7/VQ2u/1UP1AfUBUEsDBBQACAAIAIhFODQAAAAAAAAAAAAAAAAmABAAX19NQUNPU1gvZnJhbWUt
d2luZG93LW5hbWUvLl8uRFNfU3RvcmVVWAwAa7/VQ6++1UP1AfUBY2AVY2dgYsAEIDFOIDYCYgUo
PwhZgQMWTSAAAFBLBwgNjiN3HAAAAFIAAABQSwMEFAAIAAgASkU4NAAAAAAAAAAAAAAAABsAEABm
cmFtZS13aW5kb3ctbmFtZS9tYWluLmh0bWxVWAwAa7/VQzu+1UP1AfUBhZA9DsIwDIX3nMLKUglR
0g4skHTjIKVxm0j5QU5Q4fY0bZHYmGw/+32yLU32rmPSYK+XkG122I3Ue7w59BiyFJvGGMhVT5jh
HkkjKd5yGKJLip+b5njgkPLboaq29gVSdFZD+3hdq47B7gff02TDbHU2KyHRoDhhik8aMIl1qJ5t
0HGuQ8kdjvlU9uRQalUV4Zf4l0B2MjtisUnxPWS5WGwP+ABQSwcIKC9ZN6QAAAAIAQAAUEsDBBQA
CAAIAEpFODQAAAAAAAAAAAAAAAAmABAAX19NQUNPU1gvZnJhbWUtd2luZG93LW5hbWUvLl9tYWlu
Lmh0bWxVWAwAa7/VQzu+1UP1AfUBY2AVY2dgYsAEIDFOIDYCYgUoPwgkEeIaEaIYlJyBRQ8YAABQ
SwcIRtnwDSMAAABSAAAAUEsDBAoAAAAAANtFODQAAAAAAAAAAAAAAAAcABAAZnJhbWUtd2luZG93
LW5hbWUvcmVzb3VyY2VzL1VYDABOv9VDTr/VQ/UB9QFQSwMEFAAIAAgATUU4NAAAAAAAAAAAAAAA
ACUAEABmcmFtZS13aW5kb3ctbmFtZS9yZXNvdXJjZXMvLkRTX1N0b3JlVVgMAGu/1UNBvtVD9QH1
Ae2YQUvDMBTH/6/2UBBGjgM9xA8wwW8QxnbYeTdPOuem0K0wFK/95pr0/avTbqB42ND3g/QXkuY1
7SHJKwAZPs+vAAeggFpSZQcFS4dsy9LEuMcAL3jEGvPdsY6ONPczLLDBLVaf5l/F2iDW2vYyXhd4
wiUe4nWFclJWd7OymkE/33UsF68NTeTzb0XdxPZlE3FPXOl9iWsYhmEYv0NUxelhp2EYxhGS1gdP
B7pWC/szOt8a42hPB7pWC+/L6JwuaEd7OtC1mouWMPkQPrlNXsTRng4/emXD+DecqFza/8f783/D
MP4wko+moyHeE4IOaa/1sdy0A8DdHN1DQKY/C/v46Pd0oGu1HQQM41C8AVBLBwiqOqSDDgEAAAQY
AABQSwMECgAAAAAA7EU4NAAAAAAAAAAAAAAAACUAEABfX01BQ09TWC9mcmFtZS13aW5kb3ctbmFt
ZS9yZXNvdXJjZXMvVVgMAGu/1UNrv9VD9QH1AVBLAwQUAAgACABNRTg0AAAAAAAAAAAAAAAAMAAQ
AF9fTUFDT1NYL2ZyYW1lLXdpbmRvdy1uYW1lL3Jlc291cmNlcy8uXy5EU19TdG9yZVVYDABrv9VD
Qb7VQ/UB9QFjYBVjZ2BiwAQgMU4gNgJiBSg/CFmBAxZNIAAAUEsHCA2OI3ccAAAAUgAAAFBLAwQU
AAgACADmRTg0AAAAAAAAAAAAAAAANwAQAGZyYW1lLXdpbmRvdy1uYW1lL3Jlc291cmNlcy9mcmFt
ZS13aW5kb3ctbmFtZS1sZWZ0Lmh0bWxVWAwAa7/VQ2C/1UP1AfUBbY5BCoMwEEXXzSmGbJJQ0H2b
unPXS8RkigFNREdUinfvFNtN6WqG/+G/Z1t0oRKWInVY3fFBtjx+YctP1+Sw8Zn8GAeqBI0bPIU4
heznHhMVyxgJtcTJuwH1ElPIS5Fcj+amJJzhT8GpVKCnNs9dgAZBdYxWRpqrEDt4R74Fjath0i9I
1avHgWJOF1Dv+bUIeMhxxgM7q39lbXnYvwBQSwcI8Uwmi54AAADoAAAAUEsDBBQACAAIAOZFODQA
AAAAAAAAAAAAAABCABAAX19NQUNPU1gvZnJhbWUtd2luZG93LW5hbWUvcmVzb3VyY2VzLy5fZnJh
bWUtd2luZG93LW5hbWUtbGVmdC5odG1sVVgMAGu/1UNgv9VD9QH1AWNgFWNnYGLABCAxTiA2AmIF
KD8IJBHiGhGiGJScgUUPGAAAUEsHCEbZ8A0jAAAAUgAAAFBLAwQUAAgACADpRTg0AAAAAAAAAAAA
AAAAOAAQAGZyYW1lLXdpbmRvdy1uYW1lL3Jlc291cmNlcy9mcmFtZS13aW5kb3ctbmFtZS1yaWdo
dC5odG1sVVgMAGu/1UNmv9VD9QH1AW2OwQqDMBBEz92vWHJJQkHvberNW38iJlsMaCK6olL896bY
XkpPM8zAzDMtWV+B4cAdVXd6sCkPD6b8dE3yW5bJjWHgCnjc8Alw8snNPUUuljEwKUGTswOpJUSf
liLanvRNCjzjnyKnQqKa2jR3HhtCKbXQV4AdnWXXoqJV55ffE1mvjgYOKV5QvqfXwtMBlrM8sGfs
L6gpD/IXUEsHCKeNR7ObAAAA5AAAAFBLAwQUAAgACADpRTg0AAAAAAAAAAAAAAAAQwAQAF9fTUFD
T1NYL2ZyYW1lLXdpbmRvdy1uYW1lL3Jlc291cmNlcy8uX2ZyYW1lLXdpbmRvdy1uYW1lLXJpZ2h0
Lmh0bWxVWAwAa7/VQ2a/1UP1AfUBY2AVY2dgYsAEIDFOIDYCYgUoPwgkEeIaEaIYlJyBRQ8YAABQ
SwcIRtnwDSMAAABSAAAAUEsBAhUDCgAAAAAA20U4NAAAAAAAAAAAAAAAABIADAAAAAAAAAAAQO1B
AAAAAGZyYW1lLXdpbmRvdy1uYW1lL1VYCABOv9VDTr/VQ1BLAQIVAxQACAAIAIhFODSmOLzSLQEA
AAQYAAAbAAwAAAAAAAAAAECkgUAAAABmcmFtZS13aW5kb3ctbmFtZS8uRFNfU3RvcmVVWAgAa7/V
Q6++1UNQSwECFQMKAAAAAADsRTg0AAAAAAAAAAAAAAAACQAMAAAAAAAAAABA/UHGAQAAX19NQUNP
U1gvVVgIAGu/1UNrv9VDUEsBAhUDCgAAAAAA7EU4NAAAAAAAAAAAAAAAABsADAAAAAAAAAAAQP1B
/QEAAF9fTUFDT1NYL2ZyYW1lLXdpbmRvdy1uYW1lL1VYCABrv9VDa7/VQ1BLAQIVAxQACAAIAIhF
ODQNjiN3HAAAAFIAAAAmAAwAAAAAAAAAAECkgUYCAABfX01BQ09TWC9mcmFtZS13aW5kb3ctbmFt
ZS8uXy5EU19TdG9yZVVYCABrv9VDr77VQ1BLAQIVAxQACAAIAEpFODQoL1k3pAAAAAgBAAAbAAwA
AAAAAAAAAECkgcYCAABmcmFtZS13aW5kb3ctbmFtZS9tYWluLmh0bWxVWAgAa7/VQzu+1UNQSwEC
FQMUAAgACABKRTg0RtnwDSMAAABSAAAAJgAMAAAAAAAAAABApIHDAwAAX19NQUNPU1gvZnJhbWUt
d2luZG93LW5hbWUvLl9tYWluLmh0bWxVWAgAa7/VQzu+1UNQSwECFQMKAAAAAADbRTg0AAAAAAAA
AAAAAAAAHAAMAAAAAAAAAABA7UFKBAAAZnJhbWUtd2luZG93LW5hbWUvcmVzb3VyY2VzL1VYCABO
v9VDTr/VQ1BLAQIVAxQACAAIAE1FODSqOqSDDgEAAAQYAAAlAAwAAAAAAAAAAECkgZQEAABmcmFt
ZS13aW5kb3ctbmFtZS9yZXNvdXJjZXMvLkRTX1N0b3JlVVgIAGu/1UNBvtVDUEsBAhUDCgAAAAAA
7EU4NAAAAAAAAAAAAAAAACUADAAAAAAAAAAAQP1BBQYAAF9fTUFDT1NYL2ZyYW1lLXdpbmRvdy1u
YW1lL3Jlc291cmNlcy9VWAgAa7/VQ2u/1UNQSwECFQMUAAgACABNRTg0DY4jdxwAAABSAAAAMAAM
AAAAAAAAAABApIFYBgAAX19NQUNPU1gvZnJhbWUtd2luZG93LW5hbWUvcmVzb3VyY2VzLy5fLkRT
X1N0b3JlVVgIAGu/1UNBvtVDUEsBAhUDFAAIAAgA5kU4NPFMJoueAAAA6AAAADcADAAAAAAAAAAA
QKSB4gYAAGZyYW1lLXdpbmRvdy1uYW1lL3Jlc291cmNlcy9mcmFtZS13aW5kb3ctbmFtZS1sZWZ0
Lmh0bWxVWAgAa7/VQ2C/1UNQSwECFQMUAAgACADmRTg0RtnwDSMAAABSAAAAQgAMAAAAAAAAAABA
pIH1BwAAX19NQUNPU1gvZnJhbWUtd2luZG93LW5hbWUvcmVzb3VyY2VzLy5fZnJhbWUtd2luZG93
LW5hbWUtbGVmdC5odG1sVVgIAGu/1UNgv9VDUEsBAhUDFAAIAAgA6UU4NKeNR7ObAAAA5AAAADgA
DAAAAAAAAAAAQKSBmAgAAGZyYW1lLXdpbmRvdy1uYW1lL3Jlc291cmNlcy9mcmFtZS13aW5kb3ct
bmFtZS1yaWdodC5odG1sVVgIAGu/1UNmv9VDUEsBAhUDFAAIAAgA6UU4NEbZ8A0jAAAAUgAAAEMA
DAAAAAAAAAAAQKSBqQkAAF9fTUFDT1NYL2ZyYW1lLXdpbmRvdy1uYW1lL3Jlc291cmNlcy8uX2Zy
YW1lLXdpbmRvdy1uYW1lLXJpZ2h0Lmh0bWxVWAgAa7/VQ2a/1UNQSwUGAAAAAA8ADwCoBQAATQoA
AAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71356</attachid>
            <date>2010-10-20 16:32:45 -0700</date>
            <delta_ts>2010-10-20 18:14:38 -0700</delta_ts>
            <desc>Patch with updated test case (Work-in-progress)</desc>
            <filename>Bug6751_1.patch</filename>
            <type>text/plain</type>
            <size>9463</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDE4NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTAtMTAtMjAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciB1
bm5hbWVkIGZyYW1lcywgd2luZG93Lm5hbWUgcmV0dXJucyBhIGdlbmVyYXRlZCBuYW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIHdpbmRvdy5uYW1lIG9mIGFuIHVubmFtZWQgZnJh
bWUgcmV0dXJucworICAgICAgICBhIHVuaXF1ZSBnZW5lcmF0ZWQgbmFtZSB0aGF0IGlzIHVzZWQg
aW50ZXJuYWxseSB0byBpZGVudGlmeSB0aGUKKyAgICAgICAgZnJhbWUuIEluc3RlYWQsIHdlIHNo
b3VsZCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGFzIGltcGxpZWQgYnkKKyAgICAgICAgc2VjdGlv
biA1LjEuNiBvZiB0aGUgSFRNTCA1IHNwZWMuIChodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9i
cm93c2Vycy5odG1sI2Jyb3dzaW5nLWNvbnRleHQtbmFtZXMpLgorICAgICAgICBUaGlzIHNlY3Rp
b24gZGVzY3JpYmVzIHRoYXQgYSBicm93c2luZyBjb250ZXh0IGNhbiBoYXZlIG5vIG5hbWUgb3Ig
YmUKKyAgICAgICAgdGhlIGVtcHR5IHN0cmluZy4KKworICAgICAgICAqIGh0bWwvSFRNTEZyYW1l
RWxlbWVudEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6
Om9wZW5VUkwpOiBSZW1vdmVkIEFTU0VSVCBmb3IgZW1wdHkKKyAgICAgICAgZnJhbWUgbmFtZSBz
aW5jZSB0aGlzIGlzIHZhbGlkIGFzIHBlciB0aGUgSFRNTCA1IHNwZWMuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6c2V0TmFtZSk6IFJlbW92ZWQgdGhlIGNhbGwgdG8g
RnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUoKQorICAgICAgICBzaW5jZSB0aGUgbG9hZGVyIGNv
ZGUgbm8gbG9uZ2VyIGRlcGVuZHMgb24gdGhlIGZyYW1lIG5hbWUgYmVpbmcgdW5pcXVlLgorICAg
ICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdp
bmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om5hbWUpOiBNb2RpZmllZCB0
byBjYWxsIEZyYW1lVHJlZTo6ZG9tTmFtZSgpIGZvcgorICAgICAgICB0aGUgRE9NLXNwZWNpZmll
ZCBuYW1lICh3aGljaCBjYW4gYmUgZW1wdHkpIGluc3RlYWQgb2YgRnJhbWVUcmVlOm5hbWUoKS4K
KyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRy
ZWU6OnNldE5hbWUpOiBNb2RpZmllZCB0byBzdG9yZSB0aGUgRE9NLXNwZWNpZmllZAorICAgICAg
ICBuYW1lIG9mIHRoZSBmcmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6Y2xlYXJO
YW1lKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVUcmVlOjpkb21OYW1lKTogQWRkZWQuCisKIDIwMTAtMTAtMjAgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI3MDE2NS4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAkocmV2
aXNpb24gNzAxODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05Miw4ICs5Miw2IEBAIGJvb2wgSFRNTEZyYW1lRWxlbWVudEJhc2U6
OmlzVVJMQWxsb3dlZCgKIAogdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6b3BlblVSTChib29s
IGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7Ci0gICAgQVNTRVJUKCFt
X2ZyYW1lTmFtZS5pc0VtcHR5KCkpOwotCiAgICAgaWYgKCFpc1VSTEFsbG93ZWQoKSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xNTUsOSArMTUzLDYgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFz
ZTo6c2V0TmFtZSgpCiAgICAgbV9mcmFtZU5hbWUgPSBnZXRBdHRyaWJ1dGUobmFtZUF0dHIpOwog
ICAgIGlmIChtX2ZyYW1lTmFtZS5pc051bGwoKSkKICAgICAgICAgbV9mcmFtZU5hbWUgPSBnZXRJ
ZEF0dHJpYnV0ZSgpOwotICAgIAotICAgIGlmIChGcmFtZSogcGFyZW50RnJhbWUgPSBkb2N1bWVu
dCgpLT5mcmFtZSgpKQotICAgICAgICBtX2ZyYW1lTmFtZSA9IHBhcmVudEZyYW1lLT50cmVlKCkt
PnVuaXF1ZUNoaWxkTmFtZShtX2ZyYW1lTmFtZSk7CiB9CiAKIHZvaWQgSFRNTEZyYW1lRWxlbWVu
dEJhc2U6OnNldE5hbWVBbmRPcGVuVVJMKCkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVF
bGVtZW50QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50
QmFzZS5oCShyZXZpc2lvbiA3MDE4NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50
QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIHZvaWQgc2V0TmFtZUFuZE9wZW5VUkxDYWxsYmFjayhOb2RlKik7CiAKICAgICBBdG9taWNT
dHJpbmcgbV9VUkw7Ci0gICAgQXRvbWljU3RyaW5nIG1fZnJhbWVOYW1lOworICAgIEF0b21pY1N0
cmluZyBtX2ZyYW1lTmFtZTsgLy8gVGhlIGFjdHVhbCBmcmFtZSBuYW1lIChtYXkgYmUgZW1wdHkp
LgogCiAgICAgU2Nyb2xsYmFyTW9kZSBtX3Njcm9sbGluZzsKIApJbmRleDogV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJ
KHJldmlzaW9uIDcwMTg2KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExMzQsNyArMTEzNCw3IEBAIFN0cmluZyBET01XaW5kb3c6Om5hbWUoKSBjb25z
dAogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0
dXJuIG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpOworICAgIHJldHVybiBtX2ZyYW1lLT50cmVlKCkt
PmRvbU5hbWUoKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnNldE5hbWUoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAkocmV2aXNpb24gNzAxODYpCisrKyBXZWJDb3JlL3Bh
Z2UvRnJhbWVUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBGcmFtZVRy
ZWU6On5GcmFtZVRyZWUoKQogCiB2b2lkIEZyYW1lVHJlZTo6c2V0TmFtZShjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUpIAogeworICAgIG1fZG9tTmFtZSA9IG5hbWU7CiAgICAgaWYgKCFwYXJlbnQo
KSkgewogICAgICAgICBtX25hbWUgPSBuYW1lOwogICAgICAgICByZXR1cm47CkBAIC01MSw2ICs1
Miw3IEBAIHZvaWQgRnJhbWVUcmVlOjpzZXROYW1lKGNvbnN0IEF0b21pY1N0cmkKIHZvaWQgRnJh
bWVUcmVlOjpjbGVhck5hbWUoKQogewogICAgIG1fbmFtZSA9IEF0b21pY1N0cmluZygpOworICAg
IG1fZG9tTmFtZSA9IEF0b21pY1N0cmluZygpOwogfQogCiBGcmFtZSogRnJhbWVUcmVlOjpwYXJl
bnQoYm9vbCBjaGVja0ZvckRpc2Nvbm5lY3RlZEZyYW1lKSBjb25zdCAKSW5kZXg6IFdlYkNvcmUv
cGFnZS9GcmFtZVRyZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgJ
KHJldmlzaW9uIDcwMTg2KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogICAg
ICAgICB+RnJhbWVUcmVlKCk7CiAKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBkb21OYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9kb21OYW1lOyB9CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgICAgICB2b2lkIHNldE5hbWUo
Y29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgICAgIHZvaWQgY2xlYXJOYW1lKCk7CkBAIC03NCw2
ICs3NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBGcmFtZSogbV9wYXJlbnQ7
CiAgICAgICAgIEF0b21pY1N0cmluZyBtX25hbWU7CisgICAgICAgIEF0b21pY1N0cmluZyBtX2Rv
bU5hbWU7IC8vIFRoZSBhY3R1YWwgZnJhbWUgbmFtZSAobWF5IGJlIGVtcHR5KS4KIAogICAgICAg
ICAvLyBGSVhNRTogdXNlIExpc3RSZWZQdHI/CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9uZXh0
U2libGluZzsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwMTg3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMTAtMjAgIERhbmllbCBC
YXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZvciB1bm5hbWVkIGZyYW1lcywgd2luZG93Lm5hbWUgcmV0dXJucyBh
IGdlbmVyYXRlZCBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NzUxCisKKyAgICAgICAgVXBkYXRlZCB0ZXN0IGNhc2UgdG8gY2hlY2sgdGhlIHZh
bHVlIG9mIHdpbmRvdy5uYW1lLgorCisgICAgICAgICogZmFzdC9mcmFtZXMvZnJhbWUtZWxlbWVu
dC1uYW1lLWV4cGVjdGVkLnR4dDogVXBkYXRlZCByZXN1bHQuCisgICAgICAgICogZmFzdC9mcmFt
ZXMvaWZyYW1lLXNldC1pbm5lci1odG1sLWV4cGVjdGVkLnR4dDogUmVtb3ZlZDsgVGhpcyB0ZXN0
IGVuc3VyZWQKKyAgICAgICAgdGhhdCB0aGUgZ2VuZXJhdGVkIG5hbWUgZm9yIGFuIHVubmFtZWQg
ZnJhbWVzIHdhcyB1bmlxdWUgYnkgbG9va2luZyBhdCB0aGUKKyAgICAgICAgdmFsdWUgb2Ygd2lu
ZG93Lm5hbWUuIEhvd2V2ZXIsIHRoZSBnZW5lcmF0ZWQgbmFtZSBzaG91bGQgbm90IGJlIGV4cG9z
ZWQgdG8KKyAgICAgICAgd2ViIGRldmVsb3BlcnMuIEluc3RlYWQsIHdpbmRvdy5uYW1lIHNob3Vs
ZCByZXR1cm4gdGhlIGVtcHR5IHN0cmluZyBmb3IKKyAgICAgICAgYW4gdW5uYW1lZCBmcmFtZSBh
cyBpbXBsaWVkIGJ5IHNlY3Rpb24gNS4xLjYgb2YgdGhlIEhUTUwgNSBzcGVjLiBXZSBzaG91bGQK
KyAgICAgICAgY29uc2lkZXIgZXhwb3NpbmcgYSBEUlQgbWV0aG9kIGZvciBvYnRhaW5pbmcgdGhl
IGludGVybmFsIGZyYW1lIG5hbWUgKHdoaWNoCisgICAgICAgIG1heSBiZSBnZW5lcmF0ZWQpIGFu
ZCByZS1pbXBsZW1lbnRpbmcgdGhpcyB0ZXN0IHRvIHVzZSBpdC4KKyAgICAgICAgKiBmYXN0L2Zy
YW1lcy9pZnJhbWUtc2V0LWlubmVyLWh0bWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L2ZyYW1lcy9yZXNvdXJjZXMvZnJhbWUtZWxlbWVudC1uYW1lLWxlZnQuaHRtbDogQWRkZWQgdGVz
dCBmb3Igd2luZG93Lm5hbWUuCisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzb3VyY2VzL2ZyYW1l
LWVsZW1lbnQtbmFtZS1yaWdodC5odG1sOiBEaXR0by4KKwogMjAxMC0xMC0yMCAgSmFtZXMgUm9i
aW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZC91cGRhdGUgY2hyb21p
dW0gZXhwZWN0YXRpb25zIGZvciBuZXdseSBhZGRlZCBhbmQgY2hhbmdlZCB0ZXN0cy4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLWVsZW1lbnQtbmFtZS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtZWxlbWVudC1uYW1l
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzAxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9mcmFtZS1lbGVtZW50LW5hbWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDEw
ICs0LDEyIEBACiBGcmFtZTogJ2xlZnQnCiAtLS0tLS0tLQogUEFTUyBlc2NhcGUod2luZG93LmZy
YW1lRWxlbWVudC5uYW1lKSBpcyAibGVmdCIKK1BBU1MgZXNjYXBlKHdpbmRvdy5uYW1lKSBpcyAi
bGVmdCIKIAogCiAtLS0tLS0tLQogRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMS0t
Pi0tPicKIC0tLS0tLS0tCiBQQVNTIGVzY2FwZSh3aW5kb3cuZnJhbWVFbGVtZW50Lm5hbWUpIGlz
ICIiCitQQVNTIGVzY2FwZSh3aW5kb3cubmFtZSkgaXMgIiIKIApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvaWZyYW1lLXNldC1pbm5lci1odG1sLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtc2V0LWlubmVyLWh0bWwtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiA3MDE4NikKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFt
ZS1zZXQtaW5uZXItaHRtbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCww
IEBACi0KLVRoaXMgdGVzdHMgdGhhdCBpbnNlcnRpbmcgdHdvIDxpZnJhbWU+IGVsZW1lbnRzIHVz
aW5nIGlubmVySFRNTCBhY3R1YWxseSBjYXVzZXMgdHdvIGZyYW1lcyB3aXRoIHVuaXF1ZSBuYW1l
cyB0byBiZSBjcmVhdGVkLgotU1VDQ0VTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
aWZyYW1lLXNldC1pbm5lci1odG1sLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvaWZyYW1lLXNldC1pbm5lci1odG1sLmh0bWwJKHJldmlzaW9uIDcwMTg2KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXNldC1pbm5lci1odG1sLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMzAgKzAsMCBAQAotPGh0bWw+Ci08c2NyaXB0PgotZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIAotICAgIHZhciBjID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwotICAgIHZhciByID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpOwotICAgIAotICAgIGMuaW5uZXJIVE1MID0gIjxz
cGFuPjxpZnJhbWU+PC9pZnJhbWU+PGlmcmFtZT48L2lmcmFtZT48L3NwYW4+IgotICAgIAotICAg
IGlmICh3aW5kb3cuZnJhbWVzLmxlbmd0aCAhPSAyKSB7Ci0gICAgICAgIHIuaW5uZXJIVE1MID0g
J0ZBSUxVUkUgLSBudW1iZXIgb2YgZnJhbWVzIHNob3VsZCBiZSAyLCB3YXMgJyArIHdpbmRvdy5m
cmFtZXMubGVuZ3RoOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGlmICh3aW5k
b3cuZnJhbWVzWzBdLm5hbWUgPT0gd2luZG93LmZyYW1lc1sxXS5uYW1lKSB7Ci0gICAgICAgIHIu
aW5uZXJIVE1MID0gJ0ZBSUxVUkUgLSBib3RoIHdpbmRvd3MgaGFkIHRuZSBzYW1lIG5hbWUnCi0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgci5pbm5lckhUTUwgPSAnU1VDQ0VTUyc7
Ci19Ci08L3NjcmlwdD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxkaXYgaWQ9ImNvbnRh
aW5lciI+PC9kaXY+Ci08ZGl2PlRoaXMgdGVzdHMgdGhhdCBpbnNlcnRpbmcgdHdvICZsdDtpZnJh
bWUmZ3Q7IGVsZW1lbnRzIHVzaW5nIGlubmVySFRNTCBhY3R1YWxseSBjYXVzZXMgdHdvIGZyYW1l
cyB3aXRoIHVuaXF1ZSBuYW1lcyB0byBiZSBjcmVhdGVkLjwvZGl2PgotPGRpdiBpZD0icmVzdWx0
Ij5GQUlMVVJFPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9yZXNvdXJjZXMvZnJhbWUtZWxlbWVudC1uYW1lLWxlZnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvZnJhbWUtZWxlbWVudC1uYW1l
LWxlZnQuaHRtbAkocmV2aXNpb24gNzAxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9y
ZXNvdXJjZXMvZnJhbWUtZWxlbWVudC1uYW1lLWxlZnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Nyw1ICs3LDYgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiZXNjYXBlKHdpbmRvdy5mcmFtZUVsZW1lbnQubmFtZSkiLCAibGVmdCIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlc2NhcGUod2luZG93Lm5hbWUpIiwgImxlZnQiKTsK
IDwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzb3Vy
Y2VzL2ZyYW1lLWVsZW1lbnQtbmFtZS1yaWdodC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNlcy9mcmFtZS1lbGVtZW50LW5hbWUtcmlnaHQuaHRtbAko
cmV2aXNpb24gNzAxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvZnJh
bWUtZWxlbWVudC1uYW1lLXJpZ2h0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNSArNyw2IEBA
CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImVzY2FwZSh3aW5kb3cuZnJhbWVFbGVtZW50Lm5hbWUpIiwgIiIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJlc2NhcGUod2luZG93Lm5hbWUpIiwgIiIpOwogPC9zY3JpcHQ+CiA8L2JvZHk+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71377</attachid>
            <date>2010-10-20 18:14:38 -0700</date>
            <delta_ts>2010-10-23 21:00:54 -0700</delta_ts>
            <desc>Patch with updated test case (Work-in-progress)</desc>
            <filename>Bug6751_2.patch</filename>
            <type>text/plain</type>
            <size>28078</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDE5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDggQEAKKzIwMTAtMTAtMjAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciB1
bm5hbWVkIGZyYW1lcywgd2luZG93Lm5hbWUgcmV0dXJucyBhIGdlbmVyYXRlZCBuYW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIHdpbmRvdy5uYW1lIG9mIGFuIHVubmFtZWQgZnJh
bWUgcmV0dXJucworICAgICAgICBhIHVuaXF1ZSBnZW5lcmF0ZWQgbmFtZSB0aGF0IGlzIHVzZWQg
aW50ZXJuYWxseSB0byBpZGVudGlmeSB0aGUKKyAgICAgICAgZnJhbWUuIEluc3RlYWQsIHdlIHNo
b3VsZCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGFzIGltcGxpZWQgYnkKKyAgICAgICAgc2VjdGlv
biA1LjEuNiBvZiB0aGUgSFRNTCA1IHNwZWMuIChodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9i
cm93c2Vycy5odG1sI2Jyb3dzaW5nLWNvbnRleHQtbmFtZXMpLgorICAgICAgICBUaGlzIHNlY3Rp
b24gZGVzY3JpYmVzIHRoYXQgYSBicm93c2luZyBjb250ZXh0IGNhbiBoYXZlIG5vIG5hbWUgb3Ig
YmUKKyAgICAgICAgdGhlIGVtcHR5IHN0cmluZy4KKworICAgICAgICAqIGh0bWwvSFRNTEZyYW1l
RWxlbWVudEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6
Om9wZW5VUkwpOiBSZW1vdmVkIEFTU0VSVCBmb3IgZW1wdHkKKyAgICAgICAgZnJhbWUgbmFtZSBz
aW5jZSB0aGlzIGlzIHZhbGlkIGFzIHBlciB0aGUgSFRNTCA1IHNwZWMuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6c2V0TmFtZSk6IFJlbW92ZWQgdGhlIGNhbGwgdG8g
RnJhbWVUcmVlOjp1bmlxdWVDaGlsZE5hbWUoKQorICAgICAgICBzaW5jZSB0aGUgbG9hZGVyIGNv
ZGUgbm8gbG9uZ2VyIGRlcGVuZHMgb24gdGhlIGZyYW1lIG5hbWUgYmVpbmcgdW5pcXVlLgorICAg
ICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaDoKKyAgICAgICAgKiBsb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6Om1haW5S
ZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgICogbG9h
ZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250
cm9sbGVyOjpzYXZlRG9jdW1lbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29u
dHJvbGxlcjo6cmVzdG9yZURvY3VtZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9y
eUNvbnRyb2xsZXI6OmNyZWF0ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRy
b2xsZXI6OmN1cnJlbnRGcmFtZXNNYXRjaEl0ZW0pOgorICAgICAgICAqIGxvYWRlci9Qcm9ncmVz
c1RyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVz
c1N0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc0Nv
bXBsZXRlZCk6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUpOgorICAgICAg
ICAqIHBhZ2UvRnJhbWVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6c2V0
TmFtZSk6ICBNb2RpZmllZCB0byBzdG9yZSB0aGUgRE9NLXNwZWNpZmllZAorICAgICAgICBuYW1l
IG9mIHRoZSBmcmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6Y2xlYXJOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVHJlZTo6Y2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVl
OjpmaW5kKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVUcmVlOjp1bmlxdWVOYW1lKTogQWRkZWQuCisKIDIwMTAtMTAtMjAgIER1bWl0cnUgRGFu
aWxpdWMgIDxkdW1pQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBM
ZXZpbi4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAkocmV2aXNpb24g
NzAxODYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05Miw4ICs5Miw2IEBAIGJvb2wgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmlzVVJM
QWxsb3dlZCgKIAogdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6b3BlblVSTChib29sIGxvY2tI
aXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7Ci0gICAgQVNTRVJUKCFtX2ZyYW1l
TmFtZS5pc0VtcHR5KCkpOwotCiAgICAgaWYgKCFpc1VSTEFsbG93ZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC0xNTUsOSArMTUzLDYgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6c2V0
TmFtZSgpCiAgICAgbV9mcmFtZU5hbWUgPSBnZXRBdHRyaWJ1dGUobmFtZUF0dHIpOwogICAgIGlm
IChtX2ZyYW1lTmFtZS5pc051bGwoKSkKICAgICAgICAgbV9mcmFtZU5hbWUgPSBnZXRJZEF0dHJp
YnV0ZSgpOwotICAgIAotICAgIGlmIChGcmFtZSogcGFyZW50RnJhbWUgPSBkb2N1bWVudCgpLT5m
cmFtZSgpKQotICAgICAgICBtX2ZyYW1lTmFtZSA9IHBhcmVudEZyYW1lLT50cmVlKCktPnVuaXF1
ZUNoaWxkTmFtZShtX2ZyYW1lTmFtZSk7CiB9CiAKIHZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6
OnNldE5hbWVBbmRPcGVuVVJMKCkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50
QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5o
CShyZXZpc2lvbiA3MDE4NikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZv
aWQgc2V0TmFtZUFuZE9wZW5VUkxDYWxsYmFjayhOb2RlKik7CiAKICAgICBBdG9taWNTdHJpbmcg
bV9VUkw7Ci0gICAgQXRvbWljU3RyaW5nIG1fZnJhbWVOYW1lOworICAgIEF0b21pY1N0cmluZyBt
X2ZyYW1lTmFtZTsgLy8gVGhlIGFjdHVhbCBmcmFtZSBuYW1lIChtYXkgYmUgZW1wdHkpLgogCiAg
ICAgU2Nyb2xsYmFyTW9kZSBtX3Njcm9sbGluZzsKIApJbmRleDogV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcAkocmV2aXNpb24gNzAxODYpCisrKyBXZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5MSw3ICs0OTEsNyBAQCBQYXNzUmVmUHRyPEFyY2hp
dmVSZXNvdXJjZT4gRG9jdW1lbnRMb2FkCiAgICAgaWYgKCFtYWluUmVzb3VyY2VCdWZmZXIpCiAg
ICAgICAgIG1haW5SZXNvdXJjZUJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CiAgICAg
ICAgIAotICAgIHJldHVybiBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShtYWluUmVzb3VyY2VCdWZm
ZXIsIHIudXJsKCksIHIubWltZVR5cGUoKSwgci50ZXh0RW5jb2RpbmdOYW1lKCksIGZyYW1lKCkt
PnRyZWUoKS0+bmFtZSgpKTsKKyAgICByZXR1cm4gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUobWFp
blJlc291cmNlQnVmZmVyLCByLnVybCgpLCByLm1pbWVUeXBlKCksIHIudGV4dEVuY29kaW5nTmFt
ZSgpLCBmcmFtZSgpLT50cmVlKCktPnVuaXF1ZU5hbWUoKSk7CiB9CiAKIFBhc3NSZWZQdHI8QXJj
aGl2ZVJlc291cmNlPiBEb2N1bWVudExvYWRlcjo6c3VicmVzb3VyY2UoY29uc3QgS1VSTCYgdXJs
KSBjb25zdApJbmRleDogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gNzAxODYpCisrKyBX
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyNyw3ICs5
MjcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUoCiAgICAgLy8g
SWYgd2UncmUgbW92aW5nIGluIHRoZSBiYWNrL2ZvcndhcmQgbGlzdCwgd2UgbWlnaHQgd2FudCB0
byByZXBsYWNlIHRoZSBjb250ZW50CiAgICAgLy8gb2YgdGhpcyBjaGlsZCBmcmFtZSB3aXRoIHdo
YXRldmVyIHdhcyB0aGVyZSBhdCB0aGF0IHBvaW50LgogICAgIGlmIChwYXJlbnRJdGVtICYmIHBh
cmVudEl0ZW0tPmNoaWxkcmVuKCkuc2l6ZSgpICYmIGlzQmFja0ZvcndhcmRMb2FkVHlwZShsb2Fk
VHlwZSkpIHsKLSAgICAgICAgSGlzdG9yeUl0ZW0qIGNoaWxkSXRlbSA9IHBhcmVudEl0ZW0tPmNo
aWxkSXRlbVdpdGhUYXJnZXQoY2hpbGRGcmFtZS0+dHJlZSgpLT5uYW1lKCkpOworICAgICAgICBI
aXN0b3J5SXRlbSogY2hpbGRJdGVtID0gcGFyZW50SXRlbS0+Y2hpbGRJdGVtV2l0aFRhcmdldChj
aGlsZEZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKSk7CiAgICAgICAgIGlmIChjaGlsZEl0ZW0p
IHsKICAgICAgICAgICAgIC8vIFVzZSB0aGUgb3JpZ2luYWwgVVJMIHRvIGVuc3VyZSB3ZSBnZXQg
YWxsIHRoZSBzaWRlLWVmZmVjdHMsIHN1Y2ggYXMKICAgICAgICAgICAgIC8vIG9uTG9hZCBoYW5k
bGVycywgb2YgYW55IHJlZGlyZWN0cyB0aGF0IGhhcHBlbmVkLiBBbiBleGFtcGxlIG9mIHdoZXJl
CkBAIC05MzgsNyArOTM4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTEludG9DaGlsZEZy
YW1lKAogICAgICAgICB9CiAgICAgfQogCi0gICAgUmVmUHRyPEFyY2hpdmU+IHN1YmZyYW1lQXJj
aGl2ZSA9IGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnBvcEFyY2hpdmVGb3JTdWJmcmFtZShjaGls
ZEZyYW1lLT50cmVlKCktPm5hbWUoKSk7CisgICAgUmVmUHRyPEFyY2hpdmU+IHN1YmZyYW1lQXJj
aGl2ZSA9IGFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnBvcEFyY2hpdmVGb3JTdWJmcmFtZShjaGls
ZEZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKSk7CiAgICAgCiAgICAgaWYgKHN1YmZyYW1lQXJj
aGl2ZSkKICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCktPmxvYWRBcmNoaXZlKHN1YmZyYW1l
QXJjaGl2ZS5yZWxlYXNlKCkpOwpAQCAtMTgyMSw3ICsxODIxLDcgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6Y29tbWl0UHJvdmlzaW9uYWxMb2FkKAogICAgIFJlZlB0cjxDYWNoZWRQYWdlPiBjYWNoZWRQ
YWdlID0gbV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2UgPyBwYWdlQ2FjaGUoKS0+Z2V0KGhpc3Rvcnko
KS0+cHJvdmlzaW9uYWxJdGVtKCkpIDogMDsKICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IHBk
bCA9IG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcjsKIAotICAgIExPRyhQYWdlQ2FjaGUsICJX
ZWJDb3JlTG9hZGluZyAlczogQWJvdXQgdG8gY29tbWl0IHByb3Zpc2lvbmFsIGxvYWQgZnJvbSBw
cmV2aW91cyBVUkwgJyVzJyB0byBuZXcgVVJMICclcyciLCBtX2ZyYW1lLT50cmVlKCktPm5hbWUo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBtX1VSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAK
KyAgICBMT0coUGFnZUNhY2hlLCAiV2ViQ29yZUxvYWRpbmcgJXM6IEFib3V0IHRvIGNvbW1pdCBw
cm92aXNpb25hbCBsb2FkIGZyb20gcHJldmlvdXMgVVJMICclcycgdG8gbmV3IFVSTCAnJXMnIiwg
bV9mcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbV9V
Ukwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgCiAgICAgICAgIHBkbCA/IHBkbC0+dXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSA6ICI8bm8gcHJvdmlzaW9uYWwgRG9jdW1lbnRMb2FkZXI+Iik7
CiAKICAgICAvLyBDaGVjayB0byBzZWUgaWYgd2UgbmVlZCB0byBjYWNoZSB0aGUgcGFnZSB3ZSBh
cmUgbmF2aWdhdGluZyBhd2F5IGZyb20gaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgpAQCAt
MTg2OSw3ICsxODY5LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2Fk
KAogICAgICAgICBkaWRPcGVuVVJMKHVybCk7CiAgICAgfQogCi0gICAgTE9HKExvYWRpbmcsICJX
ZWJDb3JlTG9hZGluZyAlczogRmluaXNoZWQgY29tbWl0dGluZyBwcm92aXNpb25hbCBsb2FkIHRv
IFVSTCAlcyIsIG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IG1fVVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhMb2FkaW5nLCAiV2ViQ29y
ZUxvYWRpbmcgJXM6IEZpbmlzaGVkIGNvbW1pdHRpbmcgcHJvdmlzaW9uYWwgbG9hZCB0byBVUkwg
JXMiLCBtX2ZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBtX1VSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIGlmIChtX2xvYWRUeXBlID09
IEZyYW1lTG9hZFR5cGVTdGFuZGFyZCAmJiBtX2RvY3VtZW50TG9hZGVyLT5pc0NsaWVudFJlZGly
ZWN0KCkpCiAgICAgICAgIGhpc3RvcnkoKS0+dXBkYXRlRm9yQ2xpZW50UmVkaXJlY3QoKTsKSW5k
ZXg6IFdlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDcwMTg2KQorKysg
V2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDksNyArMTQ5LDcgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6c2F2ZURvY3VtZW50U3RhdAog
ICAgIEFTU0VSVChkb2N1bWVudCk7CiAgICAgCiAgICAgaWYgKGl0ZW0tPmlzQ3VycmVudERvY3Vt
ZW50KGRvY3VtZW50KSkgewotICAgICAgICBMT0coTG9hZGluZywgIldlYkNvcmVMb2FkaW5nICVz
OiBzYXZpbmcgZm9ybSBzdGF0ZSB0byAlcCIsIG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCksIGl0ZW0pOworICAgICAgICBMT0coTG9hZGluZywgIldlYkNvcmVM
b2FkaW5nICVzOiBzYXZpbmcgZm9ybSBzdGF0ZSB0byAlcCIsIG1fZnJhbWUtPnRyZWUoKS0+dW5p
cXVlTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGl0ZW0pOwogICAgICAgICBpdGVtLT5z
ZXREb2N1bWVudFN0YXRlKGRvY3VtZW50LT5mb3JtRWxlbWVudHNTdGF0ZSgpKTsKICAgICB9CiB9
CkBAIC0xODgsNyArMTg4LDcgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZURvY3Vt
ZW50UwogICAgIGlmICghaXRlbVRvUmVzdG9yZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTE9H
KExvYWRpbmcsICJXZWJDb3JlTG9hZGluZyAlczogcmVzdG9yaW5nIGZvcm0gc3RhdGUgZnJvbSAl
cCIsIG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGl0ZW1U
b1Jlc3RvcmUpOworICAgIExPRyhMb2FkaW5nLCAiV2ViQ29yZUxvYWRpbmcgJXM6IHJlc3Rvcmlu
ZyBmb3JtIHN0YXRlIGZyb20gJXAiLCBtX2ZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBpdGVtVG9SZXN0b3JlKTsKICAgICBkb2MtPnNldFN0YXRlRm9y
TmV3Rm9ybUVsZW1lbnRzKGl0ZW1Ub1Jlc3RvcmUtPmRvY3VtZW50U3RhdGUoKSk7CiB9CiAKQEAg
LTQ4MSwxMCArNDgxLDEwIEBAIFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+IEhpc3RvcnlDb250cm9s
bGUKICAgICAgICAgb3JpZ2luYWxVUkwgPSBibGFua1VSTCgpOwogICAgIAogICAgIEZyYW1lKiBw
YXJlbnRGcmFtZSA9IG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7Ci0gICAgU3RyaW5nIHBhcmVu
dCA9IHBhcmVudEZyYW1lID8gcGFyZW50RnJhbWUtPnRyZWUoKS0+bmFtZSgpIDogIiI7CisgICAg
U3RyaW5nIHBhcmVudCA9IHBhcmVudEZyYW1lID8gcGFyZW50RnJhbWUtPnRyZWUoKS0+dW5pcXVl
TmFtZSgpIDogIiI7CiAgICAgU3RyaW5nIHRpdGxlID0gZG9jdW1lbnRMb2FkZXIgPyBkb2N1bWVu
dExvYWRlci0+dGl0bGUoKSA6ICIiOwogCi0gICAgUmVmUHRyPEhpc3RvcnlJdGVtPiBpdGVtID0g
SGlzdG9yeUl0ZW06OmNyZWF0ZSh1cmwsIG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpLCBwYXJlbnQs
IHRpdGxlKTsKKyAgICBSZWZQdHI8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBIaXN0b3J5SXRlbTo6Y3Jl
YXRlKHVybCwgbV9mcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCksIHBhcmVudCwgdGl0bGUpOwog
ICAgIGl0ZW0tPnNldE9yaWdpbmFsVVJMU3RyaW5nKG9yaWdpbmFsVVJMLnN0cmluZygpKTsKIAog
ICAgIGlmICghdW5yZWFjaGFibGVVUkwuaXNFbXB0eSgpIHx8ICFkb2N1bWVudExvYWRlciB8fCBk
b2N1bWVudExvYWRlci0+cmVzcG9uc2UoKS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCkKQEAgLTU5
OSw3ICs1OTksNyBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpyZWN1cnNpdmVHb1RvSXRlCiAv
LyBIZWxwZXIgbWV0aG9kIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjdXJyZW50IGZyYW1l
IHRyZWUgbWF0Y2hlcyBnaXZlbiBoaXN0b3J5IGl0ZW0ncy4KIGJvb2wgSGlzdG9yeUNvbnRyb2xs
ZXI6OmN1cnJlbnRGcmFtZXNNYXRjaEl0ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0pIGNvbnN0CiB7Ci0g
ICAgaWYgKCghbV9mcmFtZS0+dHJlZSgpLT5uYW1lKCkuaXNFbXB0eSgpIHx8ICFpdGVtLT50YXJn
ZXQoKS5pc0VtcHR5KCkpICYmIG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpICE9IGl0ZW0tPnRhcmdl
dCgpKQorICAgIGlmICgoIW1fZnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpLmlzRW1wdHkoKSB8
fCAhaXRlbS0+dGFyZ2V0KCkuaXNFbXB0eSgpKSAmJiBtX2ZyYW1lLT50cmVlKCktPnVuaXF1ZU5h
bWUoKSAhPSBpdGVtLT50YXJnZXQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAK
ICAgICBjb25zdCBIaXN0b3J5SXRlbVZlY3RvciYgY2hpbGRJdGVtcyA9IGl0ZW0tPmNoaWxkcmVu
KCk7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAJKHJldmlzaW9uIDcwMTg2KQor
KysgV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTAxLDcgKzEwMSw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpyZXNldCgpCiAKIHZvaWQgUHJv
Z3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnJhbWUqIGZyYW1lKQogewotICAgIExPRyhQ
cm9ncmVzcywgIlByb2dyZXNzIHN0YXJ0ZWQgKCVwKSAtIGZyYW1lICVwKFwiJXNcIiksIHZhbHVl
ICVmLCB0cmFja2VkIGZyYW1lcyAlZCwgb3JpZ2luYXRpbmcgZnJhbWUgJXAiLCB0aGlzLCBmcmFt
ZSwgZnJhbWUtPnRyZWUoKS0+bmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fcHJvZ3Jl
c3NWYWx1ZSwgbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMsIG1fb3JpZ2luYXRpbmdQcm9ncmVz
c0ZyYW1lLmdldCgpKTsKKyAgICBMT0coUHJvZ3Jlc3MsICJQcm9ncmVzcyBzdGFydGVkICglcCkg
LSBmcmFtZSAlcChcIiVzXCIpLCB2YWx1ZSAlZiwgdHJhY2tlZCBmcmFtZXMgJWQsIG9yaWdpbmF0
aW5nIGZyYW1lICVwIiwgdGhpcywgZnJhbWUsIGZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBtX3Byb2dyZXNzVmFsdWUsIG1fbnVtUHJvZ3Jlc3NUcmFj
a2VkRnJhbWVzLCBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZS5nZXQoKSk7CiAKICAgICBmcmFt
ZS0+bG9hZGVyKCktPmNsaWVudCgpLT53aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKICAg
ICAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6cHJvZ3Jlc3NTdGFy
dGVkKEZyCiAKIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc0NvbXBsZXRlZChGcmFtZSog
ZnJhbWUpCiB7Ci0gICAgTE9HKFByb2dyZXNzLCAiUHJvZ3Jlc3MgY29tcGxldGVkICglcCkgLSBm
cmFtZSAlcChcIiVzXCIpLCB2YWx1ZSAlZiwgdHJhY2tlZCBmcmFtZXMgJWQsIG9yaWdpbmF0aW5n
IGZyYW1lICVwIiwgdGhpcywgZnJhbWUsIGZyYW1lLT50cmVlKCktPm5hbWUoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpLCBtX3Byb2dyZXNzVmFsdWUsIG1fbnVtUHJvZ3Jlc3NUcmFja2VkRnJhbWVz
LCBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZS5nZXQoKSk7CisgICAgTE9HKFByb2dyZXNzLCAi
UHJvZ3Jlc3MgY29tcGxldGVkICglcCkgLSBmcmFtZSAlcChcIiVzXCIpLCB2YWx1ZSAlZiwgdHJh
Y2tlZCBmcmFtZXMgJWQsIG9yaWdpbmF0aW5nIGZyYW1lICVwIiwgdGhpcywgZnJhbWUsIGZyYW1l
LT50cmVlKCktPnVuaXF1ZU5hbWUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBtX3Byb2dyZXNz
VmFsdWUsIG1fbnVtUHJvZ3Jlc3NUcmFja2VkRnJhbWVzLCBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NG
cmFtZS5nZXQoKSk7CiAgICAgCiAgICAgaWYgKG1fbnVtUHJvZ3Jlc3NUcmFja2VkRnJhbWVzIDw9
IDApCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVn
YWN5V2ViQXJjaGl2ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcAkocmV2aXNpb24gNzAxODYpCisrKyBXZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTIs
NyArNDkyLDcgQEAgUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBMZWdhY3lXZWJBcgogICAg
IGlmIChyZXNwb25zZVVSTC5pc051bGwoKSkKICAgICAgICAgcmVzcG9uc2VVUkwgPSBLVVJMKFBh
cnNlZFVSTFN0cmluZywgIiIpOwogICAgICAgICAKLSAgICBQYXNzUmVmUHRyPEFyY2hpdmVSZXNv
dXJjZT4gbWFpblJlc291cmNlID0gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUodXRmOEJ1ZmZlciht
YXJrdXBTdHJpbmcpLCByZXNwb25zZVVSTCwgcmVzcG9uc2UubWltZVR5cGUoKSwgIlVURi04Iiwg
ZnJhbWUtPnRyZWUoKS0+bmFtZSgpKTsKKyAgICBQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4g
bWFpblJlc291cmNlID0gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUodXRmOEJ1ZmZlcihtYXJrdXBT
dHJpbmcpLCByZXNwb25zZVVSTCwgcmVzcG9uc2UubWltZVR5cGUoKSwgIlVURi04IiwgZnJhbWUt
PnRyZWUoKS0+dW5pcXVlTmFtZSgpKTsKIAogICAgIFZlY3RvcjxQYXNzUmVmUHRyPExlZ2FjeVdl
YkFyY2hpdmU+ID4gc3ViZnJhbWVBcmNoaXZlczsKICAgICBWZWN0b3I8UGFzc1JlZlB0cjxBcmNo
aXZlUmVzb3VyY2U+ID4gc3VicmVzb3VyY2VzOwpAQCAtNTA5LDcgKzUwOSw3IEBAIFBhc3NSZWZQ
dHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXIKICAgICAgICAgICAgIGlmIChzdWJmcmFt
ZUFyY2hpdmUpCiAgICAgICAgICAgICAgICAgc3ViZnJhbWVBcmNoaXZlcy5hcHBlbmQoc3ViZnJh
bWVBcmNoaXZlKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBMT0dfRVJST1Io
IlVuYWJsZWQgdG8gYXJjaGl2ZSBzdWJmcmFtZSAlcyIsIGNoaWxkRnJhbWUtPnRyZWUoKS0+bmFt
ZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIExPR19FUlJPUigi
VW5hYmxlZCB0byBhcmNoaXZlIHN1YmZyYW1lICVzIiwgY2hpbGRGcmFtZS0+dHJlZSgpLT51bmlx
dWVOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBMaXN0SGFzaFNldDxLVVJMPiBzdWJyZXNvdXJjZVVSTHM7CiAgICAgICAgICAgICBu
b2RlLT5nZXRTdWJyZXNvdXJjZVVSTHMoc3VicmVzb3VyY2VVUkxzKTsKSW5kZXg6IFdlYkNvcmUv
cGFnZS9GcmFtZVRyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZVRyZWUu
Y3BwCShyZXZpc2lvbiA3MDE4NikKKysrIFdlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCwxNiArNDAsMTggQEAgRnJhbWVUcmVlOjp+RnJhbWVUcmVlKCkKIAog
dm9pZCBGcmFtZVRyZWU6OnNldE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSAKIHsKKyAg
ICBtX25hbWUgPSBuYW1lOwogICAgIGlmICghcGFyZW50KCkpIHsKLSAgICAgICAgbV9uYW1lID0g
bmFtZTsKKyAgICAgICAgbV91bmlxdWVOYW1lID0gbmFtZTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICBtX25hbWUgPSBBdG9taWNTdHJpbmcoKTsgLy8gUmVtb3ZlIG91ciBvbGQgZnJhbWUg
bmFtZSBzbyBpdCdzIG5vdCBjb25zaWRlcmVkIGluIHVuaXF1ZUNoaWxkTmFtZS4KLSAgICBtX25h
bWUgPSBwYXJlbnQoKS0+dHJlZSgpLT51bmlxdWVDaGlsZE5hbWUobmFtZSk7CisgICAgbV91bmlx
dWVOYW1lID0gQXRvbWljU3RyaW5nKCk7IC8vIFJlbW92ZSBvdXIgb2xkIGZyYW1lIG5hbWUgc28g
aXQncyBub3QgY29uc2lkZXJlZCBpbiB1bmlxdWVDaGlsZE5hbWUuCisgICAgbV91bmlxdWVOYW1l
ID0gcGFyZW50KCktPnRyZWUoKS0+dW5pcXVlQ2hpbGROYW1lKG5hbWUpOwogfQogCiB2b2lkIEZy
YW1lVHJlZTo6Y2xlYXJOYW1lKCkKIHsKKyAgICBtX3VuaXF1ZU5hbWUgPSBBdG9taWNTdHJpbmco
KTsKICAgICBtX25hbWUgPSBBdG9taWNTdHJpbmcoKTsKIH0KIApAQCAtMTE5LDE5ICsxMjEsMTkg
QEAgQXRvbWljU3RyaW5nIEZyYW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lKAogICAgIFZlY3RvcjxG
cmFtZSosIDE2PiBjaGFpbjsKICAgICBGcmFtZSogZnJhbWU7CiAgICAgZm9yIChmcmFtZSA9IG1f
dGhpc0ZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkgewotICAg
ICAgICBpZiAoZnJhbWUtPnRyZWUoKS0+bmFtZSgpLnN0YXJ0c1dpdGgoZnJhbWVQYXRoUHJlZml4
KSkKKyAgICAgICAgaWYgKGZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKS5zdGFydHNXaXRoKGZy
YW1lUGF0aFByZWZpeCkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2hhaW4uYXBwZW5k
KGZyYW1lKTsKICAgICB9CiAgICAgU3RyaW5nIG5hbWU7CiAgICAgbmFtZSArPSBmcmFtZVBhdGhQ
cmVmaXg7CiAgICAgaWYgKGZyYW1lKQotICAgICAgICBuYW1lICs9IGZyYW1lLT50cmVlKCktPm5h
bWUoKS5zdHJpbmcoKS5zdWJzdHJpbmcoZnJhbWVQYXRoUHJlZml4TGVuZ3RoLAotICAgICAgICAg
ICAgZnJhbWUtPnRyZWUoKS0+bmFtZSgpLmxlbmd0aCgpIC0gZnJhbWVQYXRoUHJlZml4TGVuZ3Ro
IC0gZnJhbWVQYXRoU3VmZml4TGVuZ3RoKTsKKyAgICAgICAgbmFtZSArPSBmcmFtZS0+dHJlZSgp
LT51bmlxdWVOYW1lKCkuc3RyaW5nKCkuc3Vic3RyaW5nKGZyYW1lUGF0aFByZWZpeExlbmd0aCwK
KyAgICAgICAgICAgIGZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKS5sZW5ndGgoKSAtIGZyYW1l
UGF0aFByZWZpeExlbmd0aCAtIGZyYW1lUGF0aFN1ZmZpeExlbmd0aCk7CiAgICAgZm9yIChpbnQg
aSA9IGNoYWluLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIGZyYW1lID0gY2hh
aW5baV07CiAgICAgICAgIG5hbWUgKz0gIi8iOwotICAgICAgICBuYW1lICs9IGZyYW1lLT50cmVl
KCktPm5hbWUoKTsKKyAgICAgICAgbmFtZSArPSBmcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCk7
CiAgICAgfQogCiAgICAgLy8gU3VmZml4IGJ1ZmZlciBoYXMgbW9yZSB0aGFuIGVub3VnaCBzcGFj
ZSBmb3I6CkBAIC0xNTksNyArMTYxLDcgQEAgRnJhbWUqIEZyYW1lVHJlZTo6Y2hpbGQodW5zaWdu
ZWQgaW5kZXgpIAogRnJhbWUqIEZyYW1lVHJlZTo6Y2hpbGQoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKSBjb25zdAogewogICAgIGZvciAoRnJhbWUqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2libGluZygpKQotICAgICAgICBpZiAoY2hp
bGQtPnRyZWUoKS0+bmFtZSgpID09IG5hbWUpCisgICAgICAgIGlmIChjaGlsZC0+dHJlZSgpLT51
bmlxdWVOYW1lKCkgPT0gbmFtZSkKICAgICAgICAgICAgIHJldHVybiBjaGlsZDsKICAgICByZXR1
cm4gMDsKIH0KQEAgLTE4MSw3ICsxODMsNyBAQCBGcmFtZSogRnJhbWVUcmVlOjpmaW5kKGNvbnN0
IEF0b21pY1N0cmluCiAKICAgICAvLyBTZWFyY2ggc3VidHJlZSBzdGFydGluZyB3aXRoIHRoaXMg
ZnJhbWUgZmlyc3QuCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX3RoaXNGcmFtZTsgZnJhbWU7
IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KG1fdGhpc0ZyYW1lKSkKLSAgICAg
ICAgaWYgKGZyYW1lLT50cmVlKCktPm5hbWUoKSA9PSBuYW1lKQorICAgICAgICBpZiAoZnJhbWUt
PnRyZWUoKS0+dW5pcXVlTmFtZSgpID09IG5hbWUpCiAgICAgICAgICAgICByZXR1cm4gZnJhbWU7
CiAKICAgICAvLyBTZWFyY2ggdGhlIGVudGlyZSB0cmVlIGZvciB0aGlzIHBhZ2UgbmV4dC4KQEAg
LTE5Miw3ICsxOTQsNyBAQCBGcmFtZSogRnJhbWVUcmVlOjpmaW5kKGNvbnN0IEF0b21pY1N0cmlu
CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWlu
RnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCi0g
ICAgICAgIGlmIChmcmFtZS0+dHJlZSgpLT5uYW1lKCkgPT0gbmFtZSkKKyAgICAgICAgaWYgKGZy
YW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKSA9PSBuYW1lKQogICAgICAgICAgICAgcmV0dXJuIGZy
YW1lOwogCiAgICAgLy8gU2VhcmNoIHRoZSBlbnRpcmUgdHJlZSBvZiBlYWNoIG9mIHRoZSBvdGhl
ciBwYWdlcyBpbiB0aGlzIG5hbWVzcGFjZS4KQEAgLTIwMyw3ICsyMDUsNyBAQCBGcmFtZSogRnJh
bWVUcmVlOjpmaW5kKGNvbnN0IEF0b21pY1N0cmluCiAgICAgICAgIFBhZ2UqIG90aGVyUGFnZSA9
ICppdDsKICAgICAgICAgaWYgKG90aGVyUGFnZSAhPSBwYWdlKSB7CiAgICAgICAgICAgICBmb3Ig
KEZyYW1lKiBmcmFtZSA9IG90aGVyUGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZyYW1l
LT50cmVlKCktPm5hbWUoKSA9PSBuYW1lKQorICAgICAgICAgICAgICAgIGlmIChmcmFtZS0+dHJl
ZSgpLT51bmlxdWVOYW1lKCkgPT0gbmFtZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZy
YW1lOwogICAgICAgICAgICAgfQogICAgICAgICB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWVU
cmVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCShyZXZpc2lvbiA3
MDE4NikKKysrIFdlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzks
NiArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH5GcmFtZVRyZWUoKTsKIAog
ICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7
IH0KKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB1bmlxdWVOYW1lKCkgY29uc3QgeyByZXR1
cm4gbV91bmlxdWVOYW1lOyB9CiAgICAgICAgIHZvaWQgc2V0TmFtZShjb25zdCBBdG9taWNTdHJp
bmcmKTsKICAgICAgICAgdm9pZCBjbGVhck5hbWUoKTsKICAgICAgICAgRnJhbWUqIHBhcmVudChi
b29sIGNoZWNrRm9yRGlzY29ubmVjdGVkRnJhbWUgPSBmYWxzZSkgY29uc3Q7CkBAIC03Myw3ICs3
NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRnJhbWUqIG1fdGhpc0ZyYW1lOwog
CiAgICAgICAgIEZyYW1lKiBtX3BhcmVudDsKLSAgICAgICAgQXRvbWljU3RyaW5nIG1fbmFtZTsK
KyAgICAgICAgQXRvbWljU3RyaW5nIG1fbmFtZTsgLy8gVGhlIGFjdHVhbCBmcmFtZSBuYW1lICht
YXkgYmUgZW1wdHkpLgorICAgICAgICBBdG9taWNTdHJpbmcgbV91bmlxdWVOYW1lOwogCiAgICAg
ICAgIC8vIEZJWE1FOiB1c2UgTGlzdFJlZlB0cj8KICAgICAgICAgUmVmUHRyPEZyYW1lPiBtX25l
eHRTaWJsaW5nOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDE5NykKKysrIFdlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0x
MC0yMCAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIHVubmFtZWQgZnJhbWVzLCB3aW5kb3cu
bmFtZSByZXR1cm5zIGEgZ2VuZXJhdGVkIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTEKKworICAgICAgICBNb2RpZmllZCBDaHJvbWl1bS1w
b3J0IHRvIHVzZSBGcmFtZVRyZWU6OnVuaXF1ZU5hbWUoKS4gCisKKyAgICAgICAgKiBzcmMvV2Vi
RnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpuYW1lKToKKwog
MjAxMC0xMC0yMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjcwMTY1LgpJbmRleDogV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkocmV2aXNpb24gNzAxODYpCisrKyBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4Niw3ICs0ODYsNyBA
QCBXZWJGcmFtZSogV2ViRnJhbWU6OmZyb21GcmFtZU93bmVyRWxlbWVuCiAKIFdlYlN0cmluZyBX
ZWJGcmFtZUltcGw6Om5hbWUoKSBjb25zdAogewotICAgIHJldHVybiBtX2ZyYW1lLT50cmVlKCkt
Pm5hbWUoKTsKKyAgICByZXR1cm4gbV9mcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCk7CiB9CiAK
IHZvaWQgV2ViRnJhbWVJbXBsOjpzZXROYW1lKGNvbnN0IFdlYlN0cmluZyYgbmFtZSkKSW5kZXg6
IFdlYktpdC9lZmwvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9lZmwvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDE5NykKKysrIFdlYktpdC9lZmwvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0u
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZv
ciB1bm5hbWVkIGZyYW1lcywgd2luZG93Lm5hbWUgcmV0dXJucyBhIGdlbmVyYXRlZCBuYW1lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxCisKKyAg
ICAgICAgTW9kaWZpZWQgRUZMLXBvcnQgdG8gdXNlIEZyYW1lVHJlZTo6dW5pcXVlTmFtZSgpLiAK
KworICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX25hbWVf
Z2V0KToKKwogMjAxMC0xMC0xOSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJLaXQvZWZsL2V3
ay9ld2tfZnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5j
cHAJKHJldmlzaW9uIDcwMTg2KQorKysgV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDc0LDcgKzQ3NCw3IEBAIGNvbnN0IGNoYXIqIGV3a19mcmFtZV9uYW1l
X2dldChjb25zdCBFdmEKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgV1RGOjpTdHJp
bmcgcyA9IHNkLT5mcmFtZS0+dHJlZSgpLT5uYW1lKCk7CisgICAgV1RGOjpTdHJpbmcgcyA9IHNk
LT5mcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCk7CiAgICAgV1RGOjpDU3RyaW5nIGNzID0gcy51
dGY4KCk7CiAgICAgc2QtPm5hbWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZF9sZW5ndGgoY3MuZGF0
YSgpLCBjcy5sZW5ndGgoKSk7CiAgICAgcmV0dXJuIHNkLT5uYW1lOwpJbmRleDogV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9u
IDcwMTk3KQorKysgV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMC0xMC0yMCAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIHVubmFtZWQg
ZnJhbWVzLCB3aW5kb3cubmFtZSByZXR1cm5zIGEgZ2VuZXJhdGVkIG5hbWUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTEKKworICAgICAgICBNb2Rp
ZmllZCBHVEstcG9ydCB0byB1c2UgRnJhbWVUcmVlOjp1bmlxdWVOYW1lKCkuIAorCisgICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X25hbWUpOgorCiAyMDEwLTEwLTIwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCShyZXZpc2lvbiA3MDE4NikKKysrIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgwLDcgKzQ4MCw3
IEBAIEdfQ09OU1RfUkVUVVJOIGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2cKICAgICBpZiAoIWNv
cmVGcmFtZSkKICAgICAgICAgcmV0dXJuICIiOwogCi0gICAgU3RyaW5nIHN0cmluZyA9IGNvcmVG
cmFtZS0+dHJlZSgpLT5uYW1lKCk7CisgICAgU3RyaW5nIHN0cmluZyA9IGNvcmVGcmFtZS0+dHJl
ZSgpLT51bmlxdWVOYW1lKCk7CiAgICAgcHJpdi0+bmFtZSA9IGdfc3RyZHVwKHN0cmluZy51dGY4
KCkuZGF0YSgpKTsKICAgICByZXR1cm4gcHJpdi0+bmFtZTsKIH0KSW5kZXg6IFdlYktpdC9tYWMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3
MDE5NykKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTAtMTAtMjAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciB1bm5hbWVkIGZy
YW1lcywgd2luZG93Lm5hbWUgcmV0dXJucyBhIGdlbmVyYXRlZCBuYW1lCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxCisKKyAgICAgICAgTW9kaWZp
ZWQgTWFjLXBvcnQgdG8gdXNlIEZyYW1lVHJlZTo6dW5pcXVlTmFtZSgpLiAKKworICAgICAgICAq
IFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIG5hbWVdKToKKwogMjAx
MC0xMC0yMCAgRHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQkocmV2
aXNpb24gNzAxODYpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEzODYsNyArMTM4Niw3IEBAIC0gKE5TU3RyaW5nICopbmFtZQogICAgIEZyYW1l
KiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQog
ICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBjb3JlRnJhbWUtPnRyZWUoKS0+bmFtZSgp
OworICAgIHJldHVybiBjb3JlRnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpOwogfQogCiAtIChX
ZWJGcmFtZVZpZXcgKilmcmFtZVZpZXcKSW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzAxOTcpCisrKyBXZWJLaXQv
cXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjAg
IERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciB1bm5hbWVkIGZyYW1lcywgd2luZG93Lm5hbWUg
cmV0dXJucyBhIGdlbmVyYXRlZCBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NzUxCisKKyAgICAgICAgTW9kaWZpZWQgUXQtcG9ydCB0byB1c2Ug
RnJhbWVUcmVlOjp1bmlxdWVOYW1lKCkuIAorCisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5jcHA6
CisgICAgICAgIChRV2ViRnJhbWU6OmZyYW1lTmFtZSk6CisKIDIwMTAtMTAtMjAgIEx1aXogQWdv
c3RpbmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW50b25pbyBHb21lcy4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDcwMTg2KQor
KysgV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTgsNyAr
NzU4LDcgQEAgUUljb24gUVdlYkZyYW1lOjppY29uKCkgY29uc3QKICovCiBRU3RyaW5nIFFXZWJG
cmFtZTo6ZnJhbWVOYW1lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZC0+ZnJhbWUtPnRyZWUoKS0+
bmFtZSgpOworICAgIHJldHVybiBkLT5mcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCk7CiB9CiAK
IC8qIQpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dp
bi9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwMTk3KQorKysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yMCAgRGFuaWVsIEJhdGVzICA8
ZGJhdGVzQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRm9yIHVubmFtZWQgZnJhbWVzLCB3aW5kb3cubmFtZSByZXR1cm5zIGEgZ2VuZXJh
dGVkIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY3NTEKKworICAgICAgICBNb2RpZmllZCBBcHBsZSBXaW5kb3dzLXBvcnQgdG8gdXNlIEZyYW1l
VHJlZTo6dW5pcXVlTmFtZSgpLiAKKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAg
KFdlYkZyYW1lOjpuYW1lKToKKwogMjAxMC0xMC0yMCAgRHVtaXRydSBEYW5pbGl1YyAgPGR1bWlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDog
V2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJGcmFt
ZS5jcHAJKHJldmlzaW9uIDcwMTg2KQorKysgV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQzOCw3ICs0MzgsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdl
YkZyYW1lOjpuYW1lCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7
CiAKLSAgICAqZnJhbWVOYW1lID0gQlN0cmluZyhjb3JlRnJhbWUtPnRyZWUoKS0+bmFtZSgpKS5y
ZWxlYXNlKCk7CisgICAgKmZyYW1lTmFtZSA9IEJTdHJpbmcoY29yZUZyYW1lLT50cmVlKCktPnVu
aXF1ZU5hbWUoKSkucmVsZWFzZSgpOwogICAgIHJldHVybiBTX09LOwogfQogCkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA3MDE5NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI1IEBACisyMDEwLTEwLTIwICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3Ig
dW5uYW1lZCBmcmFtZXMsIHdpbmRvdy5uYW1lIHJldHVybnMgYSBnZW5lcmF0ZWQgbmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1MQorCisgICAg
ICAgIFVwZGF0ZWQgdGVzdCBjYXNlIGZhc3QvZnJhbWVzL2ZyYW1lLWVsZW1lbnQtbmFtZS5odG1s
IHRvIGNoZWNrCisgICAgICAgIHRoZSB2YWx1ZSBvZiB3aW5kb3cubmFtZS4KKworICAgICAgICAq
IGZhc3QvZnJhbWVzL2ZyYW1lLWVsZW1lbnQtbmFtZS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgcmVz
dWx0LgorICAgICAgICAqIGZhc3QvZnJhbWVzL2lmcmFtZS1zZXQtaW5uZXItaHRtbC1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQ7IFRoaXMgdGVzdCBlbnN1cmVkCisgICAgICAgIHRoYXQgdGhlIGdlbmVy
YXRlZCBuYW1lIGZvciBhbiB1bm5hbWVkIGZyYW1lcyB3YXMgdW5pcXVlIGJ5IGxvb2tpbmcgYXQg
dGhlCisgICAgICAgIHZhbHVlIG9mIHdpbmRvdy5uYW1lLiBIb3dldmVyLCB0aGUgZ2VuZXJhdGVk
IG5hbWUgc2hvdWxkIG5vdCBiZSBleHBvc2VkIHRvCisgICAgICAgIHdlYiBkZXZlbG9wZXJzLiBJ
bnN0ZWFkLCB3aW5kb3cubmFtZSBzaG91bGQgcmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcgZm9yCisg
ICAgICAgIGFuIHVubmFtZWQgZnJhbWUgYXMgaW1wbGllZCBieSBzZWN0aW9uIDUuMS42IG9mIHRo
ZSBIVE1MIDUgc3BlYy4gV2Ugc2hvdWxkCisgICAgICAgIGNvbnNpZGVyIGV4cG9zaW5nIGEgRFJU
IG1ldGhvZCBmb3Igb2J0YWluaW5nIHRoZSBpbnRlcm5hbCBmcmFtZSBuYW1lICh3aGljaAorICAg
ICAgICBtYXkgYmUgZ2VuZXJhdGVkKSBhbmQgcmUtaW1wbGVtZW50aW5nIHRoaXMgdGVzdCB0byB1
c2UgaXQuCisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLXNldC1pbm5lci1odG1sLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzb3VyY2VzL2ZyYW1lLWVsZW1lbnQt
bmFtZS1sZWZ0Lmh0bWw6IEFkZGVkIHRlc3QgZm9yIHdpbmRvdy5uYW1lLgorICAgICAgICAqIGZh
c3QvZnJhbWVzL3Jlc291cmNlcy9mcmFtZS1lbGVtZW50LW5hbWUtcmlnaHQuaHRtbDogRGl0dG8u
CisKIDIwMTAtMTAtMjAgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2ZyYW1lLWVsZW1lbnQtbmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvZnJhbWUtZWxlbWVudC1uYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
NzAxODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1lbGVtZW50LW5hbWUtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDEwICs0LDEyIEBACiBGcmFtZTogJ2xlZnQn
CiAtLS0tLS0tLQogUEFTUyBlc2NhcGUod2luZG93LmZyYW1lRWxlbWVudC5uYW1lKSBpcyAibGVm
dCIKK1BBU1MgZXNjYXBlKHdpbmRvdy5uYW1lKSBpcyAibGVmdCIKIAogCiAtLS0tLS0tLQogRnJh
bWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMS0tPi0tPicKIC0tLS0tLS0tCiBQQVNTIGVz
Y2FwZSh3aW5kb3cuZnJhbWVFbGVtZW50Lm5hbWUpIGlzICIiCitQQVNTIGVzY2FwZSh3aW5kb3cu
bmFtZSkgaXMgIiIKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXNldC1p
bm5lci1odG1sLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9pZnJhbWUtc2V0LWlubmVyLWh0bWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3MDE4NikK
KysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1zZXQtaW5uZXItaHRtbC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBACi0KLVRoaXMgdGVzdHMgdGhhdCBp
bnNlcnRpbmcgdHdvIDxpZnJhbWU+IGVsZW1lbnRzIHVzaW5nIGlubmVySFRNTCBhY3R1YWxseSBj
YXVzZXMgdHdvIGZyYW1lcyB3aXRoIHVuaXF1ZSBuYW1lcyB0byBiZSBjcmVhdGVkLgotU1VDQ0VT
UwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXNldC1pbm5lci1odG1sLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXNldC1pbm5l
ci1odG1sLmh0bWwJKHJldmlzaW9uIDcwMTg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
aWZyYW1lLXNldC1pbm5lci1odG1sLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzAgKzAsMCBA
QAotPGh0bWw+Ci08c2NyaXB0PgotZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgICAgIAotICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnRhaW5lcicpOwotICAgIHZhciByID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3Vs
dCcpOwotICAgIAotICAgIGMuaW5uZXJIVE1MID0gIjxzcGFuPjxpZnJhbWU+PC9pZnJhbWU+PGlm
cmFtZT48L2lmcmFtZT48L3NwYW4+IgotICAgIAotICAgIGlmICh3aW5kb3cuZnJhbWVzLmxlbmd0
aCAhPSAyKSB7Ci0gICAgICAgIHIuaW5uZXJIVE1MID0gJ0ZBSUxVUkUgLSBudW1iZXIgb2YgZnJh
bWVzIHNob3VsZCBiZSAyLCB3YXMgJyArIHdpbmRvdy5mcmFtZXMubGVuZ3RoOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIAotICAgIGlmICh3aW5kb3cuZnJhbWVzWzBdLm5hbWUgPT0gd2lu
ZG93LmZyYW1lc1sxXS5uYW1lKSB7Ci0gICAgICAgIHIuaW5uZXJIVE1MID0gJ0ZBSUxVUkUgLSBi
b3RoIHdpbmRvd3MgaGFkIHRuZSBzYW1lIG5hbWUnCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgCi0gICAgci5pbm5lckhUTUwgPSAnU1VDQ0VTUyc7Ci19Ci08L3NjcmlwdD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Ci08ZGl2PlRoaXMg
dGVzdHMgdGhhdCBpbnNlcnRpbmcgdHdvICZsdDtpZnJhbWUmZ3Q7IGVsZW1lbnRzIHVzaW5nIGlu
bmVySFRNTCBhY3R1YWxseSBjYXVzZXMgdHdvIGZyYW1lcyB3aXRoIHVuaXF1ZSBuYW1lcyB0byBi
ZSBjcmVhdGVkLjwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij5GQUlMVVJFPC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvZnJhbWUt
ZWxlbWVudC1uYW1lLWxlZnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9yZXNvdXJjZXMvZnJhbWUtZWxlbWVudC1uYW1lLWxlZnQuaHRtbAkocmV2aXNpb24gNzAx
ODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvZnJhbWUtZWxlbWVudC1u
YW1lLWxlZnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw1ICs3LDYgQEAKIDxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXNjYXBlKHdp
bmRvdy5mcmFtZUVsZW1lbnQubmFtZSkiLCAibGVmdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJlc2NhcGUod2luZG93Lm5hbWUpIiwgImxlZnQiKTsKIDwvc2NyaXB0PgogPC9ib2R5PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzb3VyY2VzL2ZyYW1lLWVsZW1lbnQtbmFtZS1y
aWdodC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNl
cy9mcmFtZS1lbGVtZW50LW5hbWUtcmlnaHQuaHRtbAkocmV2aXNpb24gNzAxODYpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvZnJhbWUtZWxlbWVudC1uYW1lLXJpZ2h0Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNSArNyw2IEBACiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KIDxzY3JpcHQ+CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImVzY2FwZSh3aW5kb3cuZnJhbWVF
bGVtZW50Lm5hbWUpIiwgIiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlc2NhcGUod2luZG93
Lm5hbWUpIiwgIiIpOwogPC9zY3JpcHQ+CiA8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71666</attachid>
            <date>2010-10-23 21:00:54 -0700</date>
            <delta_ts>2010-10-27 15:28:57 -0700</delta_ts>
            <desc>Patch with updated test case</desc>
            <filename>Bug6751_f.patch</filename>
            <type>text/plain</type>
            <size>28270</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDM4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDggQEAKKzIwMTAtMTAtMjMgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciB1
bm5hbWVkIGZyYW1lcywgd2luZG93Lm5hbWUgcmV0dXJucyBhIGdlbmVyYXRlZCBuYW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxCisKKyAgICAg
ICAgRml4ZXMgYW4gaXNzdWUgd2hlcmUgdGhlIHdpbmRvdy5uYW1lIG9mIGFuIHVubmFtZWQgZnJh
bWUgcmV0dXJucworICAgICAgICBhIHVuaXF1ZSBnZW5lcmF0ZWQgbmFtZSB0aGF0IGlzIHVzZWQg
aW50ZXJuYWxseSB0byBpZGVudGlmeSB0aGUKKyAgICAgICAgZnJhbWUuIEluc3RlYWQsIHdlIHNo
b3VsZCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGFzIGltcGxpZWQgYnkKKyAgICAgICAgc2VjdGlv
biA1LjEuNiBvZiB0aGUgSFRNTDUgc3BlYy4gKGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2Jy
b3dzZXJzLmh0bWwjYnJvd3NpbmctY29udGV4dC1uYW1lcykuCisgICAgICAgIFRoaXMgc2VjdGlv
biBkZXNjcmliZXMgdGhhdCBhIGJyb3dzaW5nIGNvbnRleHQgY2FuIGhhdmUgbm8gbmFtZSBvciBi
ZQorICAgICAgICB0aGUgZW1wdHkgc3RyaW5nLgorCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVF
bGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6
b3BlblVSTCk6IFJlbW92ZWQgQVNTRVJUIGZvciBlbXB0eQorICAgICAgICBmcmFtZSBuYW1lIHNp
bmNlIHRoaXMgaXMgdmFsaWQgYXMgcGVyIHRoZSBIVE1MNSBzcGVjLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U6OnNldE5hbWUpOiBSZW1vdmVkIHRoZSBjYWxsIHRvIEZy
YW1lVHJlZTo6dW5pcXVlQ2hpbGROYW1lKCkKKyAgICAgICAgc2luY2UgdGhlIGxvYWRlciBjb2Rl
IG5vIGxvbmdlciBkZXBlbmRzIG9uIHRoZSBmcmFtZSBuYW1lIGJlaW5nIHVuaXF1ZS4KKyAgICAg
ICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmg6CisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjptYWluUmVz
b3VyY2UpOiBVc2UgRnJhbWVUcmVlOjp1bmlxdWVOYW1lKCkuIAorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFVSTElu
dG9DaGlsZEZyYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29t
bWl0UHJvdmlzaW9uYWxMb2FkKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlRG9j
dW1lbnRTdGF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6
OnJlc3RvcmVEb2N1bWVudFN0YXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5
Q29udHJvbGxlcjo6Y3JlYXRlSXRlbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9y
eUNvbnRyb2xsZXI6OmN1cnJlbnRGcmFtZXNNYXRjaEl0ZW0pOiBEaXR0by4KKyAgICAgICAgKiBs
b2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVHJh
Y2tlcjo6cHJvZ3Jlc3NTdGFydGVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVz
c1RyYWNrZXI6OnByb2dyZXNzQ29tcGxldGVkKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL2Fy
Y2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lX
ZWJBcmNoaXZlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnNldE5hbWUpOiBNb2RpZmllZCB0byBzdG9y
ZSB0aGUgRE9NLXNwZWNpZmllZAorICAgICAgICBuYW1lIG9mIHRoZSBmcmFtZS4KKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVHJlZTo6Y2xlYXJOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
VHJlZTo6dW5pcXVlQ2hpbGROYW1lKTogVXNlIEZyYW1lVHJlZTo6dW5pcXVlTmFtZSgpLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjpjaGlsZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVUcmVlOjpmaW5kKTogRGl0dG8uCisgICAgICAgICogcGFnZS9GcmFtZVRyZWUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6dW5pcXVlTmFtZSk6IEFkZGVkLgorCiAyMDEw
LTEwLTIyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIFJvYmVuIGFuZCBTYW0gV2VpbmlnLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxG
cmFtZUVsZW1lbnRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZyYW1l
RWxlbWVudEJhc2UuY3BwCShyZXZpc2lvbiA3MDM4MCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50QmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyLDggKzkyLDYgQEAgYm9vbCBI
VE1MRnJhbWVFbGVtZW50QmFzZTo6aXNVUkxBbGxvd2VkKAogCiB2b2lkIEhUTUxGcmFtZUVsZW1l
bnRCYXNlOjpvcGVuVVJMKGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlz
dCkKIHsKLSAgICBBU1NFUlQoIW1fZnJhbWVOYW1lLmlzRW1wdHkoKSk7Ci0KICAgICBpZiAoIWlz
VVJMQWxsb3dlZCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTE1NSw5ICsxNTMsNiBAQCB2b2lk
IEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpzZXROYW1lKCkKICAgICBtX2ZyYW1lTmFtZSA9IGdldEF0
dHJpYnV0ZShuYW1lQXR0cik7CiAgICAgaWYgKG1fZnJhbWVOYW1lLmlzTnVsbCgpKQogICAgICAg
ICBtX2ZyYW1lTmFtZSA9IGdldElkQXR0cmlidXRlKCk7Ci0gICAgCi0gICAgaWYgKEZyYW1lKiBw
YXJlbnRGcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpCi0gICAgICAgIG1fZnJhbWVOYW1lID0g
cGFyZW50RnJhbWUtPnRyZWUoKS0+dW5pcXVlQ2hpbGROYW1lKG1fZnJhbWVOYW1lKTsKIH0KIAog
dm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6c2V0TmFtZUFuZE9wZW5VUkwoKQpJbmRleDogV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgJKHJldmlzaW9uIDcwMzgwKQorKysgV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBzZXROYW1lQW5kT3BlblVSTENhbGxiYWNrKE5v
ZGUqKTsKIAogICAgIEF0b21pY1N0cmluZyBtX1VSTDsKLSAgICBBdG9taWNTdHJpbmcgbV9mcmFt
ZU5hbWU7CisgICAgQXRvbWljU3RyaW5nIG1fZnJhbWVOYW1lOyAvLyBUaGUgYWN0dWFsIGZyYW1l
IG5hbWUgKG1heSBiZSBlbXB0eSkuCiAKICAgICBTY3JvbGxiYXJNb2RlIG1fc2Nyb2xsaW5nOwog
CkluZGV4OiBXZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCShyZXZpc2lvbiA3MDM4MCkKKysrIFdl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDkxLDcg
KzQ5MSw3IEBAIFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBEb2N1bWVudExvYWQKICAgICBp
ZiAoIW1haW5SZXNvdXJjZUJ1ZmZlcikKICAgICAgICAgbWFpblJlc291cmNlQnVmZmVyID0gU2hh
cmVkQnVmZmVyOjpjcmVhdGUoKTsKICAgICAgICAgCi0gICAgcmV0dXJuIEFyY2hpdmVSZXNvdXJj
ZTo6Y3JlYXRlKG1haW5SZXNvdXJjZUJ1ZmZlciwgci51cmwoKSwgci5taW1lVHlwZSgpLCByLnRl
eHRFbmNvZGluZ05hbWUoKSwgZnJhbWUoKS0+dHJlZSgpLT5uYW1lKCkpOworICAgIHJldHVybiBB
cmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShtYWluUmVzb3VyY2VCdWZmZXIsIHIudXJsKCksIHIubWlt
ZVR5cGUoKSwgci50ZXh0RW5jb2RpbmdOYW1lKCksIGZyYW1lKCktPnRyZWUoKS0+dW5pcXVlTmFt
ZSgpKTsKIH0KIAogUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IERvY3VtZW50TG9hZGVyOjpz
dWJyZXNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CkluZGV4OiBXZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCShyZXZpc2lvbiA3MDM4MCkKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTI3LDcgKzkyNyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRV
UkxJbnRvQ2hpbGRGcmFtZSgKICAgICAvLyBJZiB3ZSdyZSBtb3ZpbmcgaW4gdGhlIGJhY2svZm9y
d2FyZCBsaXN0LCB3ZSBtaWdodCB3YW50IHRvIHJlcGxhY2UgdGhlIGNvbnRlbnQKICAgICAvLyBv
ZiB0aGlzIGNoaWxkIGZyYW1lIHdpdGggd2hhdGV2ZXIgd2FzIHRoZXJlIGF0IHRoYXQgcG9pbnQu
CiAgICAgaWYgKHBhcmVudEl0ZW0gJiYgcGFyZW50SXRlbS0+Y2hpbGRyZW4oKS5zaXplKCkgJiYg
aXNCYWNrRm9yd2FyZExvYWRUeXBlKGxvYWRUeXBlKSkgewotICAgICAgICBIaXN0b3J5SXRlbSog
Y2hpbGRJdGVtID0gcGFyZW50SXRlbS0+Y2hpbGRJdGVtV2l0aFRhcmdldChjaGlsZEZyYW1lLT50
cmVlKCktPm5hbWUoKSk7CisgICAgICAgIEhpc3RvcnlJdGVtKiBjaGlsZEl0ZW0gPSBwYXJlbnRJ
dGVtLT5jaGlsZEl0ZW1XaXRoVGFyZ2V0KGNoaWxkRnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgp
KTsKICAgICAgICAgaWYgKGNoaWxkSXRlbSkgewogICAgICAgICAgICAgLy8gVXNlIHRoZSBvcmln
aW5hbCBVUkwgdG8gZW5zdXJlIHdlIGdldCBhbGwgdGhlIHNpZGUtZWZmZWN0cywgc3VjaCBhcwog
ICAgICAgICAgICAgLy8gb25Mb2FkIGhhbmRsZXJzLCBvZiBhbnkgcmVkaXJlY3RzIHRoYXQgaGFw
cGVuZWQuIEFuIGV4YW1wbGUgb2Ygd2hlcmUKQEAgLTkzOCw3ICs5MzgsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUoCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBS
ZWZQdHI8QXJjaGl2ZT4gc3ViZnJhbWVBcmNoaXZlID0gYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+
cG9wQXJjaGl2ZUZvclN1YmZyYW1lKGNoaWxkRnJhbWUtPnRyZWUoKS0+bmFtZSgpKTsKKyAgICBS
ZWZQdHI8QXJjaGl2ZT4gc3ViZnJhbWVBcmNoaXZlID0gYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+
cG9wQXJjaGl2ZUZvclN1YmZyYW1lKGNoaWxkRnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpKTsK
ICAgICAKICAgICBpZiAoc3ViZnJhbWVBcmNoaXZlKQogICAgICAgICBjaGlsZEZyYW1lLT5sb2Fk
ZXIoKS0+bG9hZEFyY2hpdmUoc3ViZnJhbWVBcmNoaXZlLnJlbGVhc2UoKSk7CkBAIC0xODIxLDcg
KzE4MjEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoCiAgICAg
UmVmUHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBhZ2UgPSBtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZSA/
IHBhZ2VDYWNoZSgpLT5nZXQoaGlzdG9yeSgpLT5wcm92aXNpb25hbEl0ZW0oKSkgOiAwOwogICAg
IFJlZlB0cjxEb2N1bWVudExvYWRlcj4gcGRsID0gbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVy
OwogCi0gICAgTE9HKFBhZ2VDYWNoZSwgIldlYkNvcmVMb2FkaW5nICVzOiBBYm91dCB0byBjb21t
aXQgcHJvdmlzaW9uYWwgbG9hZCBmcm9tIHByZXZpb3VzIFVSTCAnJXMnIHRvIG5ldyBVUkwgJyVz
JyIsIG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fVVJM
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIAorICAgIExPRyhQYWdlQ2FjaGUsICJXZWJDb3JlTG9h
ZGluZyAlczogQWJvdXQgdG8gY29tbWl0IHByb3Zpc2lvbmFsIGxvYWQgZnJvbSBwcmV2aW91cyBV
UkwgJyVzJyB0byBuZXcgVVJMICclcyciLCBtX2ZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBtX1VSTC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAKICAg
ICAgICAgcGRsID8gcGRsLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpIDogIjxubyBwcm92
aXNpb25hbCBEb2N1bWVudExvYWRlcj4iKTsKIAogICAgIC8vIENoZWNrIHRvIHNlZSBpZiB3ZSBu
ZWVkIHRvIGNhY2hlIHRoZSBwYWdlIHdlIGFyZSBuYXZpZ2F0aW5nIGF3YXkgZnJvbSBpbnRvIHRo
ZSBiYWNrL2ZvcndhcmQgY2FjaGUuCkBAIC0xODY5LDcgKzE4NjksNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoCiAgICAgICAgIGRpZE9wZW5VUkwodXJsKTsKICAg
ICB9CiAKLSAgICBMT0coTG9hZGluZywgIldlYkNvcmVMb2FkaW5nICVzOiBGaW5pc2hlZCBjb21t
aXR0aW5nIHByb3Zpc2lvbmFsIGxvYWQgdG8gVVJMICVzIiwgbV9mcmFtZS0+dHJlZSgpLT5uYW1l
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbV9VUkwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CisgICAgTE9HKExvYWRpbmcsICJXZWJDb3JlTG9hZGluZyAlczogRmluaXNoZWQgY29tbWl0dGlu
ZyBwcm92aXNpb25hbCBsb2FkIHRvIFVSTCAlcyIsIG1fZnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFt
ZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fVVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwogCiAgICAgaWYgKG1fbG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZVN0YW5kYXJkICYmIG1fZG9j
dW1lbnRMb2FkZXItPmlzQ2xpZW50UmVkaXJlY3QoKSkKICAgICAgICAgaGlzdG9yeSgpLT51cGRh
dGVGb3JDbGllbnRSZWRpcmVjdCgpOwpJbmRleDogV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRy
b2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gNzAzODApCisrKyBXZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIEhpc3RvcnlDb250
cm9sbGVyOjpzYXZlRG9jdW1lbnRTdGF0CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICAKICAg
ICBpZiAoaXRlbS0+aXNDdXJyZW50RG9jdW1lbnQoZG9jdW1lbnQpKSB7Ci0gICAgICAgIExPRyhM
b2FkaW5nLCAiV2ViQ29yZUxvYWRpbmcgJXM6IHNhdmluZyBmb3JtIHN0YXRlIHRvICVwIiwgbV9m
cmFtZS0+dHJlZSgpLT5uYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgaXRlbSk7CisgICAg
ICAgIExPRyhMb2FkaW5nLCAiV2ViQ29yZUxvYWRpbmcgJXM6IHNhdmluZyBmb3JtIHN0YXRlIHRv
ICVwIiwgbV9mcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgaXRlbSk7CiAgICAgICAgIGl0ZW0tPnNldERvY3VtZW50U3RhdGUoZG9jdW1lbnQtPmZvcm1F
bGVtZW50c1N0YXRlKCkpOwogICAgIH0KIH0KQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIEhpc3Rv
cnlDb250cm9sbGVyOjpyZXN0b3JlRG9jdW1lbnRTCiAgICAgaWYgKCFpdGVtVG9SZXN0b3JlKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBMT0coTG9hZGluZywgIldlYkNvcmVMb2FkaW5nICVzOiBy
ZXN0b3JpbmcgZm9ybSBzdGF0ZSBmcm9tICVwIiwgbV9mcmFtZS0+dHJlZSgpLT5uYW1lKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgaXRlbVRvUmVzdG9yZSk7CisgICAgTE9HKExvYWRpbmcsICJX
ZWJDb3JlTG9hZGluZyAlczogcmVzdG9yaW5nIGZvcm0gc3RhdGUgZnJvbSAlcCIsIG1fZnJhbWUt
PnRyZWUoKS0+dW5pcXVlTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGl0ZW1Ub1Jlc3Rv
cmUpOwogICAgIGRvYy0+c2V0U3RhdGVGb3JOZXdGb3JtRWxlbWVudHMoaXRlbVRvUmVzdG9yZS0+
ZG9jdW1lbnRTdGF0ZSgpKTsKIH0KIApAQCAtNDgxLDEwICs0ODEsMTAgQEAgUGFzc1JlZlB0cjxI
aXN0b3J5SXRlbT4gSGlzdG9yeUNvbnRyb2xsZQogICAgICAgICBvcmlnaW5hbFVSTCA9IGJsYW5r
VVJMKCk7CiAgICAgCiAgICAgRnJhbWUqIHBhcmVudEZyYW1lID0gbV9mcmFtZS0+dHJlZSgpLT5w
YXJlbnQoKTsKLSAgICBTdHJpbmcgcGFyZW50ID0gcGFyZW50RnJhbWUgPyBwYXJlbnRGcmFtZS0+
dHJlZSgpLT5uYW1lKCkgOiAiIjsKKyAgICBTdHJpbmcgcGFyZW50ID0gcGFyZW50RnJhbWUgPyBw
YXJlbnRGcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCkgOiAiIjsKICAgICBTdHJpbmcgdGl0bGUg
PSBkb2N1bWVudExvYWRlciA/IGRvY3VtZW50TG9hZGVyLT50aXRsZSgpIDogIiI7CiAKLSAgICBS
ZWZQdHI8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBIaXN0b3J5SXRlbTo6Y3JlYXRlKHVybCwgbV9mcmFt
ZS0+dHJlZSgpLT5uYW1lKCksIHBhcmVudCwgdGl0bGUpOworICAgIFJlZlB0cjxIaXN0b3J5SXRl
bT4gaXRlbSA9IEhpc3RvcnlJdGVtOjpjcmVhdGUodXJsLCBtX2ZyYW1lLT50cmVlKCktPnVuaXF1
ZU5hbWUoKSwgcGFyZW50LCB0aXRsZSk7CiAgICAgaXRlbS0+c2V0T3JpZ2luYWxVUkxTdHJpbmco
b3JpZ2luYWxVUkwuc3RyaW5nKCkpOwogCiAgICAgaWYgKCF1bnJlYWNoYWJsZVVSTC5pc0VtcHR5
KCkgfHwgIWRvY3VtZW50TG9hZGVyIHx8IGRvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgpLmh0dHBT
dGF0dXNDb2RlKCkgPj0gNDAwKQpAQCAtNTk5LDcgKzU5OSw3IEBAIHZvaWQgSGlzdG9yeUNvbnRy
b2xsZXI6OnJlY3Vyc2l2ZUdvVG9JdGUKIC8vIEhlbHBlciBtZXRob2QgdGhhdCBkZXRlcm1pbmVz
IHdoZXRoZXIgdGhlIGN1cnJlbnQgZnJhbWUgdHJlZSBtYXRjaGVzIGdpdmVuIGhpc3RvcnkgaXRl
bSdzLgogYm9vbCBIaXN0b3J5Q29udHJvbGxlcjo6Y3VycmVudEZyYW1lc01hdGNoSXRlbShIaXN0
b3J5SXRlbSogaXRlbSkgY29uc3QKIHsKLSAgICBpZiAoKCFtX2ZyYW1lLT50cmVlKCktPm5hbWUo
KS5pc0VtcHR5KCkgfHwgIWl0ZW0tPnRhcmdldCgpLmlzRW1wdHkoKSkgJiYgbV9mcmFtZS0+dHJl
ZSgpLT5uYW1lKCkgIT0gaXRlbS0+dGFyZ2V0KCkpCisgICAgaWYgKCghbV9mcmFtZS0+dHJlZSgp
LT51bmlxdWVOYW1lKCkuaXNFbXB0eSgpIHx8ICFpdGVtLT50YXJnZXQoKS5pc0VtcHR5KCkpICYm
IG1fZnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpICE9IGl0ZW0tPnRhcmdldCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAgIGNvbnN0IEhpc3RvcnlJdGVtVmVjdG9yJiBj
aGlsZEl0ZW1zID0gaXRlbS0+Y2hpbGRyZW4oKTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL1Byb2dy
ZXNzVHJhY2tlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFj
a2VyLmNwcAkocmV2aXNpb24gNzAzODApCisrKyBXZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNr
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBQcm9ncmVzc1Ry
YWNrZXI6OnJlc2V0KCkKIAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzU3RhcnRlZChG
cmFtZSogZnJhbWUpCiB7Ci0gICAgTE9HKFByb2dyZXNzLCAiUHJvZ3Jlc3Mgc3RhcnRlZCAoJXAp
IC0gZnJhbWUgJXAoXCIlc1wiKSwgdmFsdWUgJWYsIHRyYWNrZWQgZnJhbWVzICVkLCBvcmlnaW5h
dGluZyBmcmFtZSAlcCIsIHRoaXMsIGZyYW1lLCBmcmFtZS0+dHJlZSgpLT5uYW1lKCkuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSwgbV9wcm9ncmVzc1ZhbHVlLCBtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcywgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUuZ2V0KCkpOworICAgIExPRyhQcm9ncmVz
cywgIlByb2dyZXNzIHN0YXJ0ZWQgKCVwKSAtIGZyYW1lICVwKFwiJXNcIiksIHZhbHVlICVmLCB0
cmFja2VkIGZyYW1lcyAlZCwgb3JpZ2luYXRpbmcgZnJhbWUgJXAiLCB0aGlzLCBmcmFtZSwgZnJh
bWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fcHJvZ3Jl
c3NWYWx1ZSwgbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMsIG1fb3JpZ2luYXRpbmdQcm9ncmVz
c0ZyYW1lLmdldCgpKTsKIAogICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPndpbGxDaGFu
Z2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogICAgIApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgUHJv
Z3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnIKIAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6
OnByb2dyZXNzQ29tcGxldGVkKEZyYW1lKiBmcmFtZSkKIHsKLSAgICBMT0coUHJvZ3Jlc3MsICJQ
cm9ncmVzcyBjb21wbGV0ZWQgKCVwKSAtIGZyYW1lICVwKFwiJXNcIiksIHZhbHVlICVmLCB0cmFj
a2VkIGZyYW1lcyAlZCwgb3JpZ2luYXRpbmcgZnJhbWUgJXAiLCB0aGlzLCBmcmFtZSwgZnJhbWUt
PnRyZWUoKS0+bmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fcHJvZ3Jlc3NWYWx1ZSwg
bV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMsIG1fb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lLmdl
dCgpKTsKKyAgICBMT0coUHJvZ3Jlc3MsICJQcm9ncmVzcyBjb21wbGV0ZWQgKCVwKSAtIGZyYW1l
ICVwKFwiJXNcIiksIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAlZCwgb3JpZ2luYXRpbmcgZnJh
bWUgJXAiLCB0aGlzLCBmcmFtZSwgZnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIG1fcHJvZ3Jlc3NWYWx1ZSwgbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFt
ZXMsIG1fb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lLmdldCgpKTsKICAgICAKICAgICBpZiAobV9u
dW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMgPD0gMCkKICAgICAgICAgcmV0dXJuOwpJbmRleDogV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCShyZXZpc2lv
biA3MDM4MCkKKysrIFdlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5Miw3ICs0OTIsNyBAQCBQYXNzUmVmUHRyPExlZ2FjeVdl
YkFyY2hpdmU+IExlZ2FjeVdlYkFyCiAgICAgaWYgKHJlc3BvbnNlVVJMLmlzTnVsbCgpKQogICAg
ICAgICByZXNwb25zZVVSTCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCAiIik7CiAgICAgICAgIAot
ICAgIFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBtYWluUmVzb3VyY2UgPSBBcmNoaXZlUmVz
b3VyY2U6OmNyZWF0ZSh1dGY4QnVmZmVyKG1hcmt1cFN0cmluZyksIHJlc3BvbnNlVVJMLCByZXNw
b25zZS5taW1lVHlwZSgpLCAiVVRGLTgiLCBmcmFtZS0+dHJlZSgpLT5uYW1lKCkpOworICAgIFBh
c3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBtYWluUmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6
OmNyZWF0ZSh1dGY4QnVmZmVyKG1hcmt1cFN0cmluZyksIHJlc3BvbnNlVVJMLCByZXNwb25zZS5t
aW1lVHlwZSgpLCAiVVRGLTgiLCBmcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCkpOwogCiAgICAg
VmVjdG9yPFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gPiBzdWJmcmFtZUFyY2hpdmVzOwog
ICAgIFZlY3RvcjxQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gPiBzdWJyZXNvdXJjZXM7CkBA
IC01MDksNyArNTA5LDcgQEAgUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBMZWdhY3lXZWJB
cgogICAgICAgICAgICAgaWYgKHN1YmZyYW1lQXJjaGl2ZSkKICAgICAgICAgICAgICAgICBzdWJm
cmFtZUFyY2hpdmVzLmFwcGVuZChzdWJmcmFtZUFyY2hpdmUpOwogICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIExPR19FUlJPUigiVW5hYmxlZCB0byBhcmNoaXZlIHN1YmZyYW1lICVz
IiwgY2hpbGRGcmFtZS0+dHJlZSgpLT5uYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGVkIHRvIGFyY2hpdmUgc3ViZnJhbWUgJXMi
LCBjaGlsZEZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIExpc3RIYXNoU2V0PEtVUkw+IHN1YnJl
c291cmNlVVJMczsKICAgICAgICAgICAgIG5vZGUtPmdldFN1YnJlc291cmNlVVJMcyhzdWJyZXNv
dXJjZVVSTHMpOwpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAJKHJldmlzaW9uIDcwMzgwKQorKysgV2ViQ29y
ZS9wYWdlL0ZyYW1lVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE3ICs0MCwxOSBAQCBG
cmFtZVRyZWU6On5GcmFtZVRyZWUoKQogCiB2b2lkIEZyYW1lVHJlZTo6c2V0TmFtZShjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUpIAogeworICAgIG1fbmFtZSA9IG5hbWU7CiAgICAgaWYgKCFwYXJl
bnQoKSkgewotICAgICAgICBtX25hbWUgPSBuYW1lOworICAgICAgICBtX3VuaXF1ZU5hbWUgPSBu
YW1lOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIG1fbmFtZSA9IEF0b21pY1N0cmluZygp
OyAvLyBSZW1vdmUgb3VyIG9sZCBmcmFtZSBuYW1lIHNvIGl0J3Mgbm90IGNvbnNpZGVyZWQgaW4g
dW5pcXVlQ2hpbGROYW1lLgotICAgIG1fbmFtZSA9IHBhcmVudCgpLT50cmVlKCktPnVuaXF1ZUNo
aWxkTmFtZShuYW1lKTsKKyAgICBtX3VuaXF1ZU5hbWUgPSBBdG9taWNTdHJpbmcoKTsgLy8gUmVt
b3ZlIG91ciBvbGQgZnJhbWUgbmFtZSBzbyBpdCdzIG5vdCBjb25zaWRlcmVkIGluIHVuaXF1ZUNo
aWxkTmFtZS4KKyAgICBtX3VuaXF1ZU5hbWUgPSBwYXJlbnQoKS0+dHJlZSgpLT51bmlxdWVDaGls
ZE5hbWUobmFtZSk7CiB9CiAKIHZvaWQgRnJhbWVUcmVlOjpjbGVhck5hbWUoKQogewogICAgIG1f
bmFtZSA9IEF0b21pY1N0cmluZygpOworICAgIG1fdW5pcXVlTmFtZSA9IEF0b21pY1N0cmluZygp
OwogfQogCiBGcmFtZSogRnJhbWVUcmVlOjpwYXJlbnQoYm9vbCBjaGVja0ZvckRpc2Nvbm5lY3Rl
ZEZyYW1lKSBjb25zdCAKQEAgLTExOSwxOSArMTIxLDE5IEBAIEF0b21pY1N0cmluZyBGcmFtZVRy
ZWU6OnVuaXF1ZUNoaWxkTmFtZSgKICAgICBWZWN0b3I8RnJhbWUqLCAxNj4gY2hhaW47CiAgICAg
RnJhbWUqIGZyYW1lOwogICAgIGZvciAoZnJhbWUgPSBtX3RoaXNGcmFtZTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT50cmVlKCkt
Pm5hbWUoKS5zdGFydHNXaXRoKGZyYW1lUGF0aFByZWZpeCkpCisgICAgICAgIGlmIChmcmFtZS0+
dHJlZSgpLT51bmlxdWVOYW1lKCkuc3RhcnRzV2l0aChmcmFtZVBhdGhQcmVmaXgpKQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNoYWluLmFwcGVuZChmcmFtZSk7CiAgICAgfQogICAgIFN0
cmluZyBuYW1lOwogICAgIG5hbWUgKz0gZnJhbWVQYXRoUHJlZml4OwogICAgIGlmIChmcmFtZSkK
LSAgICAgICAgbmFtZSArPSBmcmFtZS0+dHJlZSgpLT5uYW1lKCkuc3RyaW5nKCkuc3Vic3RyaW5n
KGZyYW1lUGF0aFByZWZpeExlbmd0aCwKLSAgICAgICAgICAgIGZyYW1lLT50cmVlKCktPm5hbWUo
KS5sZW5ndGgoKSAtIGZyYW1lUGF0aFByZWZpeExlbmd0aCAtIGZyYW1lUGF0aFN1ZmZpeExlbmd0
aCk7CisgICAgICAgIG5hbWUgKz0gZnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpLnN0cmluZygp
LnN1YnN0cmluZyhmcmFtZVBhdGhQcmVmaXhMZW5ndGgsCisgICAgICAgICAgICBmcmFtZS0+dHJl
ZSgpLT51bmlxdWVOYW1lKCkubGVuZ3RoKCkgLSBmcmFtZVBhdGhQcmVmaXhMZW5ndGggLSBmcmFt
ZVBhdGhTdWZmaXhMZW5ndGgpOwogICAgIGZvciAoaW50IGkgPSBjaGFpbi5zaXplKCkgLSAxOyBp
ID49IDA7IC0taSkgewogICAgICAgICBmcmFtZSA9IGNoYWluW2ldOwogICAgICAgICBuYW1lICs9
ICIvIjsKLSAgICAgICAgbmFtZSArPSBmcmFtZS0+dHJlZSgpLT5uYW1lKCk7CisgICAgICAgIG5h
bWUgKz0gZnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpOwogICAgIH0KIAogICAgIC8vIFN1ZmZp
eCBidWZmZXIgaGFzIG1vcmUgdGhhbiBlbm91Z2ggc3BhY2UgZm9yOgpAQCAtMTU5LDcgKzE2MSw3
IEBAIEZyYW1lKiBGcmFtZVRyZWU6OmNoaWxkKHVuc2lnbmVkIGluZGV4KSAKIEZyYW1lKiBGcmFt
ZVRyZWU6OmNoaWxkKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKIHsKICAgICBmb3Ig
KEZyYW1lKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUo
KS0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgaWYgKGNoaWxkLT50cmVlKCktPm5hbWUoKSA9PSBu
YW1lKQorICAgICAgICBpZiAoY2hpbGQtPnRyZWUoKS0+dW5pcXVlTmFtZSgpID09IG5hbWUpCiAg
ICAgICAgICAgICByZXR1cm4gY2hpbGQ7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xODEsNyArMTgz
LDcgQEAgRnJhbWUqIEZyYW1lVHJlZTo6ZmluZChjb25zdCBBdG9taWNTdHJpbgogCiAgICAgLy8g
U2VhcmNoIHN1YnRyZWUgc3RhcnRpbmcgd2l0aCB0aGlzIGZyYW1lIGZpcnN0LgogICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gbV90aGlzRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkt
PnRyYXZlcnNlTmV4dChtX3RoaXNGcmFtZSkpCi0gICAgICAgIGlmIChmcmFtZS0+dHJlZSgpLT5u
YW1lKCkgPT0gbmFtZSkKKyAgICAgICAgaWYgKGZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKSA9
PSBuYW1lKQogICAgICAgICAgICAgcmV0dXJuIGZyYW1lOwogCiAgICAgLy8gU2VhcmNoIHRoZSBl
bnRpcmUgdHJlZSBmb3IgdGhpcyBwYWdlIG5leHQuCkBAIC0xOTIsNyArMTk0LDcgQEAgRnJhbWUq
IEZyYW1lVHJlZTo6ZmluZChjb25zdCBBdG9taWNTdHJpbgogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIGZvciAoRnJhbWUqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKQotICAgICAgICBpZiAoZnJhbWUtPnRyZWUo
KS0+bmFtZSgpID09IG5hbWUpCisgICAgICAgIGlmIChmcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1l
KCkgPT0gbmFtZSkKICAgICAgICAgICAgIHJldHVybiBmcmFtZTsKIAogICAgIC8vIFNlYXJjaCB0
aGUgZW50aXJlIHRyZWUgb2YgZWFjaCBvZiB0aGUgb3RoZXIgcGFnZXMgaW4gdGhpcyBuYW1lc3Bh
Y2UuCkBAIC0yMDMsNyArMjA1LDcgQEAgRnJhbWUqIEZyYW1lVHJlZTo6ZmluZChjb25zdCBBdG9t
aWNTdHJpbgogICAgICAgICBQYWdlKiBvdGhlclBhZ2UgPSAqaXQ7CiAgICAgICAgIGlmIChvdGhl
clBhZ2UgIT0gcGFnZSkgewogICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBh
Z2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5l
eHQoKSkgewotICAgICAgICAgICAgICAgIGlmIChmcmFtZS0+dHJlZSgpLT5uYW1lKCkgPT0gbmFt
ZSkKKyAgICAgICAgICAgICAgICBpZiAoZnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpID09IG5h
bWUpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmcmFtZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9GcmFtZVRyZWUuaAkocmV2aXNpb24gNzAzODApCisrKyBXZWJDb3JlL3BhZ2Uv
RnJhbWVUcmVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB+RnJhbWVUcmVlKCk7CiAKICAgICAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgdW5pcXVlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5pcXVlTmFtZTsgfQogICAg
ICAgICB2b2lkIHNldE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgICAgIHZvaWQgY2xl
YXJOYW1lKCk7CiAgICAgICAgIEZyYW1lKiBwYXJlbnQoYm9vbCBjaGVja0ZvckRpc2Nvbm5lY3Rl
ZEZyYW1lID0gZmFsc2UpIGNvbnN0OwpAQCAtNzMsNyArNzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIEZyYW1lKiBtX3RoaXNGcmFtZTsKIAogICAgICAgICBGcmFtZSogbV9wYXJl
bnQ7Ci0gICAgICAgIEF0b21pY1N0cmluZyBtX25hbWU7CisgICAgICAgIEF0b21pY1N0cmluZyBt
X25hbWU7IC8vIFRoZSBhY3R1YWwgZnJhbWUgbmFtZSAobWF5IGJlIGVtcHR5KS4KKyAgICAgICAg
QXRvbWljU3RyaW5nIG1fdW5pcXVlTmFtZTsKIAogICAgICAgICAvLyBGSVhNRTogdXNlIExpc3RS
ZWZQdHI/CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9uZXh0U2libGluZzsKSW5kZXg6IFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwkocmV2aXNpb24gNzAzODApCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjMgIERhbmllbCBCYXRlcyAgPGRi
YXRlc0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEZvciB1bm5hbWVkIGZyYW1lcywgd2luZG93Lm5hbWUgcmV0dXJucyBhIGdlbmVyYXRl
ZCBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NzUxCisKKyAgICAgICAgTW9kaWZpZWQgQ2hyb21pdW0tcG9ydCB0byB1c2UgRnJhbWVUcmVlOjp1
bmlxdWVOYW1lKCkuCisKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVJbXBsOjpuYW1lKToKKwogMjAxMC0xMC0yMiAgSmF5IENpdmVsbGkg
IDxqY2l2ZWxsaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2
aW4uCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCShyZXZpc2lvbiA3MDM4
MCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDg2LDcgKzQ4Niw3IEBAIFdlYkZyYW1lKiBXZWJGcmFtZTo6ZnJvbUZyYW1lT3duZXJF
bGVtZW4KIAogV2ViU3RyaW5nIFdlYkZyYW1lSW1wbDo6bmFtZSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fZnJhbWUtPnRyZWUoKS0+bmFtZSgpOworICAgIHJldHVybiBtX2ZyYW1lLT50cmVlKCkt
PnVuaXF1ZU5hbWUoKTsKIH0KIAogdm9pZCBXZWJGcmFtZUltcGw6OnNldE5hbWUoY29uc3QgV2Vi
U3RyaW5nJiBuYW1lKQpJbmRleDogV2ViS2l0L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwMzgwKQorKysgV2ViS2l0L2VmbC9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yMyAgRGFuaWVs
IEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRm9yIHVubmFtZWQgZnJhbWVzLCB3aW5kb3cubmFtZSByZXR1cm5z
IGEgZ2VuZXJhdGVkIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY3NTEKKworICAgICAgICBNb2RpZmllZCBFRkwtcG9ydCB0byB1c2UgRnJhbWVU
cmVlOjp1bmlxdWVOYW1lKCkuCisKKyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAg
ICAgKGV3a19mcmFtZV9uYW1lX2dldCk6CisKIDIwMTAtMTAtMjIgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCkluZGV4
OiBXZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9lZmwv
ZXdrL2V3a19mcmFtZS5jcHAJKHJldmlzaW9uIDcwMzgwKQorKysgV2ViS2l0L2VmbC9ld2svZXdr
X2ZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc0LDcgKzQ3NCw3IEBAIGNvbnN0IGNoYXIq
IGV3a19mcmFtZV9uYW1lX2dldChjb25zdCBFdmEKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
Ci0gICAgV1RGOjpTdHJpbmcgcyA9IHNkLT5mcmFtZS0+dHJlZSgpLT5uYW1lKCk7CisgICAgV1RG
OjpTdHJpbmcgcyA9IHNkLT5mcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCk7CiAgICAgV1RGOjpD
U3RyaW5nIGNzID0gcy51dGY4KCk7CiAgICAgc2QtPm5hbWUgPSBlaW5hX3N0cmluZ3NoYXJlX2Fk
ZF9sZW5ndGgoY3MuZGF0YSgpLCBjcy5sZW5ndGgoKSk7CiAgICAgcmV0dXJuIHNkLT5uYW1lOwpJ
bmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9DaGFu
Z2VMb2cJKHJldmlzaW9uIDcwMzgwKQorKysgV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yMyAgRGFuaWVsIEJhdGVzICA8ZGJhdGVz
QHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRm9yIHVubmFtZWQgZnJhbWVzLCB3aW5kb3cubmFtZSByZXR1cm5zIGEgZ2VuZXJhdGVkIG5h
bWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTEK
KworICAgICAgICBNb2RpZmllZCBHVEstcG9ydCB0byB1c2UgRnJhbWVUcmVlOjp1bmlxdWVOYW1l
KCkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Vi
a2l0X3dlYl9mcmFtZV9nZXRfbmFtZSk6CisKIDIwMTAtMTAtMjIgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCkluZGV4
OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCShyZXZpc2lvbiA3MDM4MCkKKysrIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgw
LDcgKzQ4MCw3IEBAIEdfQ09OU1RfUkVUVVJOIGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2cKICAg
ICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuICIiOwogCi0gICAgU3RyaW5nIHN0cmlu
ZyA9IGNvcmVGcmFtZS0+dHJlZSgpLT5uYW1lKCk7CisgICAgU3RyaW5nIHN0cmluZyA9IGNvcmVG
cmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCk7CiAgICAgcHJpdi0+bmFtZSA9IGdfc3RyZHVwKHN0
cmluZy51dGY4KCkuZGF0YSgpKTsKICAgICByZXR1cm4gcHJpdi0+bmFtZTsKIH0KSW5kZXg6IFdl
YktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA3MDM4MCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjMgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciB1
bm5hbWVkIGZyYW1lcywgd2luZG93Lm5hbWUgcmV0dXJucyBhIGdlbmVyYXRlZCBuYW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxCisKKyAgICAg
ICAgTW9kaWZpZWQgTWFjLXBvcnQgdG8gdXNlIEZyYW1lVHJlZTo6dW5pcXVlTmFtZSgpLgorCisg
ICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgbmFtZV0p
OgorCiAyMDEwLTEwLTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQko
cmV2aXNpb24gNzAzODApCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTE0MDYsNyArMTQwNiw3IEBAIC0gKE5TU3RyaW5nICopbmFtZQogICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1l
KQogICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBjb3JlRnJhbWUtPnRyZWUoKS0+bmFt
ZSgpOworICAgIHJldHVybiBjb3JlRnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpOwogfQogCiAt
IChXZWJGcmFtZVZpZXcgKilmcmFtZVZpZXcKSW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzAzODApCisrKyBXZWJL
aXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAt
MjMgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciB1bm5hbWVkIGZyYW1lcywgd2luZG93Lm5h
bWUgcmV0dXJucyBhIGdlbmVyYXRlZCBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxCisKKyAgICAgICAgTW9kaWZpZWQgUXQtcG9ydCB0byB1
c2UgRnJhbWVUcmVlOjp1bmlxdWVOYW1lKCkuIAorCisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5j
cHA6CisgICAgICAgIChRV2ViRnJhbWU6OmZyYW1lTmFtZSk6CisKIDIwMTAtMTAtMjIgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2Fy
bHNzb24uCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCShyZXZpc2lvbiA3MDM4MCkKKysrIFdlYktpdC9x
dC9BcGkvcXdlYmZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzU4LDcgKzc1OCw3IEBAIFFJ
Y29uIFFXZWJGcmFtZTo6aWNvbigpIGNvbnN0CiAqLwogUVN0cmluZyBRV2ViRnJhbWU6OmZyYW1l
TmFtZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGQtPmZyYW1lLT50cmVlKCktPm5hbWUoKTsKKyAg
ICByZXR1cm4gZC0+ZnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpOwogfQogCiAvKiEKSW5kZXg6
IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDM4MCkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjMgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0u
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZv
ciB1bm5hbWVkIGZyYW1lcywgd2luZG93Lm5hbWUgcmV0dXJucyBhIGdlbmVyYXRlZCBuYW1lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxCisKKyAg
ICAgICAgTW9kaWZpZWQgQXBwbGUgV2luZG93cy1wb3J0IHRvIHVzZSBGcmFtZVRyZWU6OnVuaXF1
ZU5hbWUoKS4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjpu
YW1lKToKKwogMjAxMC0xMC0yMiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBXaW5kb3dzIGJ1aWxkLgpJbmRleDogV2ViS2l0L3dpbi9XZWJGcmFtZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAJKHJldmlzaW9uIDcwMzgw
KQorKysgV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzOCw3ICs0
MzgsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkZyYW1lOjpuYW1lCiAgICAgaWYg
KCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICAqZnJhbWVOYW1lID0g
QlN0cmluZyhjb3JlRnJhbWUtPnRyZWUoKS0+bmFtZSgpKS5yZWxlYXNlKCk7CisgICAgKmZyYW1l
TmFtZSA9IEJTdHJpbmcoY29yZUZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKSkucmVsZWFzZSgp
OwogICAgIHJldHVybiBTX09LOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDM4MCkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEw
LTEwLTIzICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgdW5uYW1lZCBmcmFtZXMsIHdpbmRv
dy5uYW1lIHJldHVybnMgYSBnZW5lcmF0ZWQgbmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1MQorCisgICAgICAgIFVwZGF0ZWQgdGVzdCBjYXNl
IGZhc3QvZnJhbWVzL2ZyYW1lLWVsZW1lbnQtbmFtZS5odG1sIHRvIGNoZWNrCisgICAgICAgIHRo
ZSB2YWx1ZSBvZiB3aW5kb3cubmFtZS4KKworICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLWVs
ZW1lbnQtbmFtZS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgcmVzdWx0LgorICAgICAgICAqIGZhc3Qv
ZnJhbWVzL2lmcmFtZS1zZXQtaW5uZXItaHRtbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQ7IFRoaXMg
dGVzdCBlbnN1cmVkCisgICAgICAgIHRoYXQgdGhlIGdlbmVyYXRlZCBuYW1lIGZvciBhbiB1bm5h
bWVkIGZyYW1lcyB3YXMgdW5pcXVlIGJ5IGxvb2tpbmcgYXQgdGhlCisgICAgICAgIHZhbHVlIG9m
IHdpbmRvdy5uYW1lLiBIb3dldmVyLCB0aGUgZ2VuZXJhdGVkIG5hbWUgc2hvdWxkIG5vdCBiZSBl
eHBvc2VkIHRvCisgICAgICAgIHdlYiBkZXZlbG9wZXJzLiBJbnN0ZWFkLCB3aW5kb3cubmFtZSBz
aG91bGQgcmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcgZm9yCisgICAgICAgIGFuIHVubmFtZWQgZnJh
bWUgYXMgaW1wbGllZCBieSBzZWN0aW9uIDUuMS42IG9mIHRoZSBIVE1MNSBzcGVjLiBXZSBzaG91
bGQKKyAgICAgICAgY29uc2lkZXIgZXhwb3NpbmcgYSBEUlQgbWV0aG9kIGZvciBvYnRhaW5pbmcg
dGhlIGludGVybmFsIGZyYW1lIG5hbWUgKHdoaWNoCisgICAgICAgIG1heSBiZSBnZW5lcmF0ZWQp
IGFuZCByZS1pbXBsZW1lbnRpbmcgdGhpcyB0ZXN0IHRvIHVzZSBpdC4KKyAgICAgICAgKiBmYXN0
L2ZyYW1lcy9pZnJhbWUtc2V0LWlubmVyLWh0bWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L2ZyYW1lcy9yZXNvdXJjZXMvZnJhbWUtZWxlbWVudC1uYW1lLWxlZnQuaHRtbDogQWRkZWQg
dGVzdCBmb3Igd2luZG93Lm5hbWUuCisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzb3VyY2VzL2Zy
YW1lLWVsZW1lbnQtbmFtZS1yaWdodC5odG1sOiBEaXR0by4KKwogMjAxMC0xMC0yMiAgTWloYWkg
UGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBjc3MyLjEvIGxheW91
dCB0ZXN0cyBuZWVkIG5ldyBNYWMgYmFzZWxpbmVzIGZvciBTbm93IExlb3BhcmQKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLWVsZW1lbnQtbmFtZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtZWxlbWVudC1uYW1lLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gNzAzODApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9m
cmFtZS1lbGVtZW50LW5hbWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDEwICs0
LDEyIEBACiBGcmFtZTogJ2xlZnQnCiAtLS0tLS0tLQogUEFTUyBlc2NhcGUod2luZG93LmZyYW1l
RWxlbWVudC5uYW1lKSBpcyAibGVmdCIKK1BBU1MgZXNjYXBlKHdpbmRvdy5uYW1lKSBpcyAibGVm
dCIKIAogCiAtLS0tLS0tLQogRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMS0tPi0t
PicKIC0tLS0tLS0tCiBQQVNTIGVzY2FwZSh3aW5kb3cuZnJhbWVFbGVtZW50Lm5hbWUpIGlzICIi
CitQQVNTIGVzY2FwZSh3aW5kb3cubmFtZSkgaXMgIiIKIApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvaWZyYW1lLXNldC1pbm5lci1odG1sLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtc2V0LWlubmVyLWh0bWwtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA3MDM4MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1z
ZXQtaW5uZXItaHRtbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMCwwIEBA
Ci0KLVRoaXMgdGVzdHMgdGhhdCBpbnNlcnRpbmcgdHdvIDxpZnJhbWU+IGVsZW1lbnRzIHVzaW5n
IGlubmVySFRNTCBhY3R1YWxseSBjYXVzZXMgdHdvIGZyYW1lcyB3aXRoIHVuaXF1ZSBuYW1lcyB0
byBiZSBjcmVhdGVkLgotU1VDQ0VTUwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZy
YW1lLXNldC1pbm5lci1odG1sLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvaWZyYW1lLXNldC1pbm5lci1odG1sLmh0bWwJKHJldmlzaW9uIDcwMzgwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLXNldC1pbm5lci1odG1sLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMzAgKzAsMCBAQAotPGh0bWw+Ci08c2NyaXB0PgotZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIAotICAgIHZhciBjID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwotICAgIHZhciByID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpOwotICAgIAotICAgIGMuaW5uZXJIVE1MID0gIjxzcGFu
PjxpZnJhbWU+PC9pZnJhbWU+PGlmcmFtZT48L2lmcmFtZT48L3NwYW4+IgotICAgIAotICAgIGlm
ICh3aW5kb3cuZnJhbWVzLmxlbmd0aCAhPSAyKSB7Ci0gICAgICAgIHIuaW5uZXJIVE1MID0gJ0ZB
SUxVUkUgLSBudW1iZXIgb2YgZnJhbWVzIHNob3VsZCBiZSAyLCB3YXMgJyArIHdpbmRvdy5mcmFt
ZXMubGVuZ3RoOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGlmICh3aW5kb3cu
ZnJhbWVzWzBdLm5hbWUgPT0gd2luZG93LmZyYW1lc1sxXS5uYW1lKSB7Ci0gICAgICAgIHIuaW5u
ZXJIVE1MID0gJ0ZBSUxVUkUgLSBib3RoIHdpbmRvd3MgaGFkIHRuZSBzYW1lIG5hbWUnCi0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgci5pbm5lckhUTUwgPSAnU1VDQ0VTUyc7Ci19
Ci08L3NjcmlwdD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxkaXYgaWQ9ImNvbnRhaW5l
ciI+PC9kaXY+Ci08ZGl2PlRoaXMgdGVzdHMgdGhhdCBpbnNlcnRpbmcgdHdvICZsdDtpZnJhbWUm
Z3Q7IGVsZW1lbnRzIHVzaW5nIGlubmVySFRNTCBhY3R1YWxseSBjYXVzZXMgdHdvIGZyYW1lcyB3
aXRoIHVuaXF1ZSBuYW1lcyB0byBiZSBjcmVhdGVkLjwvZGl2PgotPGRpdiBpZD0icmVzdWx0Ij5G
QUlMVVJFPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9yZXNvdXJjZXMvZnJhbWUtZWxlbWVudC1uYW1lLWxlZnQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvZnJhbWUtZWxlbWVudC1uYW1lLWxl
ZnQuaHRtbAkocmV2aXNpb24gNzAzODApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNv
dXJjZXMvZnJhbWUtZWxlbWVudC1uYW1lLWxlZnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw1
ICs3LDYgQEAKIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPHNjcmlwdD4KIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZXNjYXBlKHdpbmRvdy5mcmFtZUVsZW1lbnQubmFtZSkiLCAibGVmdCIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlc2NhcGUod2luZG93Lm5hbWUpIiwgImxlZnQiKTsKIDwv
c2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzb3VyY2Vz
L2ZyYW1lLWVsZW1lbnQtbmFtZS1yaWdodC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL3Jlc291cmNlcy9mcmFtZS1lbGVtZW50LW5hbWUtcmlnaHQuaHRtbAkocmV2
aXNpb24gNzAzODApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvZnJhbWUt
ZWxlbWVudC1uYW1lLXJpZ2h0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNSArNyw2IEBACiA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+CiBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImVzY2FwZSh3aW5kb3cuZnJhbWVFbGVtZW50Lm5hbWUpIiwgIiIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJlc2NhcGUod2luZG93Lm5hbWUpIiwgIiIpOwogPC9zY3JpcHQ+CiA8L2JvZHk+Cg==
</data>
<flag name="review"
          id="61770"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>