<?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>74345</bug_id>
          
          <creation_ts>2011-12-12 14:48:45 -0800</creation_ts>
          <short_desc>WebAudio: Use float instead of double values for gain operations.</short_desc>
          <delta_ts>2012-01-13 14:42:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>75835</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>crogers</cc>
    
    <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>519503</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-12-12 14:48:45 -0800</bug_when>
    <thetext>WebAudio: Optimize processWithGainFromMonoStereo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519526</commentid>
    <comment_count>1</comment_count>
      <attachid>118866</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-12-12 14:56:14 -0800</bug_when>
    <thetext>Created attachment 118866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519623</commentid>
    <comment_count>2</comment_count>
      <attachid>118893</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-12-12 15:57:02 -0800</bug_when>
    <thetext>Created attachment 118893
Patch

Rebased patch against ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519713</commentid>
    <comment_count>3</comment_count>
      <attachid>118893</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-12 17:11:50 -0800</bug_when>
    <thetext>Comment on attachment 118893
Patch

Attachment 118893 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10846118</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519731</commentid>
    <comment_count>4</comment_count>
      <attachid>118923</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-12-12 17:27:51 -0800</bug_when>
    <thetext>Created attachment 118923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519773</commentid>
    <comment_count>5</comment_count>
      <attachid>118923</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-12 18:44:25 -0800</bug_when>
    <thetext>Comment on attachment 118923
Patch

Attachment 118923 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10850160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519873</commentid>
    <comment_count>6</comment_count>
      <attachid>118955</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-12-12 22:29:56 -0800</bug_when>
    <thetext>Created attachment 118955
Patch

Corrected order of parameters for vsma in VectorMath.cpp which was causing link errors in the Chromium build bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533378</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-10 14:22:04 -0800</bug_when>
    <thetext>Hi Jer, have you seen the latest Intel patches to this same area of code?  They&apos;ve landed a few changes already which seem to be optimizing the same things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533396</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-10 14:42:33 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Hi Jer, have you seen the latest Intel patches to this same area of code?  They&apos;ve landed a few changes already which seem to be optimizing the same things.

I have.  Their patches don&apos;t seem to entirely overlap with mine, though a lot of the vector math additions are the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535240</commentid>
    <comment_count>9</comment_count>
      <attachid>118955</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-12 15:51:36 -0800</bug_when>
    <thetext>Comment on attachment 118955
Patch

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

&gt; Source/WebCore/platform/audio/AudioBus.cpp:-238
&gt; -    // FIXME: Need fast path here when gain has converged on targetGain. In this case, de-zippering is no longer needed.

I believe this FIXME has already been addressed by some Intel patches - please see latest code.

&gt; Source/WebCore/platform/audio/AudioBus.cpp:289
&gt; +    } else if (sumToBus) {

Lines 261:289 have already been addressed with similar optimizations already landed (with macros).  Also, there&apos;s a more recent patch which seems like it&apos;s almost ready:
https://bugs.webkit.org/show_bug.cgi?id=75835</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535272</commentid>
    <comment_count>10</comment_count>
      <attachid>118955</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-12 16:17:34 -0800</bug_when>
    <thetext>Comment on attachment 118955
Patch

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

&gt;&gt; Source/WebCore/platform/audio/AudioBus.cpp:-238
&gt;&gt; -    // FIXME: Need fast path here when gain has converged on targetGain. In this case, de-zippering is no longer needed.
&gt; 
&gt; I believe this FIXME has already been addressed by some Intel patches - please see latest code.

I&apos;ll rebase and upload a new patch.

&gt;&gt; Source/WebCore/platform/audio/AudioBus.cpp:289
&gt;&gt; +    } else if (sumToBus) {
&gt; 
&gt; Lines 261:289 have already been addressed with similar optimizations already landed (with macros).  Also, there&apos;s a more recent patch which seems like it&apos;s almost ready:
&gt; https://bugs.webkit.org/show_bug.cgi?id=75835

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535789</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-13 10:47:37 -0800</bug_when>
    <thetext>Updated title of bug now that a fix for bug #75835 has been committed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535795</commentid>
    <comment_count>12</comment_count>
      <attachid>122457</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-13 10:54:02 -0800</bug_when>
    <thetext>Created attachment 122457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536005</commentid>
    <comment_count>13</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-01-13 14:42:56 -0800</bug_when>
    <thetext>Committed r104993: &lt;http://trac.webkit.org/changeset/104993&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118866</attachid>
            <date>2011-12-12 14:56:14 -0800</date>
            <delta_ts>2011-12-12 15:56:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74345-20111212145612.patch</filename>
            <type>text/plain</type>
            <size>18884</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBlMGZlMDk0YzJlZjNk
MTY3ZDhiOTk1ZDZmMGE4OGM2ODVmZTIyMC4uMzAzMTI0ODRkZmFlYmViOWEyNjJjYjUwYmZiNzZj
ZWVmNGExZDA2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ1IEBACiAyMDExLTEyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFdlYkF1ZGlvOiBPcHRpbWl6
ZSBwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlby4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBvcHRpbWl6YXRpb24gb2YgZXhp
c3RpbmcgY29kZSwgc28gY292ZXJlZCBieSBleGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAg
IEFkZGVkIGZvdXIgbmV3IHdyYXBwZXIgbWV0aG9kcyBmb3IgdmVjdG9yIG1hdGggb3BlcmF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZlY3Rvck1hdGg6OnZtdWwpOgorICAgICAgICAoV2ViQ29yZTo6VmVjdG9yTWF0aDo6
dmFzbSk6CisgICAgICAgIChXZWJDb3JlOjpWZWN0b3JNYXRoOjp2c21hKToKKyAgICAgICAgKFdl
YkNvcmU6OlZlY3Rvck1hdGg6OnZhZGQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1ZlY3Rv
ck1hdGguaDoKKworICAgICAgICBPcHRpbWl6ZSBwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJl
byB0byB1c2UgdmVjdG9yIG1hdGggb3BlcmF0aW9ucyB3aGVuIGRlemlwcGVyaW5nCisgICAgICAg
IG9mIGdhaW4gcHJvY2Vzc2luZyBpcyBub3QgbmVlZGVkOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpwcm9jZXNzV2l0
aEdhaW5Gcm9tTW9ub1N0ZXJlbyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y29weVdp
dGhTYW1wbGVBY2N1cmF0ZUdhaW5WYWx1ZXNGcm9tKToKKworICAgICAgICBUaGUgZm9sbG93aW5n
IGZ1bmN0aW9ucyBub3cgdGFrZSBvciBvcGVyYXRlIG9uIGZsb2F0cyBpbnN0ZWFkIG9mIGRvdWJs
ZXM6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6c2NhbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb20pOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9CdXM6OmNvcHlXaXRoR2FpbkZyb20pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnN1
bVdpdGhHYWluRnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpzZXRHYWluKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVzOjpnYWluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9DaGFubmVsOjpzY2FsZSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmg6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9k
ZTo6cHJvY2Vzcyk6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmg6
CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9HYWluTm9kZS5oOgorICAgICAgICAqIHdlYmF1ZGlv
L0F1ZGlvUGFubmVyTm9kZS5oOgorCisyMDExLTEyLTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgorCiAgICAgICAgIEVuYWJsZSBVU0VfQ09OQ0FURU5BVEVEX0lNUFVMU0VfUkVT
UE9OU0VTIG9uIE1hYyBwb3J0LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQzMjgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9CdXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9C
dXMuY3BwCmluZGV4IGZkNDQyMWRkYzlhNzhiYjAyM2NjYWZhZjg1YTE3NTZmYTcxYzk2ZmIuLjFh
YzMxNmRmNjIzNzU3ZWY3MTQyMzFlYWQwMTdjMGYyZGYzMTA5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIEF1
ZGlvQnVzOjpub3JtYWxpemUoKQogICAgICAgICBzY2FsZSgxLjBmIC8gbWF4KTsKIH0KIAotdm9p
ZCBBdWRpb0J1czo6c2NhbGUoZG91YmxlIHNjYWxlKQordm9pZCBBdWRpb0J1czo6c2NhbGUoZmxv
YXQgc2NhbGUpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5l
bHMoKTsgKytpKQogICAgICAgICBjaGFubmVsKGkpLT5zY2FsZShzY2FsZSk7CkBAIC0yMjksMTYg
KzIyOSwxMyBAQCB2b2lkIEF1ZGlvQnVzOjpzdW1Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VC
dXMpCiAgICAgfQogfQogCi12b2lkIEF1ZGlvQnVzOjpwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0
ZXJlbyhjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3Vi
bGUgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cykKK3ZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRo
R2FpbkZyb21Nb25vU3RlcmVvKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0
TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cykKIHsKICAgICAvLyBXZSBk
b24ndCB3YW50IHRvIHN1ZGRlbmx5IGNoYW5nZSB0aGUgZ2FpbiBmcm9tIG1peGluZyBvbmUgdGlt
ZSBzbGljZSB0byB0aGUgbmV4dCwKICAgICAvLyBzbyB3ZSAiZGUtemlwcGVyIiBieSBzbG93bHkg
Y2hhbmdpbmcgdGhlIGdhaW4gZWFjaCBzYW1wbGUtZnJhbWUgdW50aWwgd2UndmUgYWNoaWV2ZWQg
dGhlIHRhcmdldCBnYWluLgogCiAgICAgLy8gRklYTUU6IG9wdGltaXplIHRoaXMgbWV0aG9kIChT
U0UsIGV0Yy4pCi0gICAgLy8gRklYTUU6IE5lZWQgZmFzdCBwYXRoIGhlcmUgd2hlbiBnYWluIGhh
cyBjb252ZXJnZWQgb24gdGFyZ2V0R2Fpbi4gSW4gdGhpcyBjYXNlLCBkZS16aXBwZXJpbmcgaXMg
bm8gbG9uZ2VyIG5lZWRlZC4KICAgICAvLyBGSVhNRTogTmVlZCBmYXN0IHBhdGggd2hlbiB0aGlz
PT1zb3VyY2VCdXMgJiYgbGFzdE1peEdhaW49PXRhcmdldEdhaW49PTEuMCAmJiBzdW1Ub0J1cz09
ZmFsc2UgKHRoaXMgaXMgYSBOT1ApCi0KLSAgICAvLyBGSVhNRTogdGFyZ2V0R2FpbiBhbmQgbGFz
dE1peEdhaW4gc2hvdWxkIGJlIGNoYW5nZWQgdG8gZmxvYXRzIGluc3RlYWQgb2YgZG91Ymxlcy4K
ICAgICAKICAgICAvLyBUYWtlIG1hc3RlciBidXMgZ2FpbiBpbnRvIGFjY291bnQgYXMgd2VsbCBh
cyB0aGUgdGFyZ2V0R2Fpbi4KICAgICBmbG9hdCB0b3RhbERlc2lyZWRHYWluID0gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG1fYnVzR2FpbiAqIHRhcmdldEdhaW4pOwpAQCAtMjQ2LDYgKzI0Myw3IEBAIHZv
aWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKGNvbnN0IEF1ZGlvQnVz
ICZzb3VyY2VCdXMsIGRvdWJsZSoKICAgICAvLyBGaXJzdCB0aW1lLCBzbmFwIGRpcmVjdGx5IHRv
IHRvdGFsRGVzaXJlZEdhaW4uCiAgICAgZmxvYXQgZ2FpbiA9IHN0YXRpY19jYXN0PGZsb2F0Piht
X2lzRmlyc3RUaW1lID8gdG90YWxEZXNpcmVkR2FpbiA6ICpsYXN0TWl4R2Fpbik7CiAgICAgbV9p
c0ZpcnN0VGltZSA9IGZhbHNlOworICAgIGJvb2wgbmVlZHNEZXppcHBlcmluZyA9ICpsYXN0TWl4
R2FpbiAhPSBnYWluOwogCiAgICAgaW50IG51bWJlck9mU291cmNlQ2hhbm5lbHMgPSBzb3VyY2VC
dXMubnVtYmVyT2ZDaGFubmVscygpOwogICAgIGludCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5l
bHMgPSBudW1iZXJPZkNoYW5uZWxzKCk7CkBAIC0yNjAsNyArMjU4LDM1IEBAIHZvaWQgQXVkaW9C
dXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VC
dXMsIGRvdWJsZSoKICAgICBjb25zdCBmbG9hdCBEZXppcHBlclJhdGUgPSAwLjAwNWY7CiAgICAg
aW50IGZyYW1lc1RvUHJvY2VzcyA9IGxlbmd0aCgpOwogCi0gICAgaWYgKHN1bVRvQnVzKSB7Cisg
ICAgaWYgKCFuZWVkc0RlemlwcGVyaW5nKSB7CisgICAgICAgIC8vIE9wdGltaXplIGZvciB0aGUg
bm9uLWRlemlwcGVyaW5nIGNhc2U6CisgICAgICAgIGlmIChzdW1Ub0J1cykgeworICAgICAgICAg
ICAgaWYgKHNvdXJjZVIgJiYgZGVzdGluYXRpb25SKSB7CisgICAgICAgICAgICAgICAgLy8gU3Rl
cmVvCisgICAgICAgICAgICAgICAgdnNtYShzb3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25M
LCAxLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICAgICAg
dnNtYShzb3VyY2VSLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAxLCBkZXN0aW5hdGlvblIsIDEs
IGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRlc3RpbmF0aW9uUikg
eworICAgICAgICAgICAgICAgIC8vIE1vbm8gLT4gc3RlcmVvIChtaXggZXF1YWxseSBpbnRvIEwg
YW5kIFIpCisgICAgICAgICAgICAgICAgdnNtYShzb3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRp
b25MLCAxLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICAg
ICAgbWVtY3B5KGRlc3RpbmF0aW9uUiwgZGVzdGluYXRpb25MLCBzaXplb2YoZmxvYXQpICogZnJh
bWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIC8vIE1v
bm8KKyAgICAgICAgICAgICAgICB2c21hKHNvdXJjZUwsIDEsICZnYWluLCBkZXN0aW5hdGlvbkws
IDEsIGRlc3RpbmF0aW9uTCwgMSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIC8vIFByb2Nlc3MgZGlyZWN0bHkgKHdpdGhvdXQgc3VtbWluZykgdG8gb3Vy
IGJ1cworICAgICAgICAgICAgaWYgKHNvdXJjZVIgJiYgZGVzdGluYXRpb25SKSB7CisgICAgICAg
ICAgICAgICAgLy8gU3RlcmVvCisgICAgICAgICAgICAgICAgdnNtdWwoc291cmNlTCwgMSwgJmdh
aW4sIGRlc3RpbmF0aW9uTCwgMSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgICAgICAgICB2
c211bChzb3VyY2VSLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25SLCAxLCBmcmFtZXNUb1Byb2Nlc3Mp
OworICAgICAgICAgICAgfSBlbHNlIGlmIChkZXN0aW5hdGlvblIpIHsKKyAgICAgICAgICAgICAg
ICAvLyBNb25vIC0+IHN0ZXJlbyAobWl4IGVxdWFsbHkgaW50byBMIGFuZCBSKQorICAgICAgICAg
ICAgICAgIHZzbXVsKHNvdXJjZUwsIDEsICZnYWluLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1lc1Rv
UHJvY2Vzcyk7CisgICAgICAgICAgICAgICAgbWVtY3B5KGRlc3RpbmF0aW9uUiwgZGVzdGluYXRp
b25MLCBzaXplb2YoZmxvYXQpICogZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIC8vIE1vbm8KKyAgICAgICAgICAgICAgICB2c211bChzb3VyY2VM
LCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAxLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICB9
CisgICAgfSBlbHNlIGlmIChzdW1Ub0J1cykgewogICAgICAgICAvLyBTdW0gdG8gb3VyIGJ1cwog
ICAgICAgICBpZiAoc291cmNlUiAmJiBkZXN0aW5hdGlvblIpIHsKICAgICAgICAgICAgIC8vIFN0
ZXJlbwpAQCAtMzM5LDExICszNjUsMTUgQEAgdm9pZCBBdWRpb0J1czo6cHJvY2Vzc1dpdGhHYWlu
RnJvbU1vbm9TdGVyZW8oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91YmxlKgogICAgICAg
ICB9CiAgICAgfQogCi0gICAgLy8gU2F2ZSB0aGUgdGFyZ2V0IGdhaW4gYXMgdGhlIHN0YXJ0aW5n
IHBvaW50IGZvciBuZXh0IHRpbWUgYXJvdW5kLgotICAgICpsYXN0TWl4R2FpbiA9IHN0YXRpY19j
YXN0PGRvdWJsZT4oZ2Fpbik7CisgICAgLy8gU2F2ZSB0aGUgdGFyZ2V0IGdhaW4gYXMgdGhlIHN0
YXJ0aW5nIHBvaW50IGZvciBuZXh0IHRpbWUgYXJvdW5kLiBTaW5jZSB0aGUgZGV6aXBwZXIgZnVu
Y3Rpb24gaXMgYXN5bXB0b3RpYyB0bworICAgIC8vIHRhcmdldEdhaW4sIGVuZCB0aGUgZGV6aXBw
ZXIgYnkgc2V0dGluZyBsYXN0TWl4R2FpbiB0byB0YXJnZXRHYWluIG9uY2UgdGhlIGRlbHRhIGlz
IHN1ZmZpY2llbnRseSBzbWFsbC4KKyAgICBpZiAoZmFicyhnYWluIC0gdGFyZ2V0R2FpbikgPD0g
RGV6aXBwZXJSYXRlKQorICAgICAgICBnYWluID0gdGFyZ2V0R2FpbjsKKworICAgICpsYXN0TWl4
R2FpbiA9IGdhaW47CiB9CiAKLXZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb20oY29u
c3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdl
dEdhaW4sIGJvb2wgc3VtVG9CdXMpCit2b2lkIEF1ZGlvQnVzOjpwcm9jZXNzV2l0aEdhaW5Gcm9t
KGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFy
Z2V0R2FpbiwgYm9vbCBzdW1Ub0J1cykKIHsKICAgICAvLyBNYWtlIHN1cmUgd2UncmUgc3VtbWlu
ZyBmcm9tIHNhbWUgdHlwZSBvZiBidXMuCiAgICAgLy8gV2UgKmFyZSogYWJsZSB0byBzdW0gZnJv
bSBtb25vIC0+IHN0ZXJlbwpAQCAtMzg3LDE3ICs0MTcsMTYgQEAgdm9pZCBBdWRpb0J1czo6Y29w
eVdpdGhTYW1wbGVBY2N1cmF0ZUdhaW5WYWx1ZXNGcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VC
dXMsIGYKICAgICAgICAgaWYgKHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCkgPT0gbnVtYmVy
T2ZDaGFubmVscygpKQogICAgICAgICAgICAgc291cmNlID0gc291cmNlQnVzLmNoYW5uZWwoY2hh
bm5lbEluZGV4KS0+ZGF0YSgpOwogICAgICAgICBmbG9hdCogZGVzdGluYXRpb24gPSBjaGFubmVs
KGNoYW5uZWxJbmRleCktPmRhdGEoKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG51bWJlck9mR2FpblZhbHVlczsgKytpKQotICAgICAgICAgICAgZGVzdGluYXRpb25baV0gPSBz
b3VyY2VbaV0gKiBnYWluVmFsdWVzW2ldOworICAgICAgICB2bXVsKHNvdXJjZSwgMSwgZ2FpblZh
bHVlcywgMSwgZGVzdGluYXRpb24sIDEsIG51bWJlck9mR2FpblZhbHVlcyk7CiAgICAgfQogfQog
Ci12b2lkIEF1ZGlvQnVzOjpjb3B5V2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VC
dXMsIGRvdWJsZSogbGFzdE1peEdhaW4sIGRvdWJsZSB0YXJnZXRHYWluKQordm9pZCBBdWRpb0J1
czo6Y29weVdpdGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFz
dE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4pCiB7CiAgICAgcHJvY2Vzc1dpdGhHYWluRnJvbShz
b3VyY2VCdXMsIGxhc3RNaXhHYWluLCB0YXJnZXRHYWluLCBmYWxzZSk7CiB9CiAKLXZvaWQgQXVk
aW9CdXM6OnN1bVdpdGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUq
IGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2FpbikKK3ZvaWQgQXVkaW9CdXM6OnN1bVdpdGhH
YWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4sIGZs
b2F0IHRhcmdldEdhaW4pCiB7CiAgICAgcHJvY2Vzc1dpdGhHYWluRnJvbShzb3VyY2VCdXMsIGxh
c3RNaXhHYWluLCB0YXJnZXRHYWluLCB0cnVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb0J1cy5oCmluZGV4IDIyNTViZWI1MmFhYzRlY2U1MjkxNWEyYWFhNTIwOWZjMmFm
OGE1ODMuLjYzNzBjOGI1MjM0NjE0N2NhODcwYzMxZTUzY2M3YWNkNDU4NzNiZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaApAQCAtMTAwLDExICsxMDAsMTEgQEAg
cHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPEF1ZGlvQnVzPiBjcmVhdGVCeU1peGluZ1Rv
TW9ubyhBdWRpb0J1cyogc291cmNlQnVzKTsKIAogICAgIC8vIFNjYWxlcyBhbGwgc2FtcGxlcyBi
eSB0aGUgc2FtZSBhbW91bnQuCi0gICAgdm9pZCBzY2FsZShkb3VibGUgc2NhbGUpOworICAgIHZv
aWQgc2NhbGUoZmxvYXQgc2NhbGUpOwogCiAgICAgLy8gTWFzdGVyIGdhaW4gZm9yIHRoaXMgYnVz
IC0gdXNlZCB3aXRoIHN1bVdpdGhHYWluRnJvbSgpIGJlbG93Ci0gICAgdm9pZCBzZXRHYWluKGRv
dWJsZSBnYWluKSB7IG1fYnVzR2FpbiA9IGdhaW47IH0KLSAgICBkb3VibGUgZ2FpbigpIHsgcmV0
dXJuIG1fYnVzR2FpbjsgfQorICAgIHZvaWQgc2V0R2FpbihmbG9hdCBnYWluKSB7IG1fYnVzR2Fp
biA9IGdhaW47IH0KKyAgICBmbG9hdCBnYWluKCkgeyByZXR1cm4gbV9idXNHYWluOyB9CiAKICAg
ICB2b2lkIHJlc2V0KCkgeyBtX2lzRmlyc3RUaW1lID0gdHJ1ZTsgfSAvLyBmb3IgZGUtemlwcGVy
aW5nCiAKQEAgLTExOSw4ICsxMTksOCBAQCBwdWJsaWM6CiAgICAgLy8gV2Ugc2NhbGUgYnkgdGFy
Z2V0R2FpbiAoYW5kIG91ciBvd24gaW50ZXJuYWwgZ2FpbiBtX2J1c0dhaW4pLCBwZXJmb3JtaW5n
ICJkZS16aXBwZXJpbmciIHRvIHNtb290aGx5IGNoYW5nZSBmcm9tICpsYXN0TWl4R2FpbiB0byAo
dGFyZ2V0R2FpbiptX2J1c0dhaW4pLgogICAgIC8vIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUg
Zm9yIHNldHRpbmcgdXAgbGFzdE1peEdhaW4gdG8gcG9pbnQgdG8gc3RvcmFnZSB3aGljaCBpcyB1
bmlxdWUgZm9yIGV2ZXJ5ICJzdHJlYW0iIHdoaWNoIHdpbGwgYmUgc3VtbWVkIHRvIHRoaXMgYnVz
LgogICAgIC8vIFRoaXMgcmVwcmVzZW50cyB0aGUgZGV6aXBwZXJpbmcgbWVtb3J5LgotICAgIHZv
aWQgY29weVdpdGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxh
c3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2Fpbik7Ci0gICAgdm9pZCBzdW1XaXRoR2FpbkZyb20o
Y29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRh
cmdldEdhaW4pOworICAgIHZvaWQgY29weVdpdGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291
cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4pOworICAgIHZvaWQg
c3VtV2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4
R2FpbiwgZmxvYXQgdGFyZ2V0R2Fpbik7CiAKICAgICAvLyBDb3BpZXMgdGhlIHNvdXJjZUJ1cyBi
eSBzY2FsaW5nIHdpdGggc2FtcGxlLWFjY3VyYXRlIGdhaW4gdmFsdWVzLgogICAgIHZvaWQgY29w
eVdpdGhTYW1wbGVBY2N1cmF0ZUdhaW5WYWx1ZXNGcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VC
dXMsIGZsb2F0KiBnYWluVmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZkdhaW5WYWx1ZXMpOwpAQCAt
MTM2LDggKzEzNiw4IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBBdWRpb0J1cygpIHsgfTsK
IAotICAgIHZvaWQgcHJvY2Vzc1dpdGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVz
LCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cyk7
Ci0gICAgdm9pZCBwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1cyAm
c291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2FpbiwgYm9vbCBz
dW1Ub0J1cyk7CisgICAgdm9pZCBwcm9jZXNzV2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZz
b3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2FpbiwgYm9vbCBzdW1U
b0J1cyk7CisgICAgdm9pZCBwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRp
b0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4sIGJv
b2wgc3VtVG9CdXMpOwogCiAgICAgc2l6ZV90IG1fbGVuZ3RoOwogCkBAIC0xNDUsNyArMTQ1LDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgaW50IG1fbGF5b3V0OwogCi0gICAgZG91YmxlIG1fYnVzR2Fp
bjsKKyAgICBmbG9hdCBtX2J1c0dhaW47CiAgICAgYm9vbCBtX2lzRmlyc3RUaW1lOwogICAgIGZs
b2F0IG1fc2FtcGxlUmF0ZTsgLy8gMC4wIGlmIHVua25vd24gb3IgTi9BCiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQ2hhbm5lbC5jcHAKaW5kZXggYTk2MmRlYmQ1
NzI2MGM0M2VjMjYwMjBhNmMyODc2Yzk3NDNhNjRiOC4uMzlkYWZmOTY2ZmUxOTdmMmM1ZTE5Njg2
YWVhMzAxM2EwODE0NDY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9DaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb0NoYW5uZWwuY3BwCkBAIC00MSwxMCArNDEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBWZWN0b3JNYXRoOwogCi12b2lkIEF1ZGlvQ2hhbm5lbDo6c2NhbGUo
ZG91YmxlIHNjYWxlKQordm9pZCBBdWRpb0NoYW5uZWw6OnNjYWxlKGZsb2F0IHNjYWxlKQogewot
ICAgIGZsb2F0IHMgPSBzdGF0aWNfY2FzdDxmbG9hdD4oc2NhbGUpOwotICAgIHZzbXVsKGRhdGEo
KSwgMSwgJnMsIGRhdGEoKSwgMSwgbGVuZ3RoKCkpOworICAgIHZzbXVsKGRhdGEoKSwgMSwgJnNj
YWxlLCBkYXRhKCksIDEsIGxlbmd0aCgpKTsKIH0KIAogdm9pZCBBdWRpb0NoYW5uZWw6OmNvcHlG
cm9tKGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQ2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmgKaW5kZXggNzMyNWU5ZjM4YmI0M2ViYmZkYjBk
NjlkZGE3NWRhNjQyMzlmZDdlNi4uODgwM2U3NWNkMWUzZjdhZTIyYTUwODY5ZjYxZThkZDQ1ZGJi
ZDRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFu
bmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmgK
QEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIFNjYWxlcyBhbGwgc2Ft
cGxlcyBieSB0aGUgc2FtZSBhbW91bnQuCi0gICAgdm9pZCBzY2FsZShkb3VibGUgc2NhbGUpOwor
ICAgIHZvaWQgc2NhbGUoZmxvYXQgc2NhbGUpOwogCiAgICAgLy8gQSBzaW1wbGUgbWVtY3B5KCkg
ZnJvbSB0aGUgc291cmNlIGNoYW5uZWwKICAgICB2b2lkIGNvcHlGcm9tKGNvbnN0IEF1ZGlvQ2hh
bm5lbCogc291cmNlQ2hhbm5lbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9WZWN0b3JNYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Zl
Y3Rvck1hdGguY3BwCmluZGV4IGZmNDQwNmE3MjQ3ZGMyNWRhYmFiMDY3NjA2Y2U2NGZlZGVhYWI3
NmYuLjMxODU1N2NkNDUxYTRlYWZiNjc2YmYwODgzZmYwYjAyNDI2MzkzNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwCkBAIC00NSw2ICs0NSwxNSBA
QCBuYW1lc3BhY2UgVmVjdG9yTWF0aCB7CiAvLyBJbiAzMi1iaXQgbW9kZSAoX19wcGNfXyBvciBf
X2kzODZfXykgPEFjY2VsZXJhdGUvQWNjZWxlcmF0ZS5oPiBpbmNsdWRlcyA8dmVjTGliL3ZEU1Bf
dHJhbnNsYXRlLmg+IHdoaWNoIGRlZmluZXMgbWFjcm9zIG9mIHRoZSBzYW1lIG5hbWUgYXMKIC8v
IG91ciBuYW1lc3BhY2VkIGZ1bmN0aW9uIG5hbWVzLCBzbyB3ZSBtdXN0IGhhbmRsZSB0aGlzIGNh
c2UgZGlmZmVyZW50bHkuIE90aGVyIGFyY2hpdGVjdHVyZXMgKDY0Yml0LCBBUk0sIGV0Yy4pIGRv
IG5vdCBpbmNsdWRlIHRoaXMgaGVhZGVyIGZpbGUuCiAKK3ZvaWQgdm11bChjb25zdCBmbG9hdCog
c291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBz
b3VyY2VTdHJpZGUyLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQoreworI2lmIGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX2kzODZfXykK
KyAgICA6OnZtdWwoc291cmNlMVAsIHNvdXJjZVN0cmlkZTEsIHNvdXJjZTJQLCBzb3VyY2VTdHJp
ZGUyLCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyNlbHNlCisgICAgdkRT
UF92bXVsKHNvdXJjZTFQLCBzb3VyY2VTdHJpZGUxLCBzb3VyY2UyUCwgc291cmNlU3RyaWRlMiwg
ZGVzdFAsIGRlc3RTdHJpZGUsIGZyYW1lc1RvUHJvY2Vzcyk7CisjZW5kaWYKK30KKwogdm9pZCB2
c211bChjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQq
IHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzKQogewogI2lmIGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX2kzODZfXykKQEAgLTYz
LDggKzcyLDMwIEBAIHZvaWQgdmFkZChjb25zdCBmbG9hdCogc291cmNlMVAsIGludCBzb3VyY2VT
dHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBzCiAjZW5kaWYKIH0KIAordm9pZCB2
YXNtKGNvbnN0IGZsb2F0ICpzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0
ICpzb3VyY2UyUCwgaW50IHNvdXJjZVN0cmlkZTIsIGZsb2F0ICpzY2FsYXJNdWx0LCBmbG9hdCAq
ZGVzdFAsIGludCBkZXN0U3RyaWRlLCBpbnQgZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIHZEU1Bf
dmFzbShjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMVApLCBzb3VyY2VTdHJpZGUxLCBjb25zdF9j
YXN0PGZsb2F0Kj4oc291cmNlMlApLCBzb3VyY2VTdHJpZGUyLCBzY2FsYXJNdWx0LCBkZXN0UCwg
ZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKK30KKwordm9pZCB2c21hKGNvbnN0IGZsb2F0
ICpzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEsIGZsb2F0ICpzY2FsYXJNdWx0LCBjb25zdCBm
bG9hdCAqc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCAqZGVzdFAsIGludCBkZXN0
U3RyaWRlLCBpbnQgZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIHZEU1BfdnNtYShjb25zdF9jYXN0
PGZsb2F0Kj4oc291cmNlMVApLCBzb3VyY2VTdHJpZGUxLCBzY2FsYXJNdWx0LCBjb25zdF9jYXN0
PGZsb2F0Kj4oc291cmNlMlApLCBzb3VyY2VTdHJpZGUyLCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJh
bWVzVG9Qcm9jZXNzKTsKK30KKwogI2Vsc2UKIAordm9pZCB2YWRkKGNvbnN0IGZsb2F0KiBzb3Vy
Y2UxUCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0KiBzb3VyY2UyUCwgaW50IHNvdXJj
ZVN0cmlkZTIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpCit7CisgICAgLy8gRklYTUU6IG9wdGltaXplIGZvciBTU0UKKyAgICBpbnQgbiA9IGZy
YW1lc1RvUHJvY2VzczsKKyAgICB3aGlsZSAobi0tKSB7CisgICAgICAgICpkZXN0UCA9ICpzb3Vy
Y2UxUCAqICpzb3VyY2UyUDsKKyAgICAgICAgc291cmNlMVAgKz0gc291cmNlU3RyaWRlMTsKKyAg
ICAgICAgc291cmNlMlAgKz0gc291cmNlU3RyaWRlMjsKKyAgICAgICAgZGVzdFAgKz0gZGVzdFN0
cmlkZTsKKyAgICB9Cit9CisKIHZvaWQgdnNtdWwoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBz
b3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsZSwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0
cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsKICNpZmRlZiBfX1NTRTJfXwpAQCAtMjI5
LDYgKzI2MCwyOSBAQCB2b2lkIHZhZGQoY29uc3QgZmxvYXQqIHNvdXJjZTFQLCBpbnQgc291cmNl
U3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQgcwogI2VuZGlmCiB9CiAKK3ZvaWQg
dmFzbShjb25zdCBmbG9hdCAqc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9h
dCAqc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCAqc2NhbGFyTXVsdCwgZmxvYXQg
KmRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgaW50IGZyYW1lc1RvUHJvY2VzcykKK3sKKyAgICAvLyBG
SVhNRTogb3B0aW1pemUgZm9yIFNTRQorICAgIGludCBuID0gZnJhbWVzVG9Qcm9jZXNzOworICAg
IHdoaWxlIChuLS0pIHsKKyAgICAgICAgKmRlc3RQID0gKCpzb3VyY2UxUCArICpzb3VyY2UyUCkg
KiAqc2NhbGFyTXVsdDsKKyAgICAgICAgc291cmNlMVAgKz0gc291cmNlU3RyaWRlMTsKKyAgICAg
ICAgc291cmNlMlAgKz0gc291cmNlU3RyaWRlMjsKKyAgICAgICAgZGVzdFAgKz0gZGVzdFN0cmlk
ZTsKKyAgICB9Cit9CisKK3ZvaWQgdnNtYShjb25zdCBmbG9hdCAqc291cmNlMVAsIGludCBzb3Vy
Y2VTdHJpZGUxLCBjb25zdCBmbG9hdCAqc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9h
dCAqc2NhbGFyTXVsdCwgZmxvYXQgKmRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgaW50IGZyYW1lc1Rv
UHJvY2VzcykKK3sKKyAgICAvLyBGSVhNRTogb3B0aW1pemUgZm9yIFNTRQorICAgIGludCBuID0g
ZnJhbWVzVG9Qcm9jZXNzOworICAgIHdoaWxlIChuLS0pIHsKKyAgICAgICAgKmRlc3RQID0gKCpz
b3VyY2UxUCAqICpzY2FsYXJNdWx0KSArICpzb3VyY2UyUDsKKyAgICAgICAgc291cmNlMVAgKz0g
c291cmNlU3RyaWRlMTsKKyAgICAgICAgc291cmNlMlAgKz0gc291cmNlU3RyaWRlMjsKKyAgICAg
ICAgZGVzdFAgKz0gZGVzdFN0cmlkZTsKKyAgICB9Cit9CiAjZW5kaWYgLy8gT1MoREFSV0lOKQog
CiB9IC8vIG5hbWVzcGFjZSBWZWN0b3JNYXRoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9WZWN0b3JNYXRoLmgKaW5kZXggMDM2MGJkYmE0MWFiMjhlYjI2ZmY2NzU4MDRkNzRkZDI2NTg5
OGM2Yi4uMjNlOWUzNzg3YmI5M2U0N2Q1ZTQxODg2OTM0NDAwZGMwMzgzZGYzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaApAQCAtMzMsNiArMzMsOSBAQCBu
YW1lc3BhY2UgVmVjdG9yTWF0aCB7CiAKIHZvaWQgdnNtdWwoY29uc3QgZmxvYXQqIHNvdXJjZVAs
IGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsZSwgZmxvYXQqIGRlc3RQLCBpbnQg
ZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CiB2b2lkIHZhZGQoY29uc3QgZmxv
YXQqIHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBp
bnQgc291cmNlU3RyaWRlMiwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZy
YW1lc1RvUHJvY2Vzcyk7Cit2b2lkIHZtdWwoY29uc3QgZmxvYXQqIHNvdXJjZTFQLCBpbnQgc291
cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxv
YXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7Cit2b2lk
IHZhc20oY29uc3QgZmxvYXQgKnNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxv
YXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQgKnNjYWxhck11bHQsIGZsb2F0
ICpkZXN0UCwgaW50IGRlc3RTdHJpZGUsIGludCBmcmFtZXNUb1Byb2Nlc3MpOwordm9pZCB2c21h
KGNvbnN0IGZsb2F0ICpzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEsIGZsb2F0ICpzY2FsYXJN
dWx0LCBjb25zdCBmbG9hdCAqc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCAqZGVz
dFAsIGludCBkZXN0U3RyaWRlLCBpbnQgZnJhbWVzVG9Qcm9jZXNzKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgVmVjdG9yTWF0aAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRp
b0J1ZmZlclNvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcAppbmRleCAwZjBkN2IzMTkwNDFjYjc3MmQ4NTA1N2UxNzBhMjM2ZGY5
YTY0NjMyLi45Y2Q0NmRiZTlmZDNjMDNjYzI2OWFmNGM3MjcxNmI1MDAyYThmNDc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKQEAg
LTEyOCw3ICsxMjgsNyBAQCB2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2VzcyhzaXpl
X3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICByZW5kZXJGcm9tQnVmZmVyKG91dHB1dEJ1cywg
cXVhbnR1bUZyYW1lT2Zmc2V0LCBidWZmZXJGcmFtZXNUb1Byb2Nlc3MpOwogCiAgICAgICAgIC8v
IEFwcGx5IHRoZSBnYWluIChpbi1wbGFjZSkgdG8gdGhlIG91dHB1dCBidXMuCi0gICAgICAgIGRv
dWJsZSB0b3RhbEdhaW4gPSBnYWluKCktPnZhbHVlKCkgKiBtX2J1ZmZlci0+Z2FpbigpOworICAg
ICAgICBmbG9hdCB0b3RhbEdhaW4gPSBnYWluKCktPnZhbHVlKCkgKiBtX2J1ZmZlci0+Z2Fpbigp
OwogICAgICAgICBvdXRwdXRCdXMtPmNvcHlXaXRoR2FpbkZyb20oKm91dHB1dEJ1cywgJm1fbGFz
dEdhaW4sIHRvdGFsR2Fpbik7CiAKICAgICAgICAgLy8gSWYgdGhlIGVuZCB0aW1lIGlzIHNvbWV3
aGVyZSBpbiB0aGUgbWlkZGxlIG9mIHRoaXMgdGltZSBxdWFudHVtLCB0aGVuIHNpbXBseSB6ZXJv
IG91dCB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
U291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmgKaW5kZXggZmQ3MzA4MWQ2YjNmODFiNGUxZmI3YjJiM2NkMzhiZDgwMGU3ODNiMC4uZmUx
YmM2YmQ1YWQxY2Q4MTk4MWJmMmYxMWJiYTE2ZjM1Y2YzMzBlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKQEAgLTEyNyw3ICsxMjcsNyBA
QCBwcml2YXRlOgogICAgIGRvdWJsZSB0b3RhbFBpdGNoUmF0ZSgpOwogCiAgICAgLy8gbV9sYXN0
R2FpbiBwcm92aWRlcyBjb250aW51aXR5IHdoZW4gd2UgZHluYW1pY2FsbHkgYWRqdXN0IHRoZSBn
YWluLgotICAgIGRvdWJsZSBtX2xhc3RHYWluOworICAgIGZsb2F0IG1fbGFzdEdhaW47CiAgICAg
CiAgICAgLy8gV2Ugb3B0aW9uYWxseSBrZWVwIHRyYWNrIG9mIGEgcGFubmVyIG5vZGUgd2hpY2gg
aGFzIGEgZG9wcGxlciBzaGlmdCB0aGF0IGlzIGluY29ycG9yYXRlZCBpbnRvIHRoZSBwaXRjaCBy
YXRlLgogICAgIFJlZlB0cjxBdWRpb1Bhbm5lck5vZGU+IG1fcGFubmVyTm9kZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvR2Fpbk5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3dlYmF1ZGlvL0F1ZGlvR2Fpbk5vZGUuaAppbmRleCBlNjM0MjEyOGM3Nzk5NGJiZDQ4ZDIw
ZDZmMTg3YjI4ZDU3OTE5NGUyLi40MTViMDZiOGRjYzU0NzQ4NGRjNjcwNGVjOWFkMmQzNmIxMWM5
MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9HYWluTm9kZS5oCkBAIC01Nyw3ICs1
Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQXVkaW9HYWluTm9kZShBdWRpb0NvbnRleHQq
LCBmbG9hdCBzYW1wbGVSYXRlKTsKIAotICAgIGRvdWJsZSBtX2xhc3RHYWluOyAvLyBmb3IgZGUt
emlwcGVyaW5nCisgICAgZmxvYXQgbV9sYXN0R2FpbjsgLy8gZm9yIGRlLXppcHBlcmluZwogICAg
IFJlZlB0cjxBdWRpb0dhaW4+IG1fZ2FpbjsKIAogICAgIEF1ZGlvRmxvYXRBcnJheSBtX3NhbXBs
ZUFjY3VyYXRlR2FpblZhbHVlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvUGFubmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJO
b2RlLmgKaW5kZXggNmVjZWJlYWFlMzFjYTdkYWMzODU3OWYxZDVhMDM1ZGUzNzIyY2YxMS4uOThk
Mjc3NDNlNDExNzk0M2IyNjg3OGU2N2VjZDcxZTM5NjRiZGM0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmgKQEAgLTEzOCw3ICsxMzgsNyBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxBdWRpb0dhaW4+IG1fY29uZUdhaW47CiAgICAgRGlzdGFuY2VFZmZlY3QgbV9k
aXN0YW5jZUVmZmVjdDsKICAgICBDb25lRWZmZWN0IG1fY29uZUVmZmVjdDsKLSAgICBkb3VibGUg
bV9sYXN0R2FpbjsKKyAgICBmbG9hdCBtX2xhc3RHYWluOwogCiAgICAgdW5zaWduZWQgbV9jb25u
ZWN0aW9uQ291bnQ7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118893</attachid>
            <date>2011-12-12 15:57:02 -0800</date>
            <delta_ts>2011-12-12 17:27:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74345-20111212155701.patch</filename>
            <type>text/plain</type>
            <size>18894</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY3YjBhYTc5OWY5MjAy
YzEzMzc0NzY0MmU4OWM3OGNjYmY0NGY2ZC4uMWU1MjgwMDk1NDkxNTNkYmI0Njg0NGY5NmYzNzE2
YzY0ZWU3MDZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ1IEBACiAyMDExLTEyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFdlYkF1ZGlvOiBPcHRpbWl6
ZSBwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlby4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBvcHRpbWl6YXRpb24gb2YgZXhp
c3RpbmcgY29kZSwgc28gY292ZXJlZCBieSBleGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAg
IEFkZGVkIGZvdXIgbmV3IHdyYXBwZXIgbWV0aG9kcyBmb3IgdmVjdG9yIG1hdGggb3BlcmF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZlY3Rvck1hdGg6OnZtdWwpOgorICAgICAgICAoV2ViQ29yZTo6VmVjdG9yTWF0aDo6
dmFzbSk6CisgICAgICAgIChXZWJDb3JlOjpWZWN0b3JNYXRoOjp2c21hKToKKyAgICAgICAgKFdl
YkNvcmU6OlZlY3Rvck1hdGg6OnZhZGQpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1ZlY3Rv
ck1hdGguaDoKKworICAgICAgICBPcHRpbWl6ZSBwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJl
byB0byB1c2UgdmVjdG9yIG1hdGggb3BlcmF0aW9ucyB3aGVuIGRlemlwcGVyaW5nCisgICAgICAg
IG9mIGdhaW4gcHJvY2Vzc2luZyBpcyBub3QgbmVlZGVkOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpwcm9jZXNzV2l0
aEdhaW5Gcm9tTW9ub1N0ZXJlbyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y29weVdp
dGhTYW1wbGVBY2N1cmF0ZUdhaW5WYWx1ZXNGcm9tKToKKworICAgICAgICBUaGUgZm9sbG93aW5n
IGZ1bmN0aW9ucyBub3cgdGFrZSBvciBvcGVyYXRlIG9uIGZsb2F0cyBpbnN0ZWFkIG9mIGRvdWJs
ZXM6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6c2NhbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb20pOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9CdXM6OmNvcHlXaXRoR2FpbkZyb20pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnN1
bVdpdGhHYWluRnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpzZXRHYWluKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVzOjpnYWluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9DaGFubmVsOjpzY2FsZSk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmg6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9k
ZTo6cHJvY2Vzcyk6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmg6
CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9HYWluTm9kZS5oOgorICAgICAgICAqIHdlYmF1ZGlv
L0F1ZGlvUGFubmVyTm9kZS5oOgorCisyMDExLTEyLTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgorCiAgICAgICAgIFdlYkF1ZGlvOiBFbmFibGUgVVNFX0NPTkNBVEVOQVRFRF9J
TVBVTFNFX1JFU1BPTlNFUyBvbiBNYWMgcG9ydC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzI4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmNwcAppbmRleCBmZDQ0MjFkZGM5YTc4YmIwMjNjY2FmYWY4NWExNzU2ZmE3
MWM5NmZiLi4xYWMzMTZkZjYyMzc1N2VmNzE0MjMxZWFkMDE3YzBmMmRmMzEwOWQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCkBAIC0xODMsNyArMTgzLDcg
QEAgdm9pZCBBdWRpb0J1czo6bm9ybWFsaXplKCkKICAgICAgICAgc2NhbGUoMS4wZiAvIG1heCk7
CiB9CiAKLXZvaWQgQXVkaW9CdXM6OnNjYWxlKGRvdWJsZSBzY2FsZSkKK3ZvaWQgQXVkaW9CdXM6
OnNjYWxlKGZsb2F0IHNjYWxlKQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1i
ZXJPZkNoYW5uZWxzKCk7ICsraSkKICAgICAgICAgY2hhbm5lbChpKS0+c2NhbGUoc2NhbGUpOwpA
QCAtMjI5LDE2ICsyMjksMTMgQEAgdm9pZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1
cyAmc291cmNlQnVzKQogICAgIH0KIH0KIAotdm9pZCBBdWRpb0J1czo6cHJvY2Vzc1dpdGhHYWlu
RnJvbU1vbm9TdGVyZW8oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0TWl4
R2FpbiwgZG91YmxlIHRhcmdldEdhaW4sIGJvb2wgc3VtVG9CdXMpCit2b2lkIEF1ZGlvQnVzOjpw
cm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBm
bG9hdCogbGFzdE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4sIGJvb2wgc3VtVG9CdXMpCiB7CiAg
ICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBzdWRkZW5seSBjaGFuZ2UgdGhlIGdhaW4gZnJvbSBtaXhp
bmcgb25lIHRpbWUgc2xpY2UgdG8gdGhlIG5leHQsCiAgICAgLy8gc28gd2UgImRlLXppcHBlciIg
Ynkgc2xvd2x5IGNoYW5naW5nIHRoZSBnYWluIGVhY2ggc2FtcGxlLWZyYW1lIHVudGlsIHdlJ3Zl
IGFjaGlldmVkIHRoZSB0YXJnZXQgZ2Fpbi4KIAogICAgIC8vIEZJWE1FOiBvcHRpbWl6ZSB0aGlz
IG1ldGhvZCAoU1NFLCBldGMuKQotICAgIC8vIEZJWE1FOiBOZWVkIGZhc3QgcGF0aCBoZXJlIHdo
ZW4gZ2FpbiBoYXMgY29udmVyZ2VkIG9uIHRhcmdldEdhaW4uIEluIHRoaXMgY2FzZSwgZGUtemlw
cGVyaW5nIGlzIG5vIGxvbmdlciBuZWVkZWQuCiAgICAgLy8gRklYTUU6IE5lZWQgZmFzdCBwYXRo
IHdoZW4gdGhpcz09c291cmNlQnVzICYmIGxhc3RNaXhHYWluPT10YXJnZXRHYWluPT0xLjAgJiYg
c3VtVG9CdXM9PWZhbHNlICh0aGlzIGlzIGEgTk9QKQotCi0gICAgLy8gRklYTUU6IHRhcmdldEdh
aW4gYW5kIGxhc3RNaXhHYWluIHNob3VsZCBiZSBjaGFuZ2VkIHRvIGZsb2F0cyBpbnN0ZWFkIG9m
IGRvdWJsZXMuCiAgICAgCiAgICAgLy8gVGFrZSBtYXN0ZXIgYnVzIGdhaW4gaW50byBhY2NvdW50
IGFzIHdlbGwgYXMgdGhlIHRhcmdldEdhaW4uCiAgICAgZmxvYXQgdG90YWxEZXNpcmVkR2FpbiA9
IHN0YXRpY19jYXN0PGZsb2F0PihtX2J1c0dhaW4gKiB0YXJnZXRHYWluKTsKQEAgLTI0Niw2ICsy
NDMsNyBAQCB2b2lkIEF1ZGlvQnVzOjpwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25z
dCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqCiAgICAgLy8gRmlyc3QgdGltZSwgc25hcCBk
aXJlY3RseSB0byB0b3RhbERlc2lyZWRHYWluLgogICAgIGZsb2F0IGdhaW4gPSBzdGF0aWNfY2Fz
dDxmbG9hdD4obV9pc0ZpcnN0VGltZSA/IHRvdGFsRGVzaXJlZEdhaW4gOiAqbGFzdE1peEdhaW4p
OwogICAgIG1faXNGaXJzdFRpbWUgPSBmYWxzZTsKKyAgICBib29sIG5lZWRzRGV6aXBwZXJpbmcg
PSAqbGFzdE1peEdhaW4gIT0gZ2FpbjsKIAogICAgIGludCBudW1iZXJPZlNvdXJjZUNoYW5uZWxz
ID0gc291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKTsKICAgICBpbnQgbnVtYmVyT2ZEZXN0aW5h
dGlvbkNoYW5uZWxzID0gbnVtYmVyT2ZDaGFubmVscygpOwpAQCAtMjYwLDcgKzI1OCwzNSBAQCB2
b2lkIEF1ZGlvQnVzOjpwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1
cyAmc291cmNlQnVzLCBkb3VibGUqCiAgICAgY29uc3QgZmxvYXQgRGV6aXBwZXJSYXRlID0gMC4w
MDVmOwogICAgIGludCBmcmFtZXNUb1Byb2Nlc3MgPSBsZW5ndGgoKTsKIAotICAgIGlmIChzdW1U
b0J1cykgeworICAgIGlmICghbmVlZHNEZXppcHBlcmluZykgeworICAgICAgICAvLyBPcHRpbWl6
ZSBmb3IgdGhlIG5vbi1kZXppcHBlcmluZyBjYXNlOgorICAgICAgICBpZiAoc3VtVG9CdXMpIHsK
KyAgICAgICAgICAgIGlmIChzb3VyY2VSICYmIGRlc3RpbmF0aW9uUikgeworICAgICAgICAgICAg
ICAgIC8vIFN0ZXJlbworICAgICAgICAgICAgICAgIHZzbWEoc291cmNlTCwgMSwgJmdhaW4sIGRl
c3RpbmF0aW9uTCwgMSwgZGVzdGluYXRpb25MLCAxLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAg
ICAgICAgICAgIHZzbWEoc291cmNlUiwgMSwgJmdhaW4sIGRlc3RpbmF0aW9uTCwgMSwgZGVzdGlu
YXRpb25SLCAxLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkZXN0
aW5hdGlvblIpIHsKKyAgICAgICAgICAgICAgICAvLyBNb25vIC0+IHN0ZXJlbyAobWl4IGVxdWFs
bHkgaW50byBMIGFuZCBSKQorICAgICAgICAgICAgICAgIHZzbWEoc291cmNlTCwgMSwgJmdhaW4s
IGRlc3RpbmF0aW9uTCwgMSwgZGVzdGluYXRpb25MLCAxLCBmcmFtZXNUb1Byb2Nlc3MpOworICAg
ICAgICAgICAgICAgIG1lbWNweShkZXN0aW5hdGlvblIsIGRlc3RpbmF0aW9uTCwgc2l6ZW9mKGZs
b2F0KSAqIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
ICAgICAvLyBNb25vCisgICAgICAgICAgICAgICAgdnNtYShzb3VyY2VMLCAxLCAmZ2FpbiwgZGVz
dGluYXRpb25MLCAxLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAvLyBQcm9jZXNzIGRpcmVjdGx5ICh3aXRob3V0IHN1bW1p
bmcpIHRvIG91ciBidXMKKyAgICAgICAgICAgIGlmIChzb3VyY2VSICYmIGRlc3RpbmF0aW9uUikg
eworICAgICAgICAgICAgICAgIC8vIFN0ZXJlbworICAgICAgICAgICAgICAgIHZzbXVsKHNvdXJj
ZUwsIDEsICZnYWluLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAg
ICAgICAgICAgdnNtdWwoc291cmNlUiwgMSwgJmdhaW4sIGRlc3RpbmF0aW9uUiwgMSwgZnJhbWVz
VG9Qcm9jZXNzKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVzdGluYXRpb25SKSB7CisgICAg
ICAgICAgICAgICAgLy8gTW9ubyAtPiBzdGVyZW8gKG1peCBlcXVhbGx5IGludG8gTCBhbmQgUikK
KyAgICAgICAgICAgICAgICB2c211bChzb3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAx
LCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgICAgIG1lbWNweShkZXN0aW5hdGlvblIs
IGRlc3RpbmF0aW9uTCwgc2l6ZW9mKGZsb2F0KSAqIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAvLyBNb25vCisgICAgICAgICAgICAgICAgdnNt
dWwoc291cmNlTCwgMSwgJmdhaW4sIGRlc3RpbmF0aW9uTCwgMSwgZnJhbWVzVG9Qcm9jZXNzKTsK
KyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoc3VtVG9CdXMpIHsKICAgICAgICAgLy8gU3VtIHRv
IG91ciBidXMKICAgICAgICAgaWYgKHNvdXJjZVIgJiYgZGVzdGluYXRpb25SKSB7CiAgICAgICAg
ICAgICAvLyBTdGVyZW8KQEAgLTMzOSwxMSArMzY1LDE1IEBAIHZvaWQgQXVkaW9CdXM6OnByb2Nl
c3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJs
ZSoKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIFNhdmUgdGhlIHRhcmdldCBnYWluIGFzIHRo
ZSBzdGFydGluZyBwb2ludCBmb3IgbmV4dCB0aW1lIGFyb3VuZC4KLSAgICAqbGFzdE1peEdhaW4g
PSBzdGF0aWNfY2FzdDxkb3VibGU+KGdhaW4pOworICAgIC8vIFNhdmUgdGhlIHRhcmdldCBnYWlu
IGFzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgbmV4dCB0aW1lIGFyb3VuZC4gU2luY2UgdGhlIGRl
emlwcGVyIGZ1bmN0aW9uIGlzIGFzeW1wdG90aWMgdG8KKyAgICAvLyB0YXJnZXRHYWluLCBlbmQg
dGhlIGRlemlwcGVyIGJ5IHNldHRpbmcgbGFzdE1peEdhaW4gdG8gdGFyZ2V0R2FpbiBvbmNlIHRo
ZSBkZWx0YSBpcyBzdWZmaWNpZW50bHkgc21hbGwuCisgICAgaWYgKGZhYnMoZ2FpbiAtIHRhcmdl
dEdhaW4pIDw9IERlemlwcGVyUmF0ZSkKKyAgICAgICAgZ2FpbiA9IHRhcmdldEdhaW47CisKKyAg
ICAqbGFzdE1peEdhaW4gPSBnYWluOwogfQogCi12b2lkIEF1ZGlvQnVzOjpwcm9jZXNzV2l0aEdh
aW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSogbGFzdE1peEdhaW4sIGRv
dWJsZSB0YXJnZXRHYWluLCBib29sIHN1bVRvQnVzKQordm9pZCBBdWRpb0J1czo6cHJvY2Vzc1dp
dGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4s
IGZsb2F0IHRhcmdldEdhaW4sIGJvb2wgc3VtVG9CdXMpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHdl
J3JlIHN1bW1pbmcgZnJvbSBzYW1lIHR5cGUgb2YgYnVzLgogICAgIC8vIFdlICphcmUqIGFibGUg
dG8gc3VtIGZyb20gbW9ubyAtPiBzdGVyZW8KQEAgLTM4NywxNyArNDE3LDE2IEBAIHZvaWQgQXVk
aW9CdXM6OmNvcHlXaXRoU2FtcGxlQWNjdXJhdGVHYWluVmFsdWVzRnJvbShjb25zdCBBdWRpb0J1
cyAmc291cmNlQnVzLCBmCiAgICAgICAgIGlmIChzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygp
ID09IG51bWJlck9mQ2hhbm5lbHMoKSkKICAgICAgICAgICAgIHNvdXJjZSA9IHNvdXJjZUJ1cy5j
aGFubmVsKGNoYW5uZWxJbmRleCktPmRhdGEoKTsKICAgICAgICAgZmxvYXQqIGRlc3RpbmF0aW9u
ID0gY2hhbm5lbChjaGFubmVsSW5kZXgpLT5kYXRhKCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBudW1iZXJPZkdhaW5WYWx1ZXM7ICsraSkKLSAgICAgICAgICAgIGRlc3RpbmF0
aW9uW2ldID0gc291cmNlW2ldICogZ2FpblZhbHVlc1tpXTsKKyAgICAgICAgdm11bChzb3VyY2Us
IDEsIGdhaW5WYWx1ZXMsIDEsIGRlc3RpbmF0aW9uLCAxLCBudW1iZXJPZkdhaW5WYWx1ZXMpOwog
ICAgIH0KIH0KIAotdm9pZCBBdWRpb0J1czo6Y29weVdpdGhHYWluRnJvbShjb25zdCBBdWRpb0J1
cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2FpbikKK3Zv
aWQgQXVkaW9CdXM6OmNvcHlXaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywg
ZmxvYXQqIGxhc3RNaXhHYWluLCBmbG9hdCB0YXJnZXRHYWluKQogewogICAgIHByb2Nlc3NXaXRo
R2FpbkZyb20oc291cmNlQnVzLCBsYXN0TWl4R2FpbiwgdGFyZ2V0R2FpbiwgZmFsc2UpOwogfQog
Ci12b2lkIEF1ZGlvQnVzOjpzdW1XaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1
cywgZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdldEdhaW4pCit2b2lkIEF1ZGlvQnVz
OjpzdW1XaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZmxvYXQqIGxhc3RN
aXhHYWluLCBmbG9hdCB0YXJnZXRHYWluKQogewogICAgIHByb2Nlc3NXaXRoR2FpbkZyb20oc291
cmNlQnVzLCBsYXN0TWl4R2FpbiwgdGFyZ2V0R2FpbiwgdHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAppbmRleCAyMjU1YmViNTJhYWM0ZWNlNTI5MTVhMmFh
YTUyMDlmYzJhZjhhNTgzLi42MzcwYzhiNTIzNDYxNDdjYTg3MGMzMWU1M2NjN2FjZDQ1ODczYmZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKQEAgLTEwMCwxMSAr
MTAwLDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxBdWRpb0J1cz4gY3JlYXRl
QnlNaXhpbmdUb01vbm8oQXVkaW9CdXMqIHNvdXJjZUJ1cyk7CiAKICAgICAvLyBTY2FsZXMgYWxs
IHNhbXBsZXMgYnkgdGhlIHNhbWUgYW1vdW50LgotICAgIHZvaWQgc2NhbGUoZG91YmxlIHNjYWxl
KTsKKyAgICB2b2lkIHNjYWxlKGZsb2F0IHNjYWxlKTsKIAogICAgIC8vIE1hc3RlciBnYWluIGZv
ciB0aGlzIGJ1cyAtIHVzZWQgd2l0aCBzdW1XaXRoR2FpbkZyb20oKSBiZWxvdwotICAgIHZvaWQg
c2V0R2Fpbihkb3VibGUgZ2FpbikgeyBtX2J1c0dhaW4gPSBnYWluOyB9Ci0gICAgZG91YmxlIGdh
aW4oKSB7IHJldHVybiBtX2J1c0dhaW47IH0KKyAgICB2b2lkIHNldEdhaW4oZmxvYXQgZ2Fpbikg
eyBtX2J1c0dhaW4gPSBnYWluOyB9CisgICAgZmxvYXQgZ2FpbigpIHsgcmV0dXJuIG1fYnVzR2Fp
bjsgfQogCiAgICAgdm9pZCByZXNldCgpIHsgbV9pc0ZpcnN0VGltZSA9IHRydWU7IH0gLy8gZm9y
IGRlLXppcHBlcmluZwogCkBAIC0xMTksOCArMTE5LDggQEAgcHVibGljOgogICAgIC8vIFdlIHNj
YWxlIGJ5IHRhcmdldEdhaW4gKGFuZCBvdXIgb3duIGludGVybmFsIGdhaW4gbV9idXNHYWluKSwg
cGVyZm9ybWluZyAiZGUtemlwcGVyaW5nIiB0byBzbW9vdGhseSBjaGFuZ2UgZnJvbSAqbGFzdE1p
eEdhaW4gdG8gKHRhcmdldEdhaW4qbV9idXNHYWluKS4KICAgICAvLyBUaGUgY2FsbGVyIGlzIHJl
c3BvbnNpYmxlIGZvciBzZXR0aW5nIHVwIGxhc3RNaXhHYWluIHRvIHBvaW50IHRvIHN0b3JhZ2Ug
d2hpY2ggaXMgdW5pcXVlIGZvciBldmVyeSAic3RyZWFtIiB3aGljaCB3aWxsIGJlIHN1bW1lZCB0
byB0aGlzIGJ1cy4KICAgICAvLyBUaGlzIHJlcHJlc2VudHMgdGhlIGRlemlwcGVyaW5nIG1lbW9y
eS4KLSAgICB2b2lkIGNvcHlXaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywg
ZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdldEdhaW4pOwotICAgIHZvaWQgc3VtV2l0
aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSogbGFzdE1peEdhaW4s
IGRvdWJsZSB0YXJnZXRHYWluKTsKKyAgICB2b2lkIGNvcHlXaXRoR2FpbkZyb20oY29uc3QgQXVk
aW9CdXMgJnNvdXJjZUJ1cywgZmxvYXQqIGxhc3RNaXhHYWluLCBmbG9hdCB0YXJnZXRHYWluKTsK
KyAgICB2b2lkIHN1bVdpdGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBmbG9h
dCogbGFzdE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4pOwogCiAgICAgLy8gQ29waWVzIHRoZSBz
b3VyY2VCdXMgYnkgc2NhbGluZyB3aXRoIHNhbXBsZS1hY2N1cmF0ZSBnYWluIHZhbHVlcy4KICAg
ICB2b2lkIGNvcHlXaXRoU2FtcGxlQWNjdXJhdGVHYWluVmFsdWVzRnJvbShjb25zdCBBdWRpb0J1
cyAmc291cmNlQnVzLCBmbG9hdCogZ2FpblZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZHYWluVmFs
dWVzKTsKQEAgLTEzNiw4ICsxMzYsOCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgQXVkaW9C
dXMoKSB7IH07CiAKLSAgICB2b2lkIHByb2Nlc3NXaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMg
JnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdldEdhaW4sIGJvb2wg
c3VtVG9CdXMpOwotICAgIHZvaWQgcHJvY2Vzc1dpdGhHYWluRnJvbU1vbm9TdGVyZW8oY29uc3Qg
QXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdldEdh
aW4sIGJvb2wgc3VtVG9CdXMpOworICAgIHZvaWQgcHJvY2Vzc1dpdGhHYWluRnJvbShjb25zdCBB
dWRpb0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4s
IGJvb2wgc3VtVG9CdXMpOworICAgIHZvaWQgcHJvY2Vzc1dpdGhHYWluRnJvbU1vbm9TdGVyZW8o
Y29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZmxvYXQqIGxhc3RNaXhHYWluLCBmbG9hdCB0YXJn
ZXRHYWluLCBib29sIHN1bVRvQnVzKTsKIAogICAgIHNpemVfdCBtX2xlbmd0aDsKIApAQCAtMTQ1
LDcgKzE0NSw3IEBAIHByb3RlY3RlZDoKIAogICAgIGludCBtX2xheW91dDsKIAotICAgIGRvdWJs
ZSBtX2J1c0dhaW47CisgICAgZmxvYXQgbV9idXNHYWluOwogICAgIGJvb2wgbV9pc0ZpcnN0VGlt
ZTsKICAgICBmbG9hdCBtX3NhbXBsZVJhdGU7IC8vIDAuMCBpZiB1bmtub3duIG9yIE4vQQogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQ2hhbm5lbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuY3BwCmluZGV4
IGE5NjJkZWJkNTcyNjBjNDNlYzI2MDIwYTZjMjg3NmM5NzQzYTY0YjguLjM5ZGFmZjk2NmZlMTk3
ZjJjNWUxOTY4NmFlYTMwMTNhMDgxNDQ2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9DaGFubmVsLmNwcApAQCAtNDEsMTAgKzQxLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgVmVjdG9yTWF0aDsKIAotdm9pZCBBdWRpb0NoYW5u
ZWw6OnNjYWxlKGRvdWJsZSBzY2FsZSkKK3ZvaWQgQXVkaW9DaGFubmVsOjpzY2FsZShmbG9hdCBz
Y2FsZSkKIHsKLSAgICBmbG9hdCBzID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNjYWxlKTsKLSAgICB2
c211bChkYXRhKCksIDEsICZzLCBkYXRhKCksIDEsIGxlbmd0aCgpKTsKKyAgICB2c211bChkYXRh
KCksIDEsICZzY2FsZSwgZGF0YSgpLCAxLCBsZW5ndGgoKSk7CiB9CiAKIHZvaWQgQXVkaW9DaGFu
bmVsOjpjb3B5RnJvbShjb25zdCBBdWRpb0NoYW5uZWwqIHNvdXJjZUNoYW5uZWwpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQ2hhbm5lbC5oCmluZGV4IDczMjVlOWYzOGJi
NDNlYmJmZGIwZDY5ZGRhNzVkYTY0MjM5ZmQ3ZTYuLjg4MDNlNzVjZDFlM2Y3YWUyMmE1MDg2OWY2
MWU4ZGQ0NWRiYmQ0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
Q2hhbm5lbC5oCkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBTY2Fs
ZXMgYWxsIHNhbXBsZXMgYnkgdGhlIHNhbWUgYW1vdW50LgotICAgIHZvaWQgc2NhbGUoZG91Ymxl
IHNjYWxlKTsKKyAgICB2b2lkIHNjYWxlKGZsb2F0IHNjYWxlKTsKIAogICAgIC8vIEEgc2ltcGxl
IG1lbWNweSgpIGZyb20gdGhlIHNvdXJjZSBjaGFubmVsCiAgICAgdm9pZCBjb3B5RnJvbShjb25z
dCBBdWRpb0NoYW5uZWwqIHNvdXJjZUNoYW5uZWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9WZWN0b3JNYXRoLmNwcAppbmRleCBmZjQ0MDZhNzI0N2RjMjVkYWJhYjA2NzYwNmNl
NjRmZWRlYWFiNzZmLi4zMTg1NTdjZDQ1MWE0ZWFmYjY3NmJmMDg4M2ZmMGIwMjQyNjM5MzQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcApAQCAtNDUs
NiArNDUsMTUgQEAgbmFtZXNwYWNlIFZlY3Rvck1hdGggewogLy8gSW4gMzItYml0IG1vZGUgKF9f
cHBjX18gb3IgX19pMzg2X18pIDxBY2NlbGVyYXRlL0FjY2VsZXJhdGUuaD4gaW5jbHVkZXMgPHZl
Y0xpYi92RFNQX3RyYW5zbGF0ZS5oPiB3aGljaCBkZWZpbmVzIG1hY3JvcyBvZiB0aGUgc2FtZSBu
YW1lIGFzCiAvLyBvdXIgbmFtZXNwYWNlZCBmdW5jdGlvbiBuYW1lcywgc28gd2UgbXVzdCBoYW5k
bGUgdGhpcyBjYXNlIGRpZmZlcmVudGx5LiBPdGhlciBhcmNoaXRlY3R1cmVzICg2NGJpdCwgQVJN
LCBldGMuKSBkbyBub3QgaW5jbHVkZSB0aGlzIGhlYWRlciBmaWxlLgogCit2b2lkIHZtdWwoY29u
c3QgZmxvYXQqIHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJj
ZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6
ZV90IGZyYW1lc1RvUHJvY2VzcykKK3sKKyNpZiBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQo
X19pMzg2X18pCisgICAgOjp2bXVsKHNvdXJjZTFQLCBzb3VyY2VTdHJpZGUxLCBzb3VyY2UyUCwg
c291cmNlU3RyaWRlMiwgZGVzdFAsIGRlc3RTdHJpZGUsIGZyYW1lc1RvUHJvY2Vzcyk7CisjZWxz
ZQorICAgIHZEU1Bfdm11bChzb3VyY2UxUCwgc291cmNlU3RyaWRlMSwgc291cmNlMlAsIHNvdXJj
ZVN0cmlkZTIsIGRlc3RQLCBkZXN0U3RyaWRlLCBmcmFtZXNUb1Byb2Nlc3MpOworI2VuZGlmCit9
CisKIHZvaWQgdnNtdWwoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGNv
bnN0IGZsb2F0KiBzY2FsZSwgZmxvYXQqIGRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgc2l6ZV90IGZy
YW1lc1RvUHJvY2VzcykKIHsKICNpZiBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19pMzg2
X18pCkBAIC02Myw4ICs3MiwzMCBAQCB2b2lkIHZhZGQoY29uc3QgZmxvYXQqIHNvdXJjZTFQLCBp
bnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQgcwogI2VuZGlmCiB9
CiAKK3ZvaWQgdmFzbShjb25zdCBmbG9hdCAqc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBj
b25zdCBmbG9hdCAqc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCAqc2NhbGFyTXVs
dCwgZmxvYXQgKmRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgaW50IGZyYW1lc1RvUHJvY2VzcykKK3sK
KyAgICB2RFNQX3Zhc20oY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZTFQKSwgc291cmNlU3RyaWRl
MSwgY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZTJQKSwgc291cmNlU3RyaWRlMiwgc2NhbGFyTXVs
dCwgZGVzdFAsIGRlc3RTdHJpZGUsIGZyYW1lc1RvUHJvY2Vzcyk7Cit9CisKK3ZvaWQgdnNtYShj
b25zdCBmbG9hdCAqc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBmbG9hdCAqc2NhbGFyTXVs
dCwgY29uc3QgZmxvYXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQgKmRlc3RQ
LCBpbnQgZGVzdFN0cmlkZSwgaW50IGZyYW1lc1RvUHJvY2VzcykKK3sKKyAgICB2RFNQX3ZzbWEo
Y29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZTFQKSwgc291cmNlU3RyaWRlMSwgc2NhbGFyTXVsdCwg
Y29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZTJQKSwgc291cmNlU3RyaWRlMiwgZGVzdFAsIGRlc3RT
dHJpZGUsIGZyYW1lc1RvUHJvY2Vzcyk7Cit9CisKICNlbHNlCiAKK3ZvaWQgdmFkZChjb25zdCBm
bG9hdCogc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAs
IGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIC8vIEZJWE1FOiBvcHRpbWl6ZSBmb3IgU1NFCisgICAg
aW50IG4gPSBmcmFtZXNUb1Byb2Nlc3M7CisgICAgd2hpbGUgKG4tLSkgeworICAgICAgICAqZGVz
dFAgPSAqc291cmNlMVAgKiAqc291cmNlMlA7CisgICAgICAgIHNvdXJjZTFQICs9IHNvdXJjZVN0
cmlkZTE7CisgICAgICAgIHNvdXJjZTJQICs9IHNvdXJjZVN0cmlkZTI7CisgICAgICAgIGRlc3RQ
ICs9IGRlc3RTdHJpZGU7CisgICAgfQorfQorCiB2b2lkIHZzbXVsKGNvbnN0IGZsb2F0KiBzb3Vy
Y2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGUsIGZsb2F0KiBkZXN0UCwg
aW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiB7CiAjaWZkZWYgX19TU0Uy
X18KQEAgLTIyOSw2ICsyNjAsMjkgQEAgdm9pZCB2YWRkKGNvbnN0IGZsb2F0KiBzb3VyY2UxUCwg
aW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0KiBzb3VyY2UyUCwgaW50IHMKICNlbmRpZgog
fQogCit2b2lkIHZhc20oY29uc3QgZmxvYXQgKnNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwg
Y29uc3QgZmxvYXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQgKnNjYWxhck11
bHQsIGZsb2F0ICpkZXN0UCwgaW50IGRlc3RTdHJpZGUsIGludCBmcmFtZXNUb1Byb2Nlc3MpCit7
CisgICAgLy8gRklYTUU6IG9wdGltaXplIGZvciBTU0UKKyAgICBpbnQgbiA9IGZyYW1lc1RvUHJv
Y2VzczsKKyAgICB3aGlsZSAobi0tKSB7CisgICAgICAgICpkZXN0UCA9ICgqc291cmNlMVAgKyAq
c291cmNlMlApICogKnNjYWxhck11bHQ7CisgICAgICAgIHNvdXJjZTFQICs9IHNvdXJjZVN0cmlk
ZTE7CisgICAgICAgIHNvdXJjZTJQICs9IHNvdXJjZVN0cmlkZTI7CisgICAgICAgIGRlc3RQICs9
IGRlc3RTdHJpZGU7CisgICAgfQorfQorCit2b2lkIHZzbWEoY29uc3QgZmxvYXQgKnNvdXJjZTFQ
LCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3Ry
aWRlMiwgZmxvYXQgKnNjYWxhck11bHQsIGZsb2F0ICpkZXN0UCwgaW50IGRlc3RTdHJpZGUsIGlu
dCBmcmFtZXNUb1Byb2Nlc3MpCit7CisgICAgLy8gRklYTUU6IG9wdGltaXplIGZvciBTU0UKKyAg
ICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsKKyAgICB3aGlsZSAobi0tKSB7CisgICAgICAgICpk
ZXN0UCA9ICgqc291cmNlMVAgKiAqc2NhbGFyTXVsdCkgKyAqc291cmNlMlA7CisgICAgICAgIHNv
dXJjZTFQICs9IHNvdXJjZVN0cmlkZTE7CisgICAgICAgIHNvdXJjZTJQICs9IHNvdXJjZVN0cmlk
ZTI7CisgICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7CisgICAgfQorfQogI2VuZGlmIC8vIE9T
KERBUldJTikKIAogfSAvLyBuYW1lc3BhY2UgVmVjdG9yTWF0aApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oCmluZGV4IDAzNjBiZGJhNDFhYjI4ZWIyNmZmNjc1ODA0
ZDc0ZGQyNjU4OThjNmIuLjIzZTllMzc4N2JiOTNlNDdkNWU0MTg4NjkzNDQwMGRjMDM4M2RmMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmgKQEAgLTMzLDYg
KzMzLDkgQEAgbmFtZXNwYWNlIFZlY3Rvck1hdGggewogCiB2b2lkIHZzbXVsKGNvbnN0IGZsb2F0
KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGUsIGZsb2F0KiBk
ZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogdm9pZCB2YWRk
KGNvbnN0IGZsb2F0KiBzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0KiBz
b3VyY2UyUCwgaW50IHNvdXJjZVN0cmlkZTIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUs
IHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwordm9pZCB2bXVsKGNvbnN0IGZsb2F0KiBzb3VyY2Ux
UCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0KiBzb3VyY2UyUCwgaW50IHNvdXJjZVN0
cmlkZTIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpOwordm9pZCB2YXNtKGNvbnN0IGZsb2F0ICpzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEs
IGNvbnN0IGZsb2F0ICpzb3VyY2UyUCwgaW50IHNvdXJjZVN0cmlkZTIsIGZsb2F0ICpzY2FsYXJN
dWx0LCBmbG9hdCAqZGVzdFAsIGludCBkZXN0U3RyaWRlLCBpbnQgZnJhbWVzVG9Qcm9jZXNzKTsK
K3ZvaWQgdnNtYShjb25zdCBmbG9hdCAqc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBmbG9h
dCAqc2NhbGFyTXVsdCwgY29uc3QgZmxvYXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwg
ZmxvYXQgKmRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgaW50IGZyYW1lc1RvUHJvY2Vzcyk7CiAKIH0g
Ly8gbmFtZXNwYWNlIFZlY3Rvck1hdGgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKaW5kZXggMGYwZDdiMzE5MDQxY2I3NzJkODUwNTdl
MTcwYTIzNmRmOWE2NDYzMi4uOWNkNDZkYmU5ZmQzYzAzY2MyNjlhZjRjNzI3MTZiNTAwMmE4ZjQ3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5v
ZGUuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnBy
b2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgcmVuZGVyRnJvbUJ1ZmZlcihv
dXRwdXRCdXMsIHF1YW50dW1GcmFtZU9mZnNldCwgYnVmZmVyRnJhbWVzVG9Qcm9jZXNzKTsKIAog
ICAgICAgICAvLyBBcHBseSB0aGUgZ2FpbiAoaW4tcGxhY2UpIHRvIHRoZSBvdXRwdXQgYnVzLgot
ICAgICAgICBkb3VibGUgdG90YWxHYWluID0gZ2FpbigpLT52YWx1ZSgpICogbV9idWZmZXItPmdh
aW4oKTsKKyAgICAgICAgZmxvYXQgdG90YWxHYWluID0gZ2FpbigpLT52YWx1ZSgpICogbV9idWZm
ZXItPmdhaW4oKTsKICAgICAgICAgb3V0cHV0QnVzLT5jb3B5V2l0aEdhaW5Gcm9tKCpvdXRwdXRC
dXMsICZtX2xhc3RHYWluLCB0b3RhbEdhaW4pOwogCiAgICAgICAgIC8vIElmIHRoZSBlbmQgdGlt
ZSBpcyBzb21ld2hlcmUgaW4gdGhlIG1pZGRsZSBvZiB0aGlzIHRpbWUgcXVhbnR1bSwgdGhlbiBz
aW1wbHkgemVybyBvdXQgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9B
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5oCmluZGV4IGZkNzMwODFkNmIzZjgxYjRlMWZiN2IyYjNjZDM4YmQ4MDBl
NzgzYjAuLmZlMWJjNmJkNWFkMWNkODE5ODFiZjJmMTFiYmExNmYzNWNmMzMwZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCkBAIC0xMjcs
NyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgdG90YWxQaXRjaFJhdGUoKTsKIAogICAg
IC8vIG1fbGFzdEdhaW4gcHJvdmlkZXMgY29udGludWl0eSB3aGVuIHdlIGR5bmFtaWNhbGx5IGFk
anVzdCB0aGUgZ2Fpbi4KLSAgICBkb3VibGUgbV9sYXN0R2FpbjsKKyAgICBmbG9hdCBtX2xhc3RH
YWluOwogICAgIAogICAgIC8vIFdlIG9wdGlvbmFsbHkga2VlcCB0cmFjayBvZiBhIHBhbm5lciBu
b2RlIHdoaWNoIGhhcyBhIGRvcHBsZXIgc2hpZnQgdGhhdCBpcyBpbmNvcnBvcmF0ZWQgaW50byB0
aGUgcGl0Y2ggcmF0ZS4KICAgICBSZWZQdHI8QXVkaW9QYW5uZXJOb2RlPiBtX3Bhbm5lck5vZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmggYi9T
b3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmgKaW5kZXggZTYzNDIxMjhjNzc5
OTRiYmQ0OGQyMGQ2ZjE4N2IyOGQ1NzkxOTRlMi4uNDE1YjA2YjhkY2M1NDc0ODRkYzY3MDRlYzlh
ZDJkMzZiMTFjOTA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9H
YWluTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvR2Fpbk5vZGUuaApA
QCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEF1ZGlvR2Fpbk5vZGUoQXVk
aW9Db250ZXh0KiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKLSAgICBkb3VibGUgbV9sYXN0R2Fpbjsg
Ly8gZm9yIGRlLXppcHBlcmluZworICAgIGZsb2F0IG1fbGFzdEdhaW47IC8vIGZvciBkZS16aXBw
ZXJpbmcKICAgICBSZWZQdHI8QXVkaW9HYWluPiBtX2dhaW47CiAKICAgICBBdWRpb0Zsb2F0QXJy
YXkgbV9zYW1wbGVBY2N1cmF0ZUdhaW5WYWx1ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvUGFubmVyTm9kZS5oCmluZGV4IDZlY2ViZWFhZTMxY2E3ZGFjMzg1NzlmMWQ1YTAzNWRlMzcy
MmNmMTEuLjk4ZDI3NzQzZTQxMTc5NDNiMjY4NzhlNjdlY2Q3MWUzOTY0YmRjNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5oCkBAIC0xMzgsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8QXVkaW9HYWluPiBtX2NvbmVHYWluOwogICAgIERpc3RhbmNl
RWZmZWN0IG1fZGlzdGFuY2VFZmZlY3Q7CiAgICAgQ29uZUVmZmVjdCBtX2NvbmVFZmZlY3Q7Ci0g
ICAgZG91YmxlIG1fbGFzdEdhaW47CisgICAgZmxvYXQgbV9sYXN0R2FpbjsKIAogICAgIHVuc2ln
bmVkIG1fY29ubmVjdGlvbkNvdW50OwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118923</attachid>
            <date>2011-12-12 17:27:51 -0800</date>
            <delta_ts>2011-12-12 22:29:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74345-20111212172750.patch</filename>
            <type>text/plain</type>
            <size>18837</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E4NDNhMzY5ZTg5Yjk2
NjlhNWI5MzUyMzE2ZTg4NmVmYTRlZjQxYi4uMzVjYTZlMTA3ZDYzOGZiNmViYzU1Y2JhN2I4NGJh
YTQyOTExNzVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDExLTEyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFdlYkF1ZGlvOiBPcHRpbWl6
ZSBwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlby4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBvcHRpbWl6YXRpb24gb2YgZXhp
c3RpbmcgY29kZSwgc28gY292ZXJlZCBieSBleGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAg
IEFkZGVkIHRocmVlIG5ldyB3cmFwcGVyIG1ldGhvZHMgZm9yIHZlY3RvciBtYXRoIG9wZXJhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWZWN0b3JNYXRoOjp2bXVsKToKKyAgICAgICAgKFdlYkNvcmU6OlZlY3Rvck1hdGg6
OnZhc20pOgorICAgICAgICAoV2ViQ29yZTo6VmVjdG9yTWF0aDo6dnNtYSk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oOgorCisgICAgICAgIE9wdGltaXplIHByb2Nlc3NX
aXRoR2FpbkZyb21Nb25vU3RlcmVvIHRvIHVzZSB2ZWN0b3IgbWF0aCBvcGVyYXRpb25zIHdoZW4g
ZGV6aXBwZXJpbmcKKyAgICAgICAgb2YgZ2FpbiBwcm9jZXNzaW5nIGlzIG5vdCBuZWVkZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvQnVzOjpjb3B5V2l0aFNhbXBsZUFjY3VyYXRlR2FpblZhbHVlc0Zyb20pOgorCisg
ICAgICAgIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIG5vdyB0YWtlIG9yIG9wZXJhdGUgb24gZmxv
YXRzIGluc3RlYWQgb2YgZG91YmxlczoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpzY2Fs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6cHJvY2Vzc1dpdGhHYWluRnJvbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y29weVdpdGhHYWluRnJvbSk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0J1czo6c3VtV2l0aEdhaW5Gcm9tKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9BdWRpb0J1cy5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnNldEdhaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmdhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvQ2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NoYW5uZWw6OnNj
YWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuaDoKKyAgICAgICAg
KiB3ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRp
b0J1ZmZlclNvdXJjZU5vZGUuaDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmg6
CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmg6CisKKzIwMTEtMTItMTIgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKICAgICAgICAgV2ViQXVkaW86IEVuYWJs
ZSBVU0VfQ09OQ0FURU5BVEVEX0lNUFVMU0VfUkVTUE9OU0VTIG9uIE1hYyBwb3J0LgogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMjgKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCmluZGV4IGZkNDQyMWRkYzlhNzhi
YjAyM2NjYWZhZjg1YTE3NTZmYTcxYzk2ZmIuLjFhYzMxNmRmNjIzNzU3ZWY3MTQyMzFlYWQwMTdj
MGYyZGYzMTA5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQnVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5j
cHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIEF1ZGlvQnVzOjpub3JtYWxpemUoKQogICAgICAg
ICBzY2FsZSgxLjBmIC8gbWF4KTsKIH0KIAotdm9pZCBBdWRpb0J1czo6c2NhbGUoZG91YmxlIHNj
YWxlKQordm9pZCBBdWRpb0J1czo6c2NhbGUoZmxvYXQgc2NhbGUpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHMoKTsgKytpKQogICAgICAgICBjaGFubmVs
KGkpLT5zY2FsZShzY2FsZSk7CkBAIC0yMjksMTYgKzIyOSwxMyBAQCB2b2lkIEF1ZGlvQnVzOjpz
dW1Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMpCiAgICAgfQogfQogCi12b2lkIEF1ZGlv
QnVzOjpwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1cyAmc291cmNl
QnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1
cykKK3ZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKGNvbnN0IEF1
ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2Fpbiwg
Ym9vbCBzdW1Ub0J1cykKIHsKICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHN1ZGRlbmx5IGNoYW5n
ZSB0aGUgZ2FpbiBmcm9tIG1peGluZyBvbmUgdGltZSBzbGljZSB0byB0aGUgbmV4dCwKICAgICAv
LyBzbyB3ZSAiZGUtemlwcGVyIiBieSBzbG93bHkgY2hhbmdpbmcgdGhlIGdhaW4gZWFjaCBzYW1w
bGUtZnJhbWUgdW50aWwgd2UndmUgYWNoaWV2ZWQgdGhlIHRhcmdldCBnYWluLgogCiAgICAgLy8g
RklYTUU6IG9wdGltaXplIHRoaXMgbWV0aG9kIChTU0UsIGV0Yy4pCi0gICAgLy8gRklYTUU6IE5l
ZWQgZmFzdCBwYXRoIGhlcmUgd2hlbiBnYWluIGhhcyBjb252ZXJnZWQgb24gdGFyZ2V0R2Fpbi4g
SW4gdGhpcyBjYXNlLCBkZS16aXBwZXJpbmcgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KICAgICAvLyBG
SVhNRTogTmVlZCBmYXN0IHBhdGggd2hlbiB0aGlzPT1zb3VyY2VCdXMgJiYgbGFzdE1peEdhaW49
PXRhcmdldEdhaW49PTEuMCAmJiBzdW1Ub0J1cz09ZmFsc2UgKHRoaXMgaXMgYSBOT1ApCi0KLSAg
ICAvLyBGSVhNRTogdGFyZ2V0R2FpbiBhbmQgbGFzdE1peEdhaW4gc2hvdWxkIGJlIGNoYW5nZWQg
dG8gZmxvYXRzIGluc3RlYWQgb2YgZG91Ymxlcy4KICAgICAKICAgICAvLyBUYWtlIG1hc3RlciBi
dXMgZ2FpbiBpbnRvIGFjY291bnQgYXMgd2VsbCBhcyB0aGUgdGFyZ2V0R2Fpbi4KICAgICBmbG9h
dCB0b3RhbERlc2lyZWRHYWluID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fYnVzR2FpbiAqIHRhcmdl
dEdhaW4pOwpAQCAtMjQ2LDYgKzI0Myw3IEBAIHZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2Fp
bkZyb21Nb25vU3RlcmVvKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSoKICAgICAv
LyBGaXJzdCB0aW1lLCBzbmFwIGRpcmVjdGx5IHRvIHRvdGFsRGVzaXJlZEdhaW4uCiAgICAgZmxv
YXQgZ2FpbiA9IHN0YXRpY19jYXN0PGZsb2F0PihtX2lzRmlyc3RUaW1lID8gdG90YWxEZXNpcmVk
R2FpbiA6ICpsYXN0TWl4R2Fpbik7CiAgICAgbV9pc0ZpcnN0VGltZSA9IGZhbHNlOworICAgIGJv
b2wgbmVlZHNEZXppcHBlcmluZyA9ICpsYXN0TWl4R2FpbiAhPSBnYWluOwogCiAgICAgaW50IG51
bWJlck9mU291cmNlQ2hhbm5lbHMgPSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygpOwogICAg
IGludCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzKCk7CkBA
IC0yNjAsNyArMjU4LDM1IEBAIHZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25v
U3RlcmVvKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSoKICAgICBjb25zdCBmbG9h
dCBEZXppcHBlclJhdGUgPSAwLjAwNWY7CiAgICAgaW50IGZyYW1lc1RvUHJvY2VzcyA9IGxlbmd0
aCgpOwogCi0gICAgaWYgKHN1bVRvQnVzKSB7CisgICAgaWYgKCFuZWVkc0RlemlwcGVyaW5nKSB7
CisgICAgICAgIC8vIE9wdGltaXplIGZvciB0aGUgbm9uLWRlemlwcGVyaW5nIGNhc2U6CisgICAg
ICAgIGlmIChzdW1Ub0J1cykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVIgJiYgZGVzdGluYXRp
b25SKSB7CisgICAgICAgICAgICAgICAgLy8gU3RlcmVvCisgICAgICAgICAgICAgICAgdnNtYShz
b3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAxLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1l
c1RvUHJvY2Vzcyk7CisgICAgICAgICAgICAgICAgdnNtYShzb3VyY2VSLCAxLCAmZ2FpbiwgZGVz
dGluYXRpb25MLCAxLCBkZXN0aW5hdGlvblIsIDEsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKGRlc3RpbmF0aW9uUikgeworICAgICAgICAgICAgICAgIC8vIE1vbm8g
LT4gc3RlcmVvIChtaXggZXF1YWxseSBpbnRvIEwgYW5kIFIpCisgICAgICAgICAgICAgICAgdnNt
YShzb3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAxLCBkZXN0aW5hdGlvbkwsIDEsIGZy
YW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICAgICAgbWVtY3B5KGRlc3RpbmF0aW9uUiwgZGVz
dGluYXRpb25MLCBzaXplb2YoZmxvYXQpICogZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIC8vIE1vbm8KKyAgICAgICAgICAgICAgICB2c21hKHNv
dXJjZUwsIDEsICZnYWluLCBkZXN0aW5hdGlvbkwsIDEsIGRlc3RpbmF0aW9uTCwgMSwgZnJhbWVz
VG9Qcm9jZXNzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFByb2Nlc3MgZGly
ZWN0bHkgKHdpdGhvdXQgc3VtbWluZykgdG8gb3VyIGJ1cworICAgICAgICAgICAgaWYgKHNvdXJj
ZVIgJiYgZGVzdGluYXRpb25SKSB7CisgICAgICAgICAgICAgICAgLy8gU3RlcmVvCisgICAgICAg
ICAgICAgICAgdnNtdWwoc291cmNlTCwgMSwgJmdhaW4sIGRlc3RpbmF0aW9uTCwgMSwgZnJhbWVz
VG9Qcm9jZXNzKTsKKyAgICAgICAgICAgICAgICB2c211bChzb3VyY2VSLCAxLCAmZ2FpbiwgZGVz
dGluYXRpb25SLCAxLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgfSBlbHNlIGlmIChk
ZXN0aW5hdGlvblIpIHsKKyAgICAgICAgICAgICAgICAvLyBNb25vIC0+IHN0ZXJlbyAobWl4IGVx
dWFsbHkgaW50byBMIGFuZCBSKQorICAgICAgICAgICAgICAgIHZzbXVsKHNvdXJjZUwsIDEsICZn
YWluLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICAgICAg
bWVtY3B5KGRlc3RpbmF0aW9uUiwgZGVzdGluYXRpb25MLCBzaXplb2YoZmxvYXQpICogZnJhbWVz
VG9Qcm9jZXNzKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIC8vIE1vbm8K
KyAgICAgICAgICAgICAgICB2c211bChzb3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAx
LCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChzdW1Ub0J1cykg
ewogICAgICAgICAvLyBTdW0gdG8gb3VyIGJ1cwogICAgICAgICBpZiAoc291cmNlUiAmJiBkZXN0
aW5hdGlvblIpIHsKICAgICAgICAgICAgIC8vIFN0ZXJlbwpAQCAtMzM5LDExICszNjUsMTUgQEAg
dm9pZCBBdWRpb0J1czo6cHJvY2Vzc1dpdGhHYWluRnJvbU1vbm9TdGVyZW8oY29uc3QgQXVkaW9C
dXMgJnNvdXJjZUJ1cywgZG91YmxlKgogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gU2F2ZSB0
aGUgdGFyZ2V0IGdhaW4gYXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciBuZXh0IHRpbWUgYXJvdW5k
LgotICAgICpsYXN0TWl4R2FpbiA9IHN0YXRpY19jYXN0PGRvdWJsZT4oZ2Fpbik7CisgICAgLy8g
U2F2ZSB0aGUgdGFyZ2V0IGdhaW4gYXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciBuZXh0IHRpbWUg
YXJvdW5kLiBTaW5jZSB0aGUgZGV6aXBwZXIgZnVuY3Rpb24gaXMgYXN5bXB0b3RpYyB0bworICAg
IC8vIHRhcmdldEdhaW4sIGVuZCB0aGUgZGV6aXBwZXIgYnkgc2V0dGluZyBsYXN0TWl4R2FpbiB0
byB0YXJnZXRHYWluIG9uY2UgdGhlIGRlbHRhIGlzIHN1ZmZpY2llbnRseSBzbWFsbC4KKyAgICBp
ZiAoZmFicyhnYWluIC0gdGFyZ2V0R2FpbikgPD0gRGV6aXBwZXJSYXRlKQorICAgICAgICBnYWlu
ID0gdGFyZ2V0R2FpbjsKKworICAgICpsYXN0TWl4R2FpbiA9IGdhaW47CiB9CiAKLXZvaWQgQXVk
aW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91
YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdldEdhaW4sIGJvb2wgc3VtVG9CdXMpCit2b2lk
IEF1ZGlvQnVzOjpwcm9jZXNzV2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMs
IGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cykKIHsK
ICAgICAvLyBNYWtlIHN1cmUgd2UncmUgc3VtbWluZyBmcm9tIHNhbWUgdHlwZSBvZiBidXMuCiAg
ICAgLy8gV2UgKmFyZSogYWJsZSB0byBzdW0gZnJvbSBtb25vIC0+IHN0ZXJlbwpAQCAtMzg3LDE3
ICs0MTcsMTYgQEAgdm9pZCBBdWRpb0J1czo6Y29weVdpdGhTYW1wbGVBY2N1cmF0ZUdhaW5WYWx1
ZXNGcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGYKICAgICAgICAgaWYgKHNvdXJjZUJ1
cy5udW1iZXJPZkNoYW5uZWxzKCkgPT0gbnVtYmVyT2ZDaGFubmVscygpKQogICAgICAgICAgICAg
c291cmNlID0gc291cmNlQnVzLmNoYW5uZWwoY2hhbm5lbEluZGV4KS0+ZGF0YSgpOwogICAgICAg
ICBmbG9hdCogZGVzdGluYXRpb24gPSBjaGFubmVsKGNoYW5uZWxJbmRleCktPmRhdGEoKTsKLSAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mR2FpblZhbHVlczsgKytpKQot
ICAgICAgICAgICAgZGVzdGluYXRpb25baV0gPSBzb3VyY2VbaV0gKiBnYWluVmFsdWVzW2ldOwor
ICAgICAgICB2bXVsKHNvdXJjZSwgMSwgZ2FpblZhbHVlcywgMSwgZGVzdGluYXRpb24sIDEsIG51
bWJlck9mR2FpblZhbHVlcyk7CiAgICAgfQogfQogCi12b2lkIEF1ZGlvQnVzOjpjb3B5V2l0aEdh
aW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSogbGFzdE1peEdhaW4sIGRv
dWJsZSB0YXJnZXRHYWluKQordm9pZCBBdWRpb0J1czo6Y29weVdpdGhHYWluRnJvbShjb25zdCBB
dWRpb0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4p
CiB7CiAgICAgcHJvY2Vzc1dpdGhHYWluRnJvbShzb3VyY2VCdXMsIGxhc3RNaXhHYWluLCB0YXJn
ZXRHYWluLCBmYWxzZSk7CiB9CiAKLXZvaWQgQXVkaW9CdXM6OnN1bVdpdGhHYWluRnJvbShjb25z
dCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0
R2FpbikKK3ZvaWQgQXVkaW9CdXM6OnN1bVdpdGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291
cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4pCiB7CiAgICAgcHJv
Y2Vzc1dpdGhHYWluRnJvbShzb3VyY2VCdXMsIGxhc3RNaXhHYWluLCB0YXJnZXRHYWluLCB0cnVl
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCmluZGV4IDIyNTVi
ZWI1MmFhYzRlY2U1MjkxNWEyYWFhNTIwOWZjMmFmOGE1ODMuLjYzNzBjOGI1MjM0NjE0N2NhODcw
YzMxZTUzY2M3YWNkNDU4NzNiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvQnVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9CdXMuaApAQCAtMTAwLDExICsxMDAsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3du
UHRyPEF1ZGlvQnVzPiBjcmVhdGVCeU1peGluZ1RvTW9ubyhBdWRpb0J1cyogc291cmNlQnVzKTsK
IAogICAgIC8vIFNjYWxlcyBhbGwgc2FtcGxlcyBieSB0aGUgc2FtZSBhbW91bnQuCi0gICAgdm9p
ZCBzY2FsZShkb3VibGUgc2NhbGUpOworICAgIHZvaWQgc2NhbGUoZmxvYXQgc2NhbGUpOwogCiAg
ICAgLy8gTWFzdGVyIGdhaW4gZm9yIHRoaXMgYnVzIC0gdXNlZCB3aXRoIHN1bVdpdGhHYWluRnJv
bSgpIGJlbG93Ci0gICAgdm9pZCBzZXRHYWluKGRvdWJsZSBnYWluKSB7IG1fYnVzR2FpbiA9IGdh
aW47IH0KLSAgICBkb3VibGUgZ2FpbigpIHsgcmV0dXJuIG1fYnVzR2FpbjsgfQorICAgIHZvaWQg
c2V0R2FpbihmbG9hdCBnYWluKSB7IG1fYnVzR2FpbiA9IGdhaW47IH0KKyAgICBmbG9hdCBnYWlu
KCkgeyByZXR1cm4gbV9idXNHYWluOyB9CiAKICAgICB2b2lkIHJlc2V0KCkgeyBtX2lzRmlyc3RU
aW1lID0gdHJ1ZTsgfSAvLyBmb3IgZGUtemlwcGVyaW5nCiAKQEAgLTExOSw4ICsxMTksOCBAQCBw
dWJsaWM6CiAgICAgLy8gV2Ugc2NhbGUgYnkgdGFyZ2V0R2FpbiAoYW5kIG91ciBvd24gaW50ZXJu
YWwgZ2FpbiBtX2J1c0dhaW4pLCBwZXJmb3JtaW5nICJkZS16aXBwZXJpbmciIHRvIHNtb290aGx5
IGNoYW5nZSBmcm9tICpsYXN0TWl4R2FpbiB0byAodGFyZ2V0R2FpbiptX2J1c0dhaW4pLgogICAg
IC8vIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdXAgbGFzdE1peEdhaW4g
dG8gcG9pbnQgdG8gc3RvcmFnZSB3aGljaCBpcyB1bmlxdWUgZm9yIGV2ZXJ5ICJzdHJlYW0iIHdo
aWNoIHdpbGwgYmUgc3VtbWVkIHRvIHRoaXMgYnVzLgogICAgIC8vIFRoaXMgcmVwcmVzZW50cyB0
aGUgZGV6aXBwZXJpbmcgbWVtb3J5LgotICAgIHZvaWQgY29weVdpdGhHYWluRnJvbShjb25zdCBB
dWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2Fp
bik7Ci0gICAgdm9pZCBzdW1XaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywg
ZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdldEdhaW4pOworICAgIHZvaWQgY29weVdp
dGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4s
IGZsb2F0IHRhcmdldEdhaW4pOworICAgIHZvaWQgc3VtV2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlv
QnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2Fpbik7CiAK
ICAgICAvLyBDb3BpZXMgdGhlIHNvdXJjZUJ1cyBieSBzY2FsaW5nIHdpdGggc2FtcGxlLWFjY3Vy
YXRlIGdhaW4gdmFsdWVzLgogICAgIHZvaWQgY29weVdpdGhTYW1wbGVBY2N1cmF0ZUdhaW5WYWx1
ZXNGcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBnYWluVmFsdWVzLCB1bnNp
Z25lZCBudW1iZXJPZkdhaW5WYWx1ZXMpOwpAQCAtMTM2LDggKzEzNiw4IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBBdWRpb0J1cygpIHsgfTsKIAotICAgIHZvaWQgcHJvY2Vzc1dpdGhHYWlu
RnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3Vi
bGUgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cyk7Ci0gICAgdm9pZCBwcm9jZXNzV2l0aEdhaW5G
cm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhH
YWluLCBkb3VibGUgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cyk7CisgICAgdm9pZCBwcm9jZXNz
V2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2Fp
biwgZmxvYXQgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cyk7CisgICAgdm9pZCBwcm9jZXNzV2l0
aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFz
dE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4sIGJvb2wgc3VtVG9CdXMpOwogCiAgICAgc2l6ZV90
IG1fbGVuZ3RoOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgaW50IG1f
bGF5b3V0OwogCi0gICAgZG91YmxlIG1fYnVzR2FpbjsKKyAgICBmbG9hdCBtX2J1c0dhaW47CiAg
ICAgYm9vbCBtX2lzRmlyc3RUaW1lOwogICAgIGZsb2F0IG1fc2FtcGxlUmF0ZTsgLy8gMC4wIGlm
IHVua25vd24gb3IgTi9BCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9DaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQ2hhbm5lbC5jcHAKaW5kZXggYTk2MmRlYmQ1NzI2MGM0M2VjMjYwMjBhNmMyODc2Yzk3NDNh
NjRiOC4uMzlkYWZmOTY2ZmUxOTdmMmM1ZTE5Njg2YWVhMzAxM2EwODE0NDY0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuY3BwCkBAIC00MSwxMCAr
NDEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBWZWN0b3JNYXRo
OwogCi12b2lkIEF1ZGlvQ2hhbm5lbDo6c2NhbGUoZG91YmxlIHNjYWxlKQordm9pZCBBdWRpb0No
YW5uZWw6OnNjYWxlKGZsb2F0IHNjYWxlKQogewotICAgIGZsb2F0IHMgPSBzdGF0aWNfY2FzdDxm
bG9hdD4oc2NhbGUpOwotICAgIHZzbXVsKGRhdGEoKSwgMSwgJnMsIGRhdGEoKSwgMSwgbGVuZ3Ro
KCkpOworICAgIHZzbXVsKGRhdGEoKSwgMSwgJnNjYWxlLCBkYXRhKCksIDEsIGxlbmd0aCgpKTsK
IH0KIAogdm9pZCBBdWRpb0NoYW5uZWw6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291
cmNlQ2hhbm5lbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQ2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVs
LmgKaW5kZXggNzMyNWU5ZjM4YmI0M2ViYmZkYjBkNjlkZGE3NWRhNjQyMzlmZDdlNi4uODgwM2U3
NWNkMWUzZjdhZTIyYTUwODY5ZjYxZThkZDQ1ZGJiZDRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIC8vIFNjYWxlcyBhbGwgc2FtcGxlcyBieSB0aGUgc2FtZSBhbW91bnQuCi0g
ICAgdm9pZCBzY2FsZShkb3VibGUgc2NhbGUpOworICAgIHZvaWQgc2NhbGUoZmxvYXQgc2NhbGUp
OwogCiAgICAgLy8gQSBzaW1wbGUgbWVtY3B5KCkgZnJvbSB0aGUgc291cmNlIGNoYW5uZWwKICAg
ICB2b2lkIGNvcHlGcm9tKGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwCmluZGV4IGZmNDQwNmE3
MjQ3ZGMyNWRhYmFiMDY3NjA2Y2U2NGZlZGVhYWI3NmYuLjcxMDkyZGEwMjcyODJkNTgxM2Y0ODZl
ZTk4YmM2ZDA1ZGNhNDJkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1ZlY3Rvck1hdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Zl
Y3Rvck1hdGguY3BwCkBAIC00NSw2ICs0NSwxNSBAQCBuYW1lc3BhY2UgVmVjdG9yTWF0aCB7CiAv
LyBJbiAzMi1iaXQgbW9kZSAoX19wcGNfXyBvciBfX2kzODZfXykgPEFjY2VsZXJhdGUvQWNjZWxl
cmF0ZS5oPiBpbmNsdWRlcyA8dmVjTGliL3ZEU1BfdHJhbnNsYXRlLmg+IHdoaWNoIGRlZmluZXMg
bWFjcm9zIG9mIHRoZSBzYW1lIG5hbWUgYXMKIC8vIG91ciBuYW1lc3BhY2VkIGZ1bmN0aW9uIG5h
bWVzLCBzbyB3ZSBtdXN0IGhhbmRsZSB0aGlzIGNhc2UgZGlmZmVyZW50bHkuIE90aGVyIGFyY2hp
dGVjdHVyZXMgKDY0Yml0LCBBUk0sIGV0Yy4pIGRvIG5vdCBpbmNsdWRlIHRoaXMgaGVhZGVyIGZp
bGUuCiAKK3ZvaWQgdm11bChjb25zdCBmbG9hdCogc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUx
LCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCogZGVzdFAs
IGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQoreworI2lmIGRlZmluZWQo
X19wcGNfXykgfHwgZGVmaW5lZChfX2kzODZfXykKKyAgICA6OnZtdWwoc291cmNlMVAsIHNvdXJj
ZVN0cmlkZTEsIHNvdXJjZTJQLCBzb3VyY2VTdHJpZGUyLCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJh
bWVzVG9Qcm9jZXNzKTsKKyNlbHNlCisgICAgdkRTUF92bXVsKHNvdXJjZTFQLCBzb3VyY2VTdHJp
ZGUxLCBzb3VyY2UyUCwgc291cmNlU3RyaWRlMiwgZGVzdFAsIGRlc3RTdHJpZGUsIGZyYW1lc1Rv
UHJvY2Vzcyk7CisjZW5kaWYKK30KKwogdm9pZCB2c211bChjb25zdCBmbG9hdCogc291cmNlUCwg
aW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBk
ZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewogI2lmIGRlZmluZWQoX19wcGNf
XykgfHwgZGVmaW5lZChfX2kzODZfXykKQEAgLTYzLDYgKzcyLDE2IEBAIHZvaWQgdmFkZChjb25z
dCBmbG9hdCogc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNl
MlAsIGludCBzCiAjZW5kaWYKIH0KIAordm9pZCB2YXNtKGNvbnN0IGZsb2F0ICpzb3VyY2UxUCwg
aW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0ICpzb3VyY2UyUCwgaW50IHNvdXJjZVN0cmlk
ZTIsIGZsb2F0ICpzY2FsYXJNdWx0LCBmbG9hdCAqZGVzdFAsIGludCBkZXN0U3RyaWRlLCBpbnQg
ZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIHZEU1BfdmFzbShjb25zdF9jYXN0PGZsb2F0Kj4oc291
cmNlMVApLCBzb3VyY2VTdHJpZGUxLCBjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMlApLCBzb3Vy
Y2VTdHJpZGUyLCBzY2FsYXJNdWx0LCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNz
KTsKK30KKwordm9pZCB2c21hKGNvbnN0IGZsb2F0ICpzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlk
ZTEsIGZsb2F0ICpzY2FsYXJNdWx0LCBjb25zdCBmbG9hdCAqc291cmNlMlAsIGludCBzb3VyY2VT
dHJpZGUyLCBmbG9hdCAqZGVzdFAsIGludCBkZXN0U3RyaWRlLCBpbnQgZnJhbWVzVG9Qcm9jZXNz
KQoreworICAgIHZEU1BfdnNtYShjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMVApLCBzb3VyY2VT
dHJpZGUxLCBzY2FsYXJNdWx0LCBjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMlApLCBzb3VyY2VT
dHJpZGUyLCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKK30KKwogI2Vsc2UK
IAogdm9pZCB2c211bChjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgY29u
c3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKQpAQCAtMjI5LDYgKzI0OCw0MSBAQCB2b2lkIHZhZGQoY29uc3QgZmxvYXQq
IHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQg
cwogI2VuZGlmCiB9CiAKK3ZvaWQgdm11bChjb25zdCBmbG9hdCogc291cmNlMVAsIGludCBzb3Vy
Y2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9h
dCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQoreworICAg
IC8vIEZJWE1FOiBvcHRpbWl6ZSBmb3IgU1NFCisgICAgaW50IG4gPSBmcmFtZXNUb1Byb2Nlc3M7
CisgICAgd2hpbGUgKG4tLSkgeworICAgICAgICAqZGVzdFAgPSAqc291cmNlMVAgKiAqc291cmNl
MlA7CisgICAgICAgIHNvdXJjZTFQICs9IHNvdXJjZVN0cmlkZTE7CisgICAgICAgIHNvdXJjZTJQ
ICs9IHNvdXJjZVN0cmlkZTI7CisgICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7CisgICAgfQor
fQorCit2b2lkIHZhc20oY29uc3QgZmxvYXQgKnNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwg
Y29uc3QgZmxvYXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQgKnNjYWxhck11
bHQsIGZsb2F0ICpkZXN0UCwgaW50IGRlc3RTdHJpZGUsIGludCBmcmFtZXNUb1Byb2Nlc3MpCit7
CisgICAgLy8gRklYTUU6IG9wdGltaXplIGZvciBTU0UKKyAgICBpbnQgbiA9IGZyYW1lc1RvUHJv
Y2VzczsKKyAgICB3aGlsZSAobi0tKSB7CisgICAgICAgICpkZXN0UCA9ICgqc291cmNlMVAgKyAq
c291cmNlMlApICogKnNjYWxhck11bHQ7CisgICAgICAgIHNvdXJjZTFQICs9IHNvdXJjZVN0cmlk
ZTE7CisgICAgICAgIHNvdXJjZTJQICs9IHNvdXJjZVN0cmlkZTI7CisgICAgICAgIGRlc3RQICs9
IGRlc3RTdHJpZGU7CisgICAgfQorfQorCit2b2lkIHZzbWEoY29uc3QgZmxvYXQgKnNvdXJjZTFQ
LCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3Ry
aWRlMiwgZmxvYXQgKnNjYWxhck11bHQsIGZsb2F0ICpkZXN0UCwgaW50IGRlc3RTdHJpZGUsIGlu
dCBmcmFtZXNUb1Byb2Nlc3MpCit7CisgICAgLy8gRklYTUU6IG9wdGltaXplIGZvciBTU0UKKyAg
ICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsKKyAgICB3aGlsZSAobi0tKSB7CisgICAgICAgICpk
ZXN0UCA9ICgqc291cmNlMVAgKiAqc2NhbGFyTXVsdCkgKyAqc291cmNlMlA7CisgICAgICAgIHNv
dXJjZTFQICs9IHNvdXJjZVN0cmlkZTE7CisgICAgICAgIHNvdXJjZTJQICs9IHNvdXJjZVN0cmlk
ZTI7CisgICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7CisgICAgfQorfQogI2VuZGlmIC8vIE9T
KERBUldJTikKIAogfSAvLyBuYW1lc3BhY2UgVmVjdG9yTWF0aApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oCmluZGV4IDAzNjBiZGJhNDFhYjI4ZWIyNmZmNjc1ODA0
ZDc0ZGQyNjU4OThjNmIuLjIzZTllMzc4N2JiOTNlNDdkNWU0MTg4NjkzNDQwMGRjMDM4M2RmMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmgKQEAgLTMzLDYg
KzMzLDkgQEAgbmFtZXNwYWNlIFZlY3Rvck1hdGggewogCiB2b2lkIHZzbXVsKGNvbnN0IGZsb2F0
KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGUsIGZsb2F0KiBk
ZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogdm9pZCB2YWRk
KGNvbnN0IGZsb2F0KiBzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0KiBz
b3VyY2UyUCwgaW50IHNvdXJjZVN0cmlkZTIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUs
IHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwordm9pZCB2bXVsKGNvbnN0IGZsb2F0KiBzb3VyY2Ux
UCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0KiBzb3VyY2UyUCwgaW50IHNvdXJjZVN0
cmlkZTIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpOwordm9pZCB2YXNtKGNvbnN0IGZsb2F0ICpzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEs
IGNvbnN0IGZsb2F0ICpzb3VyY2UyUCwgaW50IHNvdXJjZVN0cmlkZTIsIGZsb2F0ICpzY2FsYXJN
dWx0LCBmbG9hdCAqZGVzdFAsIGludCBkZXN0U3RyaWRlLCBpbnQgZnJhbWVzVG9Qcm9jZXNzKTsK
K3ZvaWQgdnNtYShjb25zdCBmbG9hdCAqc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBmbG9h
dCAqc2NhbGFyTXVsdCwgY29uc3QgZmxvYXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwg
ZmxvYXQgKmRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgaW50IGZyYW1lc1RvUHJvY2Vzcyk7CiAKIH0g
Ly8gbmFtZXNwYWNlIFZlY3Rvck1hdGgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKaW5kZXggMGYwZDdiMzE5MDQxY2I3NzJkODUwNTdl
MTcwYTIzNmRmOWE2NDYzMi4uOWNkNDZkYmU5ZmQzYzAzY2MyNjlhZjRjNzI3MTZiNTAwMmE4ZjQ3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5v
ZGUuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnBy
b2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgcmVuZGVyRnJvbUJ1ZmZlcihv
dXRwdXRCdXMsIHF1YW50dW1GcmFtZU9mZnNldCwgYnVmZmVyRnJhbWVzVG9Qcm9jZXNzKTsKIAog
ICAgICAgICAvLyBBcHBseSB0aGUgZ2FpbiAoaW4tcGxhY2UpIHRvIHRoZSBvdXRwdXQgYnVzLgot
ICAgICAgICBkb3VibGUgdG90YWxHYWluID0gZ2FpbigpLT52YWx1ZSgpICogbV9idWZmZXItPmdh
aW4oKTsKKyAgICAgICAgZmxvYXQgdG90YWxHYWluID0gZ2FpbigpLT52YWx1ZSgpICogbV9idWZm
ZXItPmdhaW4oKTsKICAgICAgICAgb3V0cHV0QnVzLT5jb3B5V2l0aEdhaW5Gcm9tKCpvdXRwdXRC
dXMsICZtX2xhc3RHYWluLCB0b3RhbEdhaW4pOwogCiAgICAgICAgIC8vIElmIHRoZSBlbmQgdGlt
ZSBpcyBzb21ld2hlcmUgaW4gdGhlIG1pZGRsZSBvZiB0aGlzIHRpbWUgcXVhbnR1bSwgdGhlbiBz
aW1wbHkgemVybyBvdXQgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9B
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5oCmluZGV4IGZkNzMwODFkNmIzZjgxYjRlMWZiN2IyYjNjZDM4YmQ4MDBl
NzgzYjAuLmZlMWJjNmJkNWFkMWNkODE5ODFiZjJmMTFiYmExNmYzNWNmMzMwZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCkBAIC0xMjcs
NyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgdG90YWxQaXRjaFJhdGUoKTsKIAogICAg
IC8vIG1fbGFzdEdhaW4gcHJvdmlkZXMgY29udGludWl0eSB3aGVuIHdlIGR5bmFtaWNhbGx5IGFk
anVzdCB0aGUgZ2Fpbi4KLSAgICBkb3VibGUgbV9sYXN0R2FpbjsKKyAgICBmbG9hdCBtX2xhc3RH
YWluOwogICAgIAogICAgIC8vIFdlIG9wdGlvbmFsbHkga2VlcCB0cmFjayBvZiBhIHBhbm5lciBu
b2RlIHdoaWNoIGhhcyBhIGRvcHBsZXIgc2hpZnQgdGhhdCBpcyBpbmNvcnBvcmF0ZWQgaW50byB0
aGUgcGl0Y2ggcmF0ZS4KICAgICBSZWZQdHI8QXVkaW9QYW5uZXJOb2RlPiBtX3Bhbm5lck5vZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmggYi9T
b3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmgKaW5kZXggZTYzNDIxMjhjNzc5
OTRiYmQ0OGQyMGQ2ZjE4N2IyOGQ1NzkxOTRlMi4uNDE1YjA2YjhkY2M1NDc0ODRkYzY3MDRlYzlh
ZDJkMzZiMTFjOTA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9H
YWluTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvR2Fpbk5vZGUuaApA
QCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEF1ZGlvR2Fpbk5vZGUoQXVk
aW9Db250ZXh0KiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKLSAgICBkb3VibGUgbV9sYXN0R2Fpbjsg
Ly8gZm9yIGRlLXppcHBlcmluZworICAgIGZsb2F0IG1fbGFzdEdhaW47IC8vIGZvciBkZS16aXBw
ZXJpbmcKICAgICBSZWZQdHI8QXVkaW9HYWluPiBtX2dhaW47CiAKICAgICBBdWRpb0Zsb2F0QXJy
YXkgbV9zYW1wbGVBY2N1cmF0ZUdhaW5WYWx1ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvUGFubmVyTm9kZS5oCmluZGV4IDZlY2ViZWFhZTMxY2E3ZGFjMzg1NzlmMWQ1YTAzNWRlMzcy
MmNmMTEuLjk4ZDI3NzQzZTQxMTc5NDNiMjY4NzhlNjdlY2Q3MWUzOTY0YmRjNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5oCkBAIC0xMzgsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8QXVkaW9HYWluPiBtX2NvbmVHYWluOwogICAgIERpc3RhbmNl
RWZmZWN0IG1fZGlzdGFuY2VFZmZlY3Q7CiAgICAgQ29uZUVmZmVjdCBtX2NvbmVFZmZlY3Q7Ci0g
ICAgZG91YmxlIG1fbGFzdEdhaW47CisgICAgZmxvYXQgbV9sYXN0R2FpbjsKIAogICAgIHVuc2ln
bmVkIG1fY29ubmVjdGlvbkNvdW50OwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118955</attachid>
            <date>2011-12-12 22:29:56 -0800</date>
            <delta_ts>2012-01-13 10:53:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74345-20111212222954.patch</filename>
            <type>text/plain</type>
            <size>18837</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E4NDNhMzY5ZTg5Yjk2
NjlhNWI5MzUyMzE2ZTg4NmVmYTRlZjQxYi4uMzVjYTZlMTA3ZDYzOGZiNmViYzU1Y2JhN2I4NGJh
YTQyOTExNzVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDExLTEyLTEyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFdlYkF1ZGlvOiBPcHRpbWl6
ZSBwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlby4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBvcHRpbWl6YXRpb24gb2YgZXhp
c3RpbmcgY29kZSwgc28gY292ZXJlZCBieSBleGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAg
IEFkZGVkIHRocmVlIG5ldyB3cmFwcGVyIG1ldGhvZHMgZm9yIHZlY3RvciBtYXRoIG9wZXJhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWZWN0b3JNYXRoOjp2bXVsKToKKyAgICAgICAgKFdlYkNvcmU6OlZlY3Rvck1hdGg6
OnZhc20pOgorICAgICAgICAoV2ViQ29yZTo6VmVjdG9yTWF0aDo6dnNtYSk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oOgorCisgICAgICAgIE9wdGltaXplIHByb2Nlc3NX
aXRoR2FpbkZyb21Nb25vU3RlcmVvIHRvIHVzZSB2ZWN0b3IgbWF0aCBvcGVyYXRpb25zIHdoZW4g
ZGV6aXBwZXJpbmcKKyAgICAgICAgb2YgZ2FpbiBwcm9jZXNzaW5nIGlzIG5vdCBuZWVkZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvQnVzOjpjb3B5V2l0aFNhbXBsZUFjY3VyYXRlR2FpblZhbHVlc0Zyb20pOgorCisg
ICAgICAgIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIG5vdyB0YWtlIG9yIG9wZXJhdGUgb24gZmxv
YXRzIGluc3RlYWQgb2YgZG91YmxlczoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpzY2Fs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6cHJvY2Vzc1dpdGhHYWluRnJvbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y29weVdpdGhHYWluRnJvbSk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0J1czo6c3VtV2l0aEdhaW5Gcm9tKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9BdWRpb0J1cy5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnNldEdhaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmdhaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvQ2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NoYW5uZWw6OnNj
YWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuaDoKKyAgICAgICAg
KiB3ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRp
b0J1ZmZlclNvdXJjZU5vZGUuaDoKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmg6
CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmg6CisKKzIwMTEtMTItMTIgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKICAgICAgICAgV2ViQXVkaW86IEVuYWJs
ZSBVU0VfQ09OQ0FURU5BVEVEX0lNUFVMU0VfUkVTUE9OU0VTIG9uIE1hYyBwb3J0LgogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzMjgKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCmluZGV4IGZkNDQyMWRkYzlhNzhi
YjAyM2NjYWZhZjg1YTE3NTZmYTcxYzk2ZmIuLjFhYzMxNmRmNjIzNzU3ZWY3MTQyMzFlYWQwMTdj
MGYyZGYzMTA5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQnVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5j
cHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIEF1ZGlvQnVzOjpub3JtYWxpemUoKQogICAgICAg
ICBzY2FsZSgxLjBmIC8gbWF4KTsKIH0KIAotdm9pZCBBdWRpb0J1czo6c2NhbGUoZG91YmxlIHNj
YWxlKQordm9pZCBBdWRpb0J1czo6c2NhbGUoZmxvYXQgc2NhbGUpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHMoKTsgKytpKQogICAgICAgICBjaGFubmVs
KGkpLT5zY2FsZShzY2FsZSk7CkBAIC0yMjksMTYgKzIyOSwxMyBAQCB2b2lkIEF1ZGlvQnVzOjpz
dW1Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMpCiAgICAgfQogfQogCi12b2lkIEF1ZGlv
QnVzOjpwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1cyAmc291cmNl
QnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1
cykKK3ZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKGNvbnN0IEF1
ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2Fpbiwg
Ym9vbCBzdW1Ub0J1cykKIHsKICAgICAvLyBXZSBkb24ndCB3YW50IHRvIHN1ZGRlbmx5IGNoYW5n
ZSB0aGUgZ2FpbiBmcm9tIG1peGluZyBvbmUgdGltZSBzbGljZSB0byB0aGUgbmV4dCwKICAgICAv
LyBzbyB3ZSAiZGUtemlwcGVyIiBieSBzbG93bHkgY2hhbmdpbmcgdGhlIGdhaW4gZWFjaCBzYW1w
bGUtZnJhbWUgdW50aWwgd2UndmUgYWNoaWV2ZWQgdGhlIHRhcmdldCBnYWluLgogCiAgICAgLy8g
RklYTUU6IG9wdGltaXplIHRoaXMgbWV0aG9kIChTU0UsIGV0Yy4pCi0gICAgLy8gRklYTUU6IE5l
ZWQgZmFzdCBwYXRoIGhlcmUgd2hlbiBnYWluIGhhcyBjb252ZXJnZWQgb24gdGFyZ2V0R2Fpbi4g
SW4gdGhpcyBjYXNlLCBkZS16aXBwZXJpbmcgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KICAgICAvLyBG
SVhNRTogTmVlZCBmYXN0IHBhdGggd2hlbiB0aGlzPT1zb3VyY2VCdXMgJiYgbGFzdE1peEdhaW49
PXRhcmdldEdhaW49PTEuMCAmJiBzdW1Ub0J1cz09ZmFsc2UgKHRoaXMgaXMgYSBOT1ApCi0KLSAg
ICAvLyBGSVhNRTogdGFyZ2V0R2FpbiBhbmQgbGFzdE1peEdhaW4gc2hvdWxkIGJlIGNoYW5nZWQg
dG8gZmxvYXRzIGluc3RlYWQgb2YgZG91Ymxlcy4KICAgICAKICAgICAvLyBUYWtlIG1hc3RlciBi
dXMgZ2FpbiBpbnRvIGFjY291bnQgYXMgd2VsbCBhcyB0aGUgdGFyZ2V0R2Fpbi4KICAgICBmbG9h
dCB0b3RhbERlc2lyZWRHYWluID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fYnVzR2FpbiAqIHRhcmdl
dEdhaW4pOwpAQCAtMjQ2LDYgKzI0Myw3IEBAIHZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2Fp
bkZyb21Nb25vU3RlcmVvKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSoKICAgICAv
LyBGaXJzdCB0aW1lLCBzbmFwIGRpcmVjdGx5IHRvIHRvdGFsRGVzaXJlZEdhaW4uCiAgICAgZmxv
YXQgZ2FpbiA9IHN0YXRpY19jYXN0PGZsb2F0PihtX2lzRmlyc3RUaW1lID8gdG90YWxEZXNpcmVk
R2FpbiA6ICpsYXN0TWl4R2Fpbik7CiAgICAgbV9pc0ZpcnN0VGltZSA9IGZhbHNlOworICAgIGJv
b2wgbmVlZHNEZXppcHBlcmluZyA9ICpsYXN0TWl4R2FpbiAhPSBnYWluOwogCiAgICAgaW50IG51
bWJlck9mU291cmNlQ2hhbm5lbHMgPSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygpOwogICAg
IGludCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzKCk7CkBA
IC0yNjAsNyArMjU4LDM1IEBAIHZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25v
U3RlcmVvKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSoKICAgICBjb25zdCBmbG9h
dCBEZXppcHBlclJhdGUgPSAwLjAwNWY7CiAgICAgaW50IGZyYW1lc1RvUHJvY2VzcyA9IGxlbmd0
aCgpOwogCi0gICAgaWYgKHN1bVRvQnVzKSB7CisgICAgaWYgKCFuZWVkc0RlemlwcGVyaW5nKSB7
CisgICAgICAgIC8vIE9wdGltaXplIGZvciB0aGUgbm9uLWRlemlwcGVyaW5nIGNhc2U6CisgICAg
ICAgIGlmIChzdW1Ub0J1cykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVIgJiYgZGVzdGluYXRp
b25SKSB7CisgICAgICAgICAgICAgICAgLy8gU3RlcmVvCisgICAgICAgICAgICAgICAgdnNtYShz
b3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAxLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1l
c1RvUHJvY2Vzcyk7CisgICAgICAgICAgICAgICAgdnNtYShzb3VyY2VSLCAxLCAmZ2FpbiwgZGVz
dGluYXRpb25MLCAxLCBkZXN0aW5hdGlvblIsIDEsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKGRlc3RpbmF0aW9uUikgeworICAgICAgICAgICAgICAgIC8vIE1vbm8g
LT4gc3RlcmVvIChtaXggZXF1YWxseSBpbnRvIEwgYW5kIFIpCisgICAgICAgICAgICAgICAgdnNt
YShzb3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAxLCBkZXN0aW5hdGlvbkwsIDEsIGZy
YW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICAgICAgbWVtY3B5KGRlc3RpbmF0aW9uUiwgZGVz
dGluYXRpb25MLCBzaXplb2YoZmxvYXQpICogZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIC8vIE1vbm8KKyAgICAgICAgICAgICAgICB2c21hKHNv
dXJjZUwsIDEsICZnYWluLCBkZXN0aW5hdGlvbkwsIDEsIGRlc3RpbmF0aW9uTCwgMSwgZnJhbWVz
VG9Qcm9jZXNzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFByb2Nlc3MgZGly
ZWN0bHkgKHdpdGhvdXQgc3VtbWluZykgdG8gb3VyIGJ1cworICAgICAgICAgICAgaWYgKHNvdXJj
ZVIgJiYgZGVzdGluYXRpb25SKSB7CisgICAgICAgICAgICAgICAgLy8gU3RlcmVvCisgICAgICAg
ICAgICAgICAgdnNtdWwoc291cmNlTCwgMSwgJmdhaW4sIGRlc3RpbmF0aW9uTCwgMSwgZnJhbWVz
VG9Qcm9jZXNzKTsKKyAgICAgICAgICAgICAgICB2c211bChzb3VyY2VSLCAxLCAmZ2FpbiwgZGVz
dGluYXRpb25SLCAxLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgfSBlbHNlIGlmIChk
ZXN0aW5hdGlvblIpIHsKKyAgICAgICAgICAgICAgICAvLyBNb25vIC0+IHN0ZXJlbyAobWl4IGVx
dWFsbHkgaW50byBMIGFuZCBSKQorICAgICAgICAgICAgICAgIHZzbXVsKHNvdXJjZUwsIDEsICZn
YWluLCBkZXN0aW5hdGlvbkwsIDEsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICAgICAg
bWVtY3B5KGRlc3RpbmF0aW9uUiwgZGVzdGluYXRpb25MLCBzaXplb2YoZmxvYXQpICogZnJhbWVz
VG9Qcm9jZXNzKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIC8vIE1vbm8K
KyAgICAgICAgICAgICAgICB2c211bChzb3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAx
LCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChzdW1Ub0J1cykg
ewogICAgICAgICAvLyBTdW0gdG8gb3VyIGJ1cwogICAgICAgICBpZiAoc291cmNlUiAmJiBkZXN0
aW5hdGlvblIpIHsKICAgICAgICAgICAgIC8vIFN0ZXJlbwpAQCAtMzM5LDExICszNjUsMTUgQEAg
dm9pZCBBdWRpb0J1czo6cHJvY2Vzc1dpdGhHYWluRnJvbU1vbm9TdGVyZW8oY29uc3QgQXVkaW9C
dXMgJnNvdXJjZUJ1cywgZG91YmxlKgogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gU2F2ZSB0
aGUgdGFyZ2V0IGdhaW4gYXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciBuZXh0IHRpbWUgYXJvdW5k
LgotICAgICpsYXN0TWl4R2FpbiA9IHN0YXRpY19jYXN0PGRvdWJsZT4oZ2Fpbik7CisgICAgLy8g
U2F2ZSB0aGUgdGFyZ2V0IGdhaW4gYXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciBuZXh0IHRpbWUg
YXJvdW5kLiBTaW5jZSB0aGUgZGV6aXBwZXIgZnVuY3Rpb24gaXMgYXN5bXB0b3RpYyB0bworICAg
IC8vIHRhcmdldEdhaW4sIGVuZCB0aGUgZGV6aXBwZXIgYnkgc2V0dGluZyBsYXN0TWl4R2FpbiB0
byB0YXJnZXRHYWluIG9uY2UgdGhlIGRlbHRhIGlzIHN1ZmZpY2llbnRseSBzbWFsbC4KKyAgICBp
ZiAoZmFicyhnYWluIC0gdGFyZ2V0R2FpbikgPD0gRGV6aXBwZXJSYXRlKQorICAgICAgICBnYWlu
ID0gdGFyZ2V0R2FpbjsKKworICAgICpsYXN0TWl4R2FpbiA9IGdhaW47CiB9CiAKLXZvaWQgQXVk
aW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91
YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdldEdhaW4sIGJvb2wgc3VtVG9CdXMpCit2b2lk
IEF1ZGlvQnVzOjpwcm9jZXNzV2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMs
IGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cykKIHsK
ICAgICAvLyBNYWtlIHN1cmUgd2UncmUgc3VtbWluZyBmcm9tIHNhbWUgdHlwZSBvZiBidXMuCiAg
ICAgLy8gV2UgKmFyZSogYWJsZSB0byBzdW0gZnJvbSBtb25vIC0+IHN0ZXJlbwpAQCAtMzg3LDE3
ICs0MTcsMTYgQEAgdm9pZCBBdWRpb0J1czo6Y29weVdpdGhTYW1wbGVBY2N1cmF0ZUdhaW5WYWx1
ZXNGcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGYKICAgICAgICAgaWYgKHNvdXJjZUJ1
cy5udW1iZXJPZkNoYW5uZWxzKCkgPT0gbnVtYmVyT2ZDaGFubmVscygpKQogICAgICAgICAgICAg
c291cmNlID0gc291cmNlQnVzLmNoYW5uZWwoY2hhbm5lbEluZGV4KS0+ZGF0YSgpOwogICAgICAg
ICBmbG9hdCogZGVzdGluYXRpb24gPSBjaGFubmVsKGNoYW5uZWxJbmRleCktPmRhdGEoKTsKLSAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mR2FpblZhbHVlczsgKytpKQot
ICAgICAgICAgICAgZGVzdGluYXRpb25baV0gPSBzb3VyY2VbaV0gKiBnYWluVmFsdWVzW2ldOwor
ICAgICAgICB2bXVsKHNvdXJjZSwgMSwgZ2FpblZhbHVlcywgMSwgZGVzdGluYXRpb24sIDEsIG51
bWJlck9mR2FpblZhbHVlcyk7CiAgICAgfQogfQogCi12b2lkIEF1ZGlvQnVzOjpjb3B5V2l0aEdh
aW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSogbGFzdE1peEdhaW4sIGRv
dWJsZSB0YXJnZXRHYWluKQordm9pZCBBdWRpb0J1czo6Y29weVdpdGhHYWluRnJvbShjb25zdCBB
dWRpb0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4p
CiB7CiAgICAgcHJvY2Vzc1dpdGhHYWluRnJvbShzb3VyY2VCdXMsIGxhc3RNaXhHYWluLCB0YXJn
ZXRHYWluLCBmYWxzZSk7CiB9CiAKLXZvaWQgQXVkaW9CdXM6OnN1bVdpdGhHYWluRnJvbShjb25z
dCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0
R2FpbikKK3ZvaWQgQXVkaW9CdXM6OnN1bVdpdGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291
cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4pCiB7CiAgICAgcHJv
Y2Vzc1dpdGhHYWluRnJvbShzb3VyY2VCdXMsIGxhc3RNaXhHYWluLCB0YXJnZXRHYWluLCB0cnVl
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCmluZGV4IDIyNTVi
ZWI1MmFhYzRlY2U1MjkxNWEyYWFhNTIwOWZjMmFmOGE1ODMuLjYzNzBjOGI1MjM0NjE0N2NhODcw
YzMxZTUzY2M3YWNkNDU4NzNiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvQnVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9CdXMuaApAQCAtMTAwLDExICsxMDAsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3du
UHRyPEF1ZGlvQnVzPiBjcmVhdGVCeU1peGluZ1RvTW9ubyhBdWRpb0J1cyogc291cmNlQnVzKTsK
IAogICAgIC8vIFNjYWxlcyBhbGwgc2FtcGxlcyBieSB0aGUgc2FtZSBhbW91bnQuCi0gICAgdm9p
ZCBzY2FsZShkb3VibGUgc2NhbGUpOworICAgIHZvaWQgc2NhbGUoZmxvYXQgc2NhbGUpOwogCiAg
ICAgLy8gTWFzdGVyIGdhaW4gZm9yIHRoaXMgYnVzIC0gdXNlZCB3aXRoIHN1bVdpdGhHYWluRnJv
bSgpIGJlbG93Ci0gICAgdm9pZCBzZXRHYWluKGRvdWJsZSBnYWluKSB7IG1fYnVzR2FpbiA9IGdh
aW47IH0KLSAgICBkb3VibGUgZ2FpbigpIHsgcmV0dXJuIG1fYnVzR2FpbjsgfQorICAgIHZvaWQg
c2V0R2FpbihmbG9hdCBnYWluKSB7IG1fYnVzR2FpbiA9IGdhaW47IH0KKyAgICBmbG9hdCBnYWlu
KCkgeyByZXR1cm4gbV9idXNHYWluOyB9CiAKICAgICB2b2lkIHJlc2V0KCkgeyBtX2lzRmlyc3RU
aW1lID0gdHJ1ZTsgfSAvLyBmb3IgZGUtemlwcGVyaW5nCiAKQEAgLTExOSw4ICsxMTksOCBAQCBw
dWJsaWM6CiAgICAgLy8gV2Ugc2NhbGUgYnkgdGFyZ2V0R2FpbiAoYW5kIG91ciBvd24gaW50ZXJu
YWwgZ2FpbiBtX2J1c0dhaW4pLCBwZXJmb3JtaW5nICJkZS16aXBwZXJpbmciIHRvIHNtb290aGx5
IGNoYW5nZSBmcm9tICpsYXN0TWl4R2FpbiB0byAodGFyZ2V0R2FpbiptX2J1c0dhaW4pLgogICAg
IC8vIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdXAgbGFzdE1peEdhaW4g
dG8gcG9pbnQgdG8gc3RvcmFnZSB3aGljaCBpcyB1bmlxdWUgZm9yIGV2ZXJ5ICJzdHJlYW0iIHdo
aWNoIHdpbGwgYmUgc3VtbWVkIHRvIHRoaXMgYnVzLgogICAgIC8vIFRoaXMgcmVwcmVzZW50cyB0
aGUgZGV6aXBwZXJpbmcgbWVtb3J5LgotICAgIHZvaWQgY29weVdpdGhHYWluRnJvbShjb25zdCBB
dWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2Fp
bik7Ci0gICAgdm9pZCBzdW1XaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywg
ZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdldEdhaW4pOworICAgIHZvaWQgY29weVdp
dGhHYWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFzdE1peEdhaW4s
IGZsb2F0IHRhcmdldEdhaW4pOworICAgIHZvaWQgc3VtV2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlv
QnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2Fpbik7CiAK
ICAgICAvLyBDb3BpZXMgdGhlIHNvdXJjZUJ1cyBieSBzY2FsaW5nIHdpdGggc2FtcGxlLWFjY3Vy
YXRlIGdhaW4gdmFsdWVzLgogICAgIHZvaWQgY29weVdpdGhTYW1wbGVBY2N1cmF0ZUdhaW5WYWx1
ZXNGcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBnYWluVmFsdWVzLCB1bnNp
Z25lZCBudW1iZXJPZkdhaW5WYWx1ZXMpOwpAQCAtMTM2LDggKzEzNiw4IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBBdWRpb0J1cygpIHsgfTsKIAotICAgIHZvaWQgcHJvY2Vzc1dpdGhHYWlu
RnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3Vi
bGUgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cyk7Ci0gICAgdm9pZCBwcm9jZXNzV2l0aEdhaW5G
cm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhH
YWluLCBkb3VibGUgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cyk7CisgICAgdm9pZCBwcm9jZXNz
V2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2Fp
biwgZmxvYXQgdGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cyk7CisgICAgdm9pZCBwcm9jZXNzV2l0
aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBmbG9hdCogbGFz
dE1peEdhaW4sIGZsb2F0IHRhcmdldEdhaW4sIGJvb2wgc3VtVG9CdXMpOwogCiAgICAgc2l6ZV90
IG1fbGVuZ3RoOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgaW50IG1f
bGF5b3V0OwogCi0gICAgZG91YmxlIG1fYnVzR2FpbjsKKyAgICBmbG9hdCBtX2J1c0dhaW47CiAg
ICAgYm9vbCBtX2lzRmlyc3RUaW1lOwogICAgIGZsb2F0IG1fc2FtcGxlUmF0ZTsgLy8gMC4wIGlm
IHVua25vd24gb3IgTi9BCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9DaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQ2hhbm5lbC5jcHAKaW5kZXggYTk2MmRlYmQ1NzI2MGM0M2VjMjYwMjBhNmMyODc2Yzk3NDNh
NjRiOC4uMzlkYWZmOTY2ZmUxOTdmMmM1ZTE5Njg2YWVhMzAxM2EwODE0NDY0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuY3BwCkBAIC00MSwxMCAr
NDEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBWZWN0b3JNYXRo
OwogCi12b2lkIEF1ZGlvQ2hhbm5lbDo6c2NhbGUoZG91YmxlIHNjYWxlKQordm9pZCBBdWRpb0No
YW5uZWw6OnNjYWxlKGZsb2F0IHNjYWxlKQogewotICAgIGZsb2F0IHMgPSBzdGF0aWNfY2FzdDxm
bG9hdD4oc2NhbGUpOwotICAgIHZzbXVsKGRhdGEoKSwgMSwgJnMsIGRhdGEoKSwgMSwgbGVuZ3Ro
KCkpOworICAgIHZzbXVsKGRhdGEoKSwgMSwgJnNjYWxlLCBkYXRhKCksIDEsIGxlbmd0aCgpKTsK
IH0KIAogdm9pZCBBdWRpb0NoYW5uZWw6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291
cmNlQ2hhbm5lbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQ2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVs
LmgKaW5kZXggNzMyNWU5ZjM4YmI0M2ViYmZkYjBkNjlkZGE3NWRhNjQyMzlmZDdlNi4uODgwM2U3
NWNkMWUzZjdhZTIyYTUwODY5ZjYxZThkZDQ1ZGJiZDRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIC8vIFNjYWxlcyBhbGwgc2FtcGxlcyBieSB0aGUgc2FtZSBhbW91bnQuCi0g
ICAgdm9pZCBzY2FsZShkb3VibGUgc2NhbGUpOworICAgIHZvaWQgc2NhbGUoZmxvYXQgc2NhbGUp
OwogCiAgICAgLy8gQSBzaW1wbGUgbWVtY3B5KCkgZnJvbSB0aGUgc291cmNlIGNoYW5uZWwKICAg
ICB2b2lkIGNvcHlGcm9tKGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguY3BwCmluZGV4IGZmNDQwNmE3
MjQ3ZGMyNWRhYmFiMDY3NjA2Y2U2NGZlZGVhYWI3NmYuLjg3MzEyYjY2YzViNzU4NWNiODQ1NzAz
OGVjMjkwNWYwYTU2NWE1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1ZlY3Rvck1hdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Zl
Y3Rvck1hdGguY3BwCkBAIC00NSw2ICs0NSwxNSBAQCBuYW1lc3BhY2UgVmVjdG9yTWF0aCB7CiAv
LyBJbiAzMi1iaXQgbW9kZSAoX19wcGNfXyBvciBfX2kzODZfXykgPEFjY2VsZXJhdGUvQWNjZWxl
cmF0ZS5oPiBpbmNsdWRlcyA8dmVjTGliL3ZEU1BfdHJhbnNsYXRlLmg+IHdoaWNoIGRlZmluZXMg
bWFjcm9zIG9mIHRoZSBzYW1lIG5hbWUgYXMKIC8vIG91ciBuYW1lc3BhY2VkIGZ1bmN0aW9uIG5h
bWVzLCBzbyB3ZSBtdXN0IGhhbmRsZSB0aGlzIGNhc2UgZGlmZmVyZW50bHkuIE90aGVyIGFyY2hp
dGVjdHVyZXMgKDY0Yml0LCBBUk0sIGV0Yy4pIGRvIG5vdCBpbmNsdWRlIHRoaXMgaGVhZGVyIGZp
bGUuCiAKK3ZvaWQgdm11bChjb25zdCBmbG9hdCogc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUx
LCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9hdCogZGVzdFAs
IGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQoreworI2lmIGRlZmluZWQo
X19wcGNfXykgfHwgZGVmaW5lZChfX2kzODZfXykKKyAgICA6OnZtdWwoc291cmNlMVAsIHNvdXJj
ZVN0cmlkZTEsIHNvdXJjZTJQLCBzb3VyY2VTdHJpZGUyLCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJh
bWVzVG9Qcm9jZXNzKTsKKyNlbHNlCisgICAgdkRTUF92bXVsKHNvdXJjZTFQLCBzb3VyY2VTdHJp
ZGUxLCBzb3VyY2UyUCwgc291cmNlU3RyaWRlMiwgZGVzdFAsIGRlc3RTdHJpZGUsIGZyYW1lc1Rv
UHJvY2Vzcyk7CisjZW5kaWYKK30KKwogdm9pZCB2c211bChjb25zdCBmbG9hdCogc291cmNlUCwg
aW50IHNvdXJjZVN0cmlkZSwgY29uc3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBk
ZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewogI2lmIGRlZmluZWQoX19wcGNf
XykgfHwgZGVmaW5lZChfX2kzODZfXykKQEAgLTYzLDYgKzcyLDE2IEBAIHZvaWQgdmFkZChjb25z
dCBmbG9hdCogc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNl
MlAsIGludCBzCiAjZW5kaWYKIH0KIAordm9pZCB2YXNtKGNvbnN0IGZsb2F0ICpzb3VyY2UxUCwg
aW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0ICpzb3VyY2UyUCwgaW50IHNvdXJjZVN0cmlk
ZTIsIGZsb2F0ICpzY2FsYXJNdWx0LCBmbG9hdCAqZGVzdFAsIGludCBkZXN0U3RyaWRlLCBpbnQg
ZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIHZEU1BfdmFzbShjb25zdF9jYXN0PGZsb2F0Kj4oc291
cmNlMVApLCBzb3VyY2VTdHJpZGUxLCBjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMlApLCBzb3Vy
Y2VTdHJpZGUyLCBzY2FsYXJNdWx0LCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNz
KTsKK30KKwordm9pZCB2c21hKGNvbnN0IGZsb2F0ICpzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlk
ZTEsIGZsb2F0ICpzY2FsYXJNdWx0LCBjb25zdCBmbG9hdCAqc291cmNlMlAsIGludCBzb3VyY2VT
dHJpZGUyLCBmbG9hdCAqZGVzdFAsIGludCBkZXN0U3RyaWRlLCBpbnQgZnJhbWVzVG9Qcm9jZXNz
KQoreworICAgIHZEU1BfdnNtYShjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMVApLCBzb3VyY2VT
dHJpZGUxLCBzY2FsYXJNdWx0LCBjb25zdF9jYXN0PGZsb2F0Kj4oc291cmNlMlApLCBzb3VyY2VT
dHJpZGUyLCBkZXN0UCwgZGVzdFN0cmlkZSwgZnJhbWVzVG9Qcm9jZXNzKTsKK30KKwogI2Vsc2UK
IAogdm9pZCB2c211bChjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNvdXJjZVN0cmlkZSwgY29u
c3QgZmxvYXQqIHNjYWxlLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKQpAQCAtMjI5LDYgKzI0OCw0MSBAQCB2b2lkIHZhZGQoY29uc3QgZmxvYXQq
IHNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwgY29uc3QgZmxvYXQqIHNvdXJjZTJQLCBpbnQg
cwogI2VuZGlmCiB9CiAKK3ZvaWQgdm11bChjb25zdCBmbG9hdCogc291cmNlMVAsIGludCBzb3Vy
Y2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAsIGludCBzb3VyY2VTdHJpZGUyLCBmbG9h
dCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQoreworICAg
IC8vIEZJWE1FOiBvcHRpbWl6ZSBmb3IgU1NFCisgICAgaW50IG4gPSBmcmFtZXNUb1Byb2Nlc3M7
CisgICAgd2hpbGUgKG4tLSkgeworICAgICAgICAqZGVzdFAgPSAqc291cmNlMVAgKiAqc291cmNl
MlA7CisgICAgICAgIHNvdXJjZTFQICs9IHNvdXJjZVN0cmlkZTE7CisgICAgICAgIHNvdXJjZTJQ
ICs9IHNvdXJjZVN0cmlkZTI7CisgICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7CisgICAgfQor
fQorCit2b2lkIHZhc20oY29uc3QgZmxvYXQgKnNvdXJjZTFQLCBpbnQgc291cmNlU3RyaWRlMSwg
Y29uc3QgZmxvYXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwgZmxvYXQgKnNjYWxhck11
bHQsIGZsb2F0ICpkZXN0UCwgaW50IGRlc3RTdHJpZGUsIGludCBmcmFtZXNUb1Byb2Nlc3MpCit7
CisgICAgLy8gRklYTUU6IG9wdGltaXplIGZvciBTU0UKKyAgICBpbnQgbiA9IGZyYW1lc1RvUHJv
Y2VzczsKKyAgICB3aGlsZSAobi0tKSB7CisgICAgICAgICpkZXN0UCA9ICgqc291cmNlMVAgKyAq
c291cmNlMlApICogKnNjYWxhck11bHQ7CisgICAgICAgIHNvdXJjZTFQICs9IHNvdXJjZVN0cmlk
ZTE7CisgICAgICAgIHNvdXJjZTJQICs9IHNvdXJjZVN0cmlkZTI7CisgICAgICAgIGRlc3RQICs9
IGRlc3RTdHJpZGU7CisgICAgfQorfQorCit2b2lkIHZzbWEoY29uc3QgZmxvYXQgKnNvdXJjZTFQ
LCBpbnQgc291cmNlU3RyaWRlMSwgZmxvYXQgKnNjYWxhck11bHQsIGNvbnN0IGZsb2F0ICpzb3Vy
Y2UyUCwgaW50IHNvdXJjZVN0cmlkZTIsIGZsb2F0ICpkZXN0UCwgaW50IGRlc3RTdHJpZGUsIGlu
dCBmcmFtZXNUb1Byb2Nlc3MpCit7CisgICAgLy8gRklYTUU6IG9wdGltaXplIGZvciBTU0UKKyAg
ICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsKKyAgICB3aGlsZSAobi0tKSB7CisgICAgICAgICpk
ZXN0UCA9ICgqc291cmNlMVAgKiAqc2NhbGFyTXVsdCkgKyAqc291cmNlMlA7CisgICAgICAgIHNv
dXJjZTFQICs9IHNvdXJjZVN0cmlkZTE7CisgICAgICAgIHNvdXJjZTJQICs9IHNvdXJjZVN0cmlk
ZTI7CisgICAgICAgIGRlc3RQICs9IGRlc3RTdHJpZGU7CisgICAgfQorfQogI2VuZGlmIC8vIE9T
KERBUldJTikKIAogfSAvLyBuYW1lc3BhY2UgVmVjdG9yTWF0aApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5oCmluZGV4IDAzNjBiZGJhNDFhYjI4ZWIyNmZmNjc1ODA0
ZDc0ZGQyNjU4OThjNmIuLjIzZTllMzc4N2JiOTNlNDdkNWU0MTg4NjkzNDQwMGRjMDM4M2RmMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmgKQEAgLTMzLDYg
KzMzLDkgQEAgbmFtZXNwYWNlIFZlY3Rvck1hdGggewogCiB2b2lkIHZzbXVsKGNvbnN0IGZsb2F0
KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogc2NhbGUsIGZsb2F0KiBk
ZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogdm9pZCB2YWRk
KGNvbnN0IGZsb2F0KiBzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0KiBz
b3VyY2UyUCwgaW50IHNvdXJjZVN0cmlkZTIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUs
IHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwordm9pZCB2bXVsKGNvbnN0IGZsb2F0KiBzb3VyY2Ux
UCwgaW50IHNvdXJjZVN0cmlkZTEsIGNvbnN0IGZsb2F0KiBzb3VyY2UyUCwgaW50IHNvdXJjZVN0
cmlkZTIsIGZsb2F0KiBkZXN0UCwgaW50IGRlc3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpOwordm9pZCB2YXNtKGNvbnN0IGZsb2F0ICpzb3VyY2UxUCwgaW50IHNvdXJjZVN0cmlkZTEs
IGNvbnN0IGZsb2F0ICpzb3VyY2UyUCwgaW50IHNvdXJjZVN0cmlkZTIsIGZsb2F0ICpzY2FsYXJN
dWx0LCBmbG9hdCAqZGVzdFAsIGludCBkZXN0U3RyaWRlLCBpbnQgZnJhbWVzVG9Qcm9jZXNzKTsK
K3ZvaWQgdnNtYShjb25zdCBmbG9hdCAqc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBmbG9h
dCAqc2NhbGFyTXVsdCwgY29uc3QgZmxvYXQgKnNvdXJjZTJQLCBpbnQgc291cmNlU3RyaWRlMiwg
ZmxvYXQgKmRlc3RQLCBpbnQgZGVzdFN0cmlkZSwgaW50IGZyYW1lc1RvUHJvY2Vzcyk7CiAKIH0g
Ly8gbmFtZXNwYWNlIFZlY3Rvck1hdGgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKaW5kZXggMGYwZDdiMzE5MDQxY2I3NzJkODUwNTdl
MTcwYTIzNmRmOWE2NDYzMi4uOWNkNDZkYmU5ZmQzYzAzY2MyNjlhZjRjNzI3MTZiNTAwMmE4ZjQ3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5v
ZGUuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnBy
b2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICAgICAgcmVuZGVyRnJvbUJ1ZmZlcihv
dXRwdXRCdXMsIHF1YW50dW1GcmFtZU9mZnNldCwgYnVmZmVyRnJhbWVzVG9Qcm9jZXNzKTsKIAog
ICAgICAgICAvLyBBcHBseSB0aGUgZ2FpbiAoaW4tcGxhY2UpIHRvIHRoZSBvdXRwdXQgYnVzLgot
ICAgICAgICBkb3VibGUgdG90YWxHYWluID0gZ2FpbigpLT52YWx1ZSgpICogbV9idWZmZXItPmdh
aW4oKTsKKyAgICAgICAgZmxvYXQgdG90YWxHYWluID0gZ2FpbigpLT52YWx1ZSgpICogbV9idWZm
ZXItPmdhaW4oKTsKICAgICAgICAgb3V0cHV0QnVzLT5jb3B5V2l0aEdhaW5Gcm9tKCpvdXRwdXRC
dXMsICZtX2xhc3RHYWluLCB0b3RhbEdhaW4pOwogCiAgICAgICAgIC8vIElmIHRoZSBlbmQgdGlt
ZSBpcyBzb21ld2hlcmUgaW4gdGhlIG1pZGRsZSBvZiB0aGlzIHRpbWUgcXVhbnR1bSwgdGhlbiBz
aW1wbHkgemVybyBvdXQgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9B
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5oCmluZGV4IGZkNzMwODFkNmIzZjgxYjRlMWZiN2IyYjNjZDM4YmQ4MDBl
NzgzYjAuLmZlMWJjNmJkNWFkMWNkODE5ODFiZjJmMTFiYmExNmYzNWNmMzMwZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCkBAIC0xMjcs
NyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgdG90YWxQaXRjaFJhdGUoKTsKIAogICAg
IC8vIG1fbGFzdEdhaW4gcHJvdmlkZXMgY29udGludWl0eSB3aGVuIHdlIGR5bmFtaWNhbGx5IGFk
anVzdCB0aGUgZ2Fpbi4KLSAgICBkb3VibGUgbV9sYXN0R2FpbjsKKyAgICBmbG9hdCBtX2xhc3RH
YWluOwogICAgIAogICAgIC8vIFdlIG9wdGlvbmFsbHkga2VlcCB0cmFjayBvZiBhIHBhbm5lciBu
b2RlIHdoaWNoIGhhcyBhIGRvcHBsZXIgc2hpZnQgdGhhdCBpcyBpbmNvcnBvcmF0ZWQgaW50byB0
aGUgcGl0Y2ggcmF0ZS4KICAgICBSZWZQdHI8QXVkaW9QYW5uZXJOb2RlPiBtX3Bhbm5lck5vZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmggYi9T
b3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmgKaW5kZXggZTYzNDIxMjhjNzc5
OTRiYmQ0OGQyMGQ2ZjE4N2IyOGQ1NzkxOTRlMi4uNDE1YjA2YjhkY2M1NDc0ODRkYzY3MDRlYzlh
ZDJkMzZiMTFjOTA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9H
YWluTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvR2Fpbk5vZGUuaApA
QCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEF1ZGlvR2Fpbk5vZGUoQXVk
aW9Db250ZXh0KiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKLSAgICBkb3VibGUgbV9sYXN0R2Fpbjsg
Ly8gZm9yIGRlLXppcHBlcmluZworICAgIGZsb2F0IG1fbGFzdEdhaW47IC8vIGZvciBkZS16aXBw
ZXJpbmcKICAgICBSZWZQdHI8QXVkaW9HYWluPiBtX2dhaW47CiAKICAgICBBdWRpb0Zsb2F0QXJy
YXkgbV9zYW1wbGVBY2N1cmF0ZUdhaW5WYWx1ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvUGFubmVyTm9kZS5oCmluZGV4IDZlY2ViZWFhZTMxY2E3ZGFjMzg1NzlmMWQ1YTAzNWRlMzcy
MmNmMTEuLjk4ZDI3NzQzZTQxMTc5NDNiMjY4NzhlNjdlY2Q3MWUzOTY0YmRjNGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5oCkBAIC0xMzgsNyArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8QXVkaW9HYWluPiBtX2NvbmVHYWluOwogICAgIERpc3RhbmNl
RWZmZWN0IG1fZGlzdGFuY2VFZmZlY3Q7CiAgICAgQ29uZUVmZmVjdCBtX2NvbmVFZmZlY3Q7Ci0g
ICAgZG91YmxlIG1fbGFzdEdhaW47CisgICAgZmxvYXQgbV9sYXN0R2FpbjsKIAogICAgIHVuc2ln
bmVkIG1fY29ubmVjdGlvbkNvdW50OwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122457</attachid>
            <date>2012-01-13 10:54:02 -0800</date>
            <delta_ts>2012-01-13 14:05:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74345-20120113105401.patch</filename>
            <type>text/plain</type>
            <size>10405</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0OTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEyYTdlMWUxMDA2N2Uy
NGEyNTlhMzQ1YzBjMmUyNDE0NTQ1ODhjNi4uYWMzYzg1NzVmNjBkYWUzMTFmNjI3NGU1M2U0MjE1
MjI2YzM1MjgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTAxLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkF1ZGlvOiBVc2UgZmxv
YXQgaW5zdGVhZCBvZiBkb3VibGUgdmFsdWVzIGZvciBnYWluIG9wZXJhdGlvbnMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDM0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgb3B0
aW1pemF0aW9uIG9mIGV4aXN0aW5nIGNvZGUsIHNvIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdCBj
YXNlcy4KKworICAgICAgICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBub3cgdGFrZSBvciBvcGVy
YXRlIG9uIGZsb2F0cyBpbnN0ZWFkIG9mIGRvdWJsZXM6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b0J1czo6c2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnByb2Nlc3NXaXRoR2Fp
bkZyb20pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmNvcHlXaXRoR2FpbkZyb20pOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnN1bVdpdGhHYWluRnJvbSk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpz
ZXRHYWluKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpnYWluKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9D
aGFubmVsOjpzY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmg6
CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmg6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9H
YWluTm9kZS5oOgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5oOgorCiAyMDEy
LTAxLTEzICBBbmRyZWFzIEtsaW5nICA8YXdlc29tZWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAg
ICBKU0MvRE9NIGJpbmRpbmdzOiBSZWR1Y2UgSGFuZGxlSGVhcCBjaHVybiBpbiBjYWNoZVdyYXBw
ZXIoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcAppbmRleCBk
ZjllZmY2YTE5ZThjYjdkOGE5MGY2NGUzY2FjYTY2NjRiOGVjYzY4Li4zMDQ4OWJhYTc1MWUxMzQz
ZDY3MjlhZjQ2OGI2OTI1OGM3MGE3Y2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBBdWRpb0J1czo6bm9ybWFs
aXplKCkKICAgICAgICAgc2NhbGUoMS4wZiAvIG1heCk7CiB9CiAKLXZvaWQgQXVkaW9CdXM6OnNj
YWxlKGRvdWJsZSBzY2FsZSkKK3ZvaWQgQXVkaW9CdXM6OnNjYWxlKGZsb2F0IHNjYWxlKQogewog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkNoYW5uZWxzKCk7ICsraSkKICAg
ICAgICAgY2hhbm5lbChpKS0+c2NhbGUoc2NhbGUpOwpAQCAtMzI2LDEyICszMjYsMTAgQEAgdm9p
ZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzKQogICAgICAgICB2
c211bChzb3VyY2VMLCAxLCAmZ2FpbiwgZGVzdGluYXRpb25MLCAxLCBmcmFtZXNUb1Byb2Nlc3Mg
LSBrKTsgXAogICAgIH0gCiAKLXZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb21Nb25v
U3RlcmVvKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSogbGFzdE1peEdhaW4sIGRv
dWJsZSB0YXJnZXRHYWluLCBib29sIHN1bVRvQnVzKQordm9pZCBBdWRpb0J1czo6cHJvY2Vzc1dp
dGhHYWluRnJvbU1vbm9TdGVyZW8oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZmxvYXQqIGxh
c3RNaXhHYWluLCBmbG9hdCB0YXJnZXRHYWluLCBib29sIHN1bVRvQnVzKQogewogICAgIC8vIFdl
IGRvbid0IHdhbnQgdG8gc3VkZGVubHkgY2hhbmdlIHRoZSBnYWluIGZyb20gbWl4aW5nIG9uZSB0
aW1lIHNsaWNlIHRvIHRoZSBuZXh0LAogICAgIC8vIHNvIHdlICJkZS16aXBwZXIiIGJ5IHNsb3ds
eSBjaGFuZ2luZyB0aGUgZ2FpbiBlYWNoIHNhbXBsZS1mcmFtZSB1bnRpbCB3ZSd2ZSBhY2hpZXZl
ZCB0aGUgdGFyZ2V0IGdhaW4uCi0KLSAgICAvLyBGSVhNRTogdGFyZ2V0R2FpbiBhbmQgbGFzdE1p
eEdhaW4gc2hvdWxkIGJlIGNoYW5nZWQgdG8gZmxvYXRzIGluc3RlYWQgb2YgZG91Ymxlcy4KICAg
ICAKICAgICAvLyBUYWtlIG1hc3RlciBidXMgZ2FpbiBpbnRvIGFjY291bnQgYXMgd2VsbCBhcyB0
aGUgdGFyZ2V0R2Fpbi4KICAgICBmbG9hdCB0b3RhbERlc2lyZWRHYWluID0gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG1fYnVzR2FpbiAqIHRhcmdldEdhaW4pOwpAQCAtMzk0LDEwICszOTIsMTAgQEAgdm9p
ZCBBdWRpb0J1czo6cHJvY2Vzc1dpdGhHYWluRnJvbU1vbm9TdGVyZW8oY29uc3QgQXVkaW9CdXMg
JnNvdXJjZUJ1cywgZG91YmxlKgogICAgIH0KIAogICAgIC8vIFNhdmUgdGhlIHRhcmdldCBnYWlu
IGFzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgbmV4dCB0aW1lIGFyb3VuZC4KLSAgICAqbGFzdE1p
eEdhaW4gPSBzdGF0aWNfY2FzdDxkb3VibGU+KGdhaW4pOworICAgICpsYXN0TWl4R2FpbiA9IGdh
aW47CiB9CiAKLXZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb20oY29uc3QgQXVkaW9C
dXMgJnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdldEdhaW4sIGJv
b2wgc3VtVG9CdXMpCit2b2lkIEF1ZGlvQnVzOjpwcm9jZXNzV2l0aEdhaW5Gcm9tKGNvbnN0IEF1
ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2Fpbiwg
Ym9vbCBzdW1Ub0J1cykKIHsKICAgICAvLyBNYWtlIHN1cmUgd2UncmUgc3VtbWluZyBmcm9tIHNh
bWUgdHlwZSBvZiBidXMuCiAgICAgLy8gV2UgKmFyZSogYWJsZSB0byBzdW0gZnJvbSBtb25vIC0+
IHN0ZXJlbwpAQCAtNDQ0LDEyICs0NDIsMTIgQEAgdm9pZCBBdWRpb0J1czo6Y29weVdpdGhTYW1w
bGVBY2N1cmF0ZUdhaW5WYWx1ZXNGcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGYKICAg
ICB9CiB9CiAKLXZvaWQgQXVkaW9CdXM6OmNvcHlXaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMg
JnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdldEdhaW4pCit2b2lk
IEF1ZGlvQnVzOjpjb3B5V2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGZs
b2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2FpbikKIHsKICAgICBwcm9jZXNzV2l0aEdh
aW5Gcm9tKHNvdXJjZUJ1cywgbGFzdE1peEdhaW4sIHRhcmdldEdhaW4sIGZhbHNlKTsKIH0KIAot
dm9pZCBBdWRpb0J1czo6c3VtV2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMs
IGRvdWJsZSogbGFzdE1peEdhaW4sIGRvdWJsZSB0YXJnZXRHYWluKQordm9pZCBBdWRpb0J1czo6
c3VtV2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4
R2FpbiwgZmxvYXQgdGFyZ2V0R2FpbikKIHsKICAgICBwcm9jZXNzV2l0aEdhaW5Gcm9tKHNvdXJj
ZUJ1cywgbGFzdE1peEdhaW4sIHRhcmdldEdhaW4sIHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKaW5kZXggMjI1NWJlYjUyYWFjNGVjZTUyOTE1YTJhYWE1
MjA5ZmMyYWY4YTU4My4uNjM3MGM4YjUyMzQ2MTQ3Y2E4NzBjMzFlNTNjYzdhY2Q0NTg3M2JmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCkBAIC0xMDAsMTEgKzEw
MCwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8QXVkaW9CdXM+IGNyZWF0ZUJ5
TWl4aW5nVG9Nb25vKEF1ZGlvQnVzKiBzb3VyY2VCdXMpOwogCiAgICAgLy8gU2NhbGVzIGFsbCBz
YW1wbGVzIGJ5IHRoZSBzYW1lIGFtb3VudC4KLSAgICB2b2lkIHNjYWxlKGRvdWJsZSBzY2FsZSk7
CisgICAgdm9pZCBzY2FsZShmbG9hdCBzY2FsZSk7CiAKICAgICAvLyBNYXN0ZXIgZ2FpbiBmb3Ig
dGhpcyBidXMgLSB1c2VkIHdpdGggc3VtV2l0aEdhaW5Gcm9tKCkgYmVsb3cKLSAgICB2b2lkIHNl
dEdhaW4oZG91YmxlIGdhaW4pIHsgbV9idXNHYWluID0gZ2FpbjsgfQotICAgIGRvdWJsZSBnYWlu
KCkgeyByZXR1cm4gbV9idXNHYWluOyB9CisgICAgdm9pZCBzZXRHYWluKGZsb2F0IGdhaW4pIHsg
bV9idXNHYWluID0gZ2FpbjsgfQorICAgIGZsb2F0IGdhaW4oKSB7IHJldHVybiBtX2J1c0dhaW47
IH0KIAogICAgIHZvaWQgcmVzZXQoKSB7IG1faXNGaXJzdFRpbWUgPSB0cnVlOyB9IC8vIGZvciBk
ZS16aXBwZXJpbmcKIApAQCAtMTE5LDggKzExOSw4IEBAIHB1YmxpYzoKICAgICAvLyBXZSBzY2Fs
ZSBieSB0YXJnZXRHYWluIChhbmQgb3VyIG93biBpbnRlcm5hbCBnYWluIG1fYnVzR2FpbiksIHBl
cmZvcm1pbmcgImRlLXppcHBlcmluZyIgdG8gc21vb3RobHkgY2hhbmdlIGZyb20gKmxhc3RNaXhH
YWluIHRvICh0YXJnZXRHYWluKm1fYnVzR2FpbikuCiAgICAgLy8gVGhlIGNhbGxlciBpcyByZXNw
b25zaWJsZSBmb3Igc2V0dGluZyB1cCBsYXN0TWl4R2FpbiB0byBwb2ludCB0byBzdG9yYWdlIHdo
aWNoIGlzIHVuaXF1ZSBmb3IgZXZlcnkgInN0cmVhbSIgd2hpY2ggd2lsbCBiZSBzdW1tZWQgdG8g
dGhpcyBidXMuCiAgICAgLy8gVGhpcyByZXByZXNlbnRzIHRoZSBkZXppcHBlcmluZyBtZW1vcnku
Ci0gICAgdm9pZCBjb3B5V2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRv
dWJsZSogbGFzdE1peEdhaW4sIGRvdWJsZSB0YXJnZXRHYWluKTsKLSAgICB2b2lkIHN1bVdpdGhH
YWluRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBk
b3VibGUgdGFyZ2V0R2Fpbik7CisgICAgdm9pZCBjb3B5V2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlv
QnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0R2Fpbik7Cisg
ICAgdm9pZCBzdW1XaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZmxvYXQq
IGxhc3RNaXhHYWluLCBmbG9hdCB0YXJnZXRHYWluKTsKIAogICAgIC8vIENvcGllcyB0aGUgc291
cmNlQnVzIGJ5IHNjYWxpbmcgd2l0aCBzYW1wbGUtYWNjdXJhdGUgZ2FpbiB2YWx1ZXMuCiAgICAg
dm9pZCBjb3B5V2l0aFNhbXBsZUFjY3VyYXRlR2FpblZhbHVlc0Zyb20oY29uc3QgQXVkaW9CdXMg
JnNvdXJjZUJ1cywgZmxvYXQqIGdhaW5WYWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mR2FpblZhbHVl
cyk7CkBAIC0xMzYsOCArMTM2LDggQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEF1ZGlvQnVz
KCkgeyB9OwogCi0gICAgdm9pZCBwcm9jZXNzV2l0aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZz
b3VyY2VCdXMsIGRvdWJsZSogbGFzdE1peEdhaW4sIGRvdWJsZSB0YXJnZXRHYWluLCBib29sIHN1
bVRvQnVzKTsKLSAgICB2b2lkIHByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKGNvbnN0IEF1
ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSogbGFzdE1peEdhaW4sIGRvdWJsZSB0YXJnZXRHYWlu
LCBib29sIHN1bVRvQnVzKTsKKyAgICB2b2lkIHByb2Nlc3NXaXRoR2FpbkZyb20oY29uc3QgQXVk
aW9CdXMgJnNvdXJjZUJ1cywgZmxvYXQqIGxhc3RNaXhHYWluLCBmbG9hdCB0YXJnZXRHYWluLCBi
b29sIHN1bVRvQnVzKTsKKyAgICB2b2lkIHByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKGNv
bnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGZsb2F0KiBsYXN0TWl4R2FpbiwgZmxvYXQgdGFyZ2V0
R2FpbiwgYm9vbCBzdW1Ub0J1cyk7CiAKICAgICBzaXplX3QgbV9sZW5ndGg7CiAKQEAgLTE0NSw3
ICsxNDUsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBpbnQgbV9sYXlvdXQ7CiAKLSAgICBkb3VibGUg
bV9idXNHYWluOworICAgIGZsb2F0IG1fYnVzR2FpbjsKICAgICBib29sIG1faXNGaXJzdFRpbWU7
CiAgICAgZmxvYXQgbV9zYW1wbGVSYXRlOyAvLyAwLjAgaWYgdW5rbm93biBvciBOL0EKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmNwcAppbmRleCBh
OTYyZGViZDU3MjYwYzQzZWMyNjAyMGE2YzI4NzZjOTc0M2E2NGI4Li4zOWRhZmY5NjZmZTE5N2Yy
YzVlMTk2ODZhZWEzMDEzYTA4MTQ0NjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0F1ZGlvQ2hhbm5lbC5jcHAKQEAgLTQxLDEwICs0MSw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIFZlY3Rvck1hdGg7CiAKLXZvaWQgQXVkaW9DaGFubmVs
OjpzY2FsZShkb3VibGUgc2NhbGUpCit2b2lkIEF1ZGlvQ2hhbm5lbDo6c2NhbGUoZmxvYXQgc2Nh
bGUpCiB7Ci0gICAgZmxvYXQgcyA9IHN0YXRpY19jYXN0PGZsb2F0PihzY2FsZSk7Ci0gICAgdnNt
dWwoZGF0YSgpLCAxLCAmcywgZGF0YSgpLCAxLCBsZW5ndGgoKSk7CisgICAgdnNtdWwoZGF0YSgp
LCAxLCAmc2NhbGUsIGRhdGEoKSwgMSwgbGVuZ3RoKCkpOwogfQogCiB2b2lkIEF1ZGlvQ2hhbm5l
bDo6Y29weUZyb20oY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVsKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0NoYW5uZWwuaAppbmRleCA3MzI1ZTlmMzhiYjQz
ZWJiZmRiMGQ2OWRkYTc1ZGE2NDIzOWZkN2U2Li44ODAzZTc1Y2QxZTNmN2FlMjJhNTA4NjlmNjFl
OGRkNDVkYmJkNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb0NoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0No
YW5uZWwuaApAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgLy8gU2NhbGVz
IGFsbCBzYW1wbGVzIGJ5IHRoZSBzYW1lIGFtb3VudC4KLSAgICB2b2lkIHNjYWxlKGRvdWJsZSBz
Y2FsZSk7CisgICAgdm9pZCBzY2FsZShmbG9hdCBzY2FsZSk7CiAKICAgICAvLyBBIHNpbXBsZSBt
ZW1jcHkoKSBmcm9tIHRoZSBzb3VyY2UgY2hhbm5lbAogICAgIHZvaWQgY29weUZyb20oY29uc3Qg
QXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJh
dWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCmluZGV4IGM4YTEzMjI5NTUyYzJmYWE1NTFh
ZmI1YmQ0MTZkMDA1MjA3NDJiM2QuLjFmZDJmMzg0ODI2ZTdhMzg5ZDJmNjIwNGVhNTQyMTZhN2Yy
ZjIxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291
cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
Ojpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgICAgIHJlbmRlckZyb21CdWZm
ZXIob3V0cHV0QnVzLCBxdWFudHVtRnJhbWVPZmZzZXQsIGJ1ZmZlckZyYW1lc1RvUHJvY2Vzcyk7
CiAKICAgICAgICAgLy8gQXBwbHkgdGhlIGdhaW4gKGluLXBsYWNlKSB0byB0aGUgb3V0cHV0IGJ1
cy4KLSAgICAgICAgZG91YmxlIHRvdGFsR2FpbiA9IGdhaW4oKS0+dmFsdWUoKSAqIG1fYnVmZmVy
LT5nYWluKCk7CisgICAgICAgIGZsb2F0IHRvdGFsR2FpbiA9IGdhaW4oKS0+dmFsdWUoKSAqIG1f
YnVmZmVyLT5nYWluKCk7CiAgICAgICAgIG91dHB1dEJ1cy0+Y29weVdpdGhHYWluRnJvbSgqb3V0
cHV0QnVzLCAmbV9sYXN0R2FpbiwgdG90YWxHYWluKTsKIAogICAgICAgICAvLyBJZiB0aGUgZW5k
IHRpbWUgaXMgc29tZXdoZXJlIGluIHRoZSBtaWRkbGUgb2YgdGhpcyB0aW1lIHF1YW50dW0sIHRo
ZW4gc2ltcGx5IHplcm8gb3V0IHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRp
b0J1ZmZlclNvdXJjZU5vZGUuaAppbmRleCA3NzdiYTg5ZTM3ZjM5ZWRkYmMwNTgxMTZmM2UyZDJi
OWMzOGZmMjU2Li40OTA5MWMwMTdiMzZkMTJjZTJiNWU0M2FiN2JlODJjYWY0ODM1ZjRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaApAQCAt
MTI5LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIHRvdGFsUGl0Y2hSYXRlKCk7CiAK
ICAgICAvLyBtX2xhc3RHYWluIHByb3ZpZGVzIGNvbnRpbnVpdHkgd2hlbiB3ZSBkeW5hbWljYWxs
eSBhZGp1c3QgdGhlIGdhaW4uCi0gICAgZG91YmxlIG1fbGFzdEdhaW47CisgICAgZmxvYXQgbV9s
YXN0R2FpbjsKICAgICAKICAgICAvLyBXZSBvcHRpb25hbGx5IGtlZXAgdHJhY2sgb2YgYSBwYW5u
ZXIgbm9kZSB3aGljaCBoYXMgYSBkb3BwbGVyIHNoaWZ0IHRoYXQgaXMgaW5jb3Jwb3JhdGVkIGlu
dG8gdGhlIHBpdGNoIHJhdGUuCiAgICAgUmVmUHRyPEF1ZGlvUGFubmVyTm9kZT4gbV9wYW5uZXJO
b2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9HYWluTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9HYWluTm9kZS5oCmluZGV4IGU2MzQyMTI4
Yzc3OTk0YmJkNDhkMjBkNmYxODdiMjhkNTc5MTk0ZTIuLjQxNWIwNmI4ZGNjNTQ3NDg0ZGM2NzA0
ZWM5YWQyZDM2YjExYzkwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvR2Fpbk5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0dhaW5Ob2Rl
LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBBdWRpb0dhaW5Ob2Rl
KEF1ZGlvQ29udGV4dCosIGZsb2F0IHNhbXBsZVJhdGUpOwogCi0gICAgZG91YmxlIG1fbGFzdEdh
aW47IC8vIGZvciBkZS16aXBwZXJpbmcKKyAgICBmbG9hdCBtX2xhc3RHYWluOyAvLyBmb3IgZGUt
emlwcGVyaW5nCiAgICAgUmVmUHRyPEF1ZGlvR2Fpbj4gbV9nYWluOwogCiAgICAgQXVkaW9GbG9h
dEFycmF5IG1fc2FtcGxlQWNjdXJhdGVHYWluVmFsdWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRp
by9BdWRpb1Bhbm5lck5vZGUuaAppbmRleCA2ZWNlYmVhYWUzMWNhN2RhYzM4NTc5ZjFkNWEwMzVk
ZTM3MjJjZjExLi45OGQyNzc0M2U0MTE3OTQzYjI2ODc4ZTY3ZWNkNzFlMzk2NGJkYzRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaApAQCAtMTM4LDcgKzEzOCw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEF1ZGlvR2Fpbj4gbV9jb25lR2FpbjsKICAgICBEaXN0
YW5jZUVmZmVjdCBtX2Rpc3RhbmNlRWZmZWN0OwogICAgIENvbmVFZmZlY3QgbV9jb25lRWZmZWN0
OwotICAgIGRvdWJsZSBtX2xhc3RHYWluOworICAgIGZsb2F0IG1fbGFzdEdhaW47CiAKICAgICB1
bnNpZ25lZCBtX2Nvbm5lY3Rpb25Db3VudDsKIH07Cg==
</data>
<flag name="review"
          id="123248"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="123304"
          type_id="3"
          status="+"
          setter="jer.noble"
    />
          </attachment>
      

    </bug>

</bugzilla>