<?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>55763</bug_id>
          
          <creation_ts>2011-03-04 03:43:05 -0800</creation_ts>
          <short_desc>JSC and V8 versions of Java bridge should share JobjectWrapper</short_desc>
          <delta_ts>2011-03-04 11:18:06 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55384</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve Block">steveblock</reporter>
          <assigned_to name="Steve Block">steveblock</assigned_to>
          <cc>andreip</cc>
    
    <cc>dglazkov</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>362403</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 03:43:05 -0800</bug_when>
    <thetext>JSC and V8 versions of Java bridge should share JobjectWrapper</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362405</commentid>
    <comment_count>1</comment_count>
      <attachid>84722</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 03:50:46 -0800</bug_when>
    <thetext>Created attachment 84722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362406</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-04 03:54:30 -0800</bug_when>
    <thetext>Attachment 84722 did not build on chromium:
Build output: http://queues.webkit.org/results/8084626</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362408</commentid>
    <comment_count>3</comment_count>
      <attachid>84722</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 03:56:22 -0800</bug_when>
    <thetext>Comment on attachment 84722
Patch

webkit-patch seems to have screwed up my patch, fixing ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362409</commentid>
    <comment_count>4</comment_count>
      <attachid>84723</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 03:59:13 -0800</bug_when>
    <thetext>Created attachment 84723
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362490</commentid>
    <comment_count>5</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2011-03-04 07:48:51 -0800</bug_when>
    <thetext>I think you forgot the Android makefiles :)


&gt;53: m_env-&gt;DeleteGlobalRef(m_instance);

I know this is what the old code looked like, but should you not check if m_instance is non-null before calling DeleteGlobalRef()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362511</commentid>
    <comment_count>6</comment_count>
      <attachid>84723</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 08:23:54 -0800</bug_when>
    <thetext>Comment on attachment 84723
Patch 2

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

&gt; Source/WebCore/bridge/jni/JobjectWrapper.cpp:53
&gt; +    m_env-&gt;DeleteGlobalRef(m_instance);

I don&apos;t think there&apos;s any need to check this, as we assert that the reference passed to the constructor is non-null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362513</commentid>
    <comment_count>7</comment_count>
      <attachid>84753</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 08:25:17 -0800</bug_when>
    <thetext>Created attachment 84753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362516</commentid>
    <comment_count>8</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2011-03-04 08:26:46 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 84723 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84723&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bridge/jni/JobjectWrapper.cpp:53
&gt; &gt; +    m_env-&gt;DeleteGlobalRef(m_instance);
&gt; 
&gt; I don&apos;t think there&apos;s any need to check this, as we assert that the reference passed to the constructor is non-null.

But some JNI environments only allow a limited number of global references, so you may encounter a situation where NewGlobalRef() returns 0 even if &apos;instance&apos; was non-null. Now, I am not sure what DeleteGlobalRef() does when you pass 0, but I think it crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362517</commentid>
    <comment_count>9</comment_count>
      <attachid>84754</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 08:27:16 -0800</bug_when>
    <thetext>Created attachment 84754
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362519</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-04 08:28:48 -0800</bug_when>
    <thetext>Attachment 84753 did not build on chromium:
Build output: http://queues.webkit.org/results/8083730</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362533</commentid>
    <comment_count>11</comment_count>
      <attachid>84723</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 08:43:20 -0800</bug_when>
    <thetext>Comment on attachment 84723
Patch 2

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

&gt;&gt;&gt; Source/WebCore/bridge/jni/JobjectWrapper.cpp:53
&gt;&gt;&gt; +    m_env-&gt;DeleteGlobalRef(m_instance);
&gt;&gt; 
&gt;&gt; I don&apos;t think there&apos;s any need to check this, as we assert that the reference passed to the constructor is non-null.
&gt; 
&gt; But some JNI environments only allow a limited number of global references, so you may encounter a situation where NewGlobalRef() returns 0 even if &apos;instance&apos; was non-null. Now, I am not sure what DeleteGlobalRef() does when you pass 0, but I think it crashes.

Sure, but in that case we&apos;ll have crashed long ago because we don&apos;t check that at every call site that m_instance is non-null, so adding a check here doesn&apos;t add much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362536</commentid>
    <comment_count>12</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2011-03-04 08:46:06 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 84723 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84723&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/bridge/jni/JobjectWrapper.cpp:53
&gt; &gt;&gt;&gt; +    m_env-&gt;DeleteGlobalRef(m_instance);
&gt; &gt;&gt; 
&gt; &gt;&gt; I don&apos;t think there&apos;s any need to check this, as we assert that the reference passed to the constructor is non-null.
&gt; &gt; 
&gt; &gt; But some JNI environments only allow a limited number of global references, so you may encounter a situation where NewGlobalRef() returns 0 even if &apos;instance&apos; was non-null. Now, I am not sure what DeleteGlobalRef() does when you pass 0, but I think it crashes.
&gt; 
&gt; Sure, but in that case we&apos;ll have crashed long ago because we don&apos;t check that at every call site that m_instance is non-null, so adding a check here doesn&apos;t add much.

Ah yeah, you&apos;re right...well ok. LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362609</commentid>
    <comment_count>13</comment_count>
      <attachid>84754</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-03-04 10:31:11 -0800</bug_when>
    <thetext>Comment on attachment 84754
Patch 4

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

&gt; Source/WebCore/bridge/jni/JobjectWrapper.h:34
&gt; +namespace JSC {

Why in the JSC namespace if this is for V8 as well?

&gt; Source/WebCore/bridge/jni/JobjectWrapper.h:47
&gt; +    void ref() { m_refCount++; }

There&apos;s no way to just use RefCounted?

&gt; Source/WebCore/bridge/jni/JobjectWrapper.h:50
&gt; +        if (!(--m_refCount))

Are the parenthesis really necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362611</commentid>
    <comment_count>14</comment_count>
      <attachid>84754</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 10:35:06 -0800</bug_when>
    <thetext>Comment on attachment 84754
Patch 4

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

&gt;&gt; Source/WebCore/bridge/jni/JobjectWrapper.h:34
&gt;&gt; +namespace JSC {
&gt; 
&gt; Why in the JSC namespace if this is for V8 as well?

All of the bridge code is in JSC::Bindings, I guess for legacy reasons

&gt;&gt; Source/WebCore/bridge/jni/JobjectWrapper.h:47
&gt;&gt; +    void ref() { m_refCount++; }
&gt; 
&gt; There&apos;s no way to just use RefCounted?

Hmm, I can look into this, but would prefer to keep this patch as just code movement.

&gt;&gt; Source/WebCore/bridge/jni/JobjectWrapper.h:50
&gt;&gt; +        if (!(--m_refCount))
&gt; 
&gt; Are the parenthesis really necessary?

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362615</commentid>
    <comment_count>15</comment_count>
      <attachid>84754</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-03-04 10:40:48 -0800</bug_when>
    <thetext>Comment on attachment 84754
Patch 4

r=me

please file a bug to keep a log of things that should be looked at after refactoring.  I think the namespace issue should be one of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362623</commentid>
    <comment_count>16</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 10:46:59 -0800</bug_when>
    <thetext>Filed Bug 55785 to look at the namespace issue and Bug 55786 to use RefCounted for JobjectWrapper.

Will fix the parentheses when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362639</commentid>
    <comment_count>17</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-03-04 11:18:06 -0800</bug_when>
    <thetext>Committed r80367: &lt;http://trac.webkit.org/changeset/80367&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84722</attachid>
            <date>2011-03-04 03:50:46 -0800</date>
            <delta_ts>2011-03-04 03:59:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55763-20110304115044.patch</filename>
            <type>text/plain</type>
            <size>13466</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAzNDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OWU4MjA4MGRlNGZhYmZk
ZjViYWQwMDllMjRkMWRhMzFjYTFiYjIwLi42ZWJjZjYwZmE1YjI4NGM5YmM0MmZiODA5NWI4MTYy
OThjMWI3MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzMgQEAKIDIwMTEtMDMtMDQgIFN0ZXZl
IEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEpTQyBhbmQgVjggdmVyc2lvbnMgb2YgSmF2YSBicmlk
Z2Ugc2hvdWxkIHNoYXJlIEpvYmplY3RXcmFwcGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTc2MworCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmVm
YWN0b3Jpbmcgb25seS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBicmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmNwcDoKKyAgICAgICAgKEpvYmpl
Y3RXcmFwcGVyOjpKb2JqZWN0V3JhcHBlcik6CisgICAgICAgIChKb2JqZWN0V3JhcHBlcjo6fkpv
YmplY3RXcmFwcGVyKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmg6Cisg
ICAgICAgIChKU0M6OkJpbmRpbmdzOjpKb2JqZWN0V3JhcHBlcjo6aW5zdGFuY2UpOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6Sm9iamVjdFdyYXBwZXI6OnNldEluc3RhbmNlKToKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6OkpvYmplY3RXcmFwcGVyOjpyZWYpOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6Sm9iamVjdFdyYXBwZXI6OmRlcmVmKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9K
TklCcmlkZ2VKU0MuY3BwOgorICAgICAgICAoSmF2YUZpZWxkOjpKYXZhRmllbGQpOgorICAgICAg
ICAoSmF2YUFycmF5OjpKYXZhQXJyYXkpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0pOSUJy
aWRnZUpTQy5oOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHA6
CisgICAgICAgIChKYXZhSW5zdGFuY2U6OkphdmFJbnN0YW5jZSk6CisgICAgICAgICogYnJpZGdl
L2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmg6CisKKzIwMTEtMDMtMDQgIFN0ZXZlIEJsb2NrICA8
c3RldmVibG9ja0Bnb29nbGUuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxv
dy4KIAogICAgICAgICBWOCB2ZXJzaW9uIG9mIEphdmFTdHJpbmcgc2hvdWxkIG9idGFpbiBzdHJp
bmcgZnJvbSBKTkkgaW4gVVRGLTE2IGVuY29kaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOTQ3N2M4
YzJiMTcxMWNjZTI3ZGQ5MDA0YzQwMGFlYWRlMDU3MzQ1ZC4uZTgxYTNhZWUxYjkxNGMwOTc0Mjdk
Yzc4NWJjNDcxZTAyNWE3NTVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTAxMSw2ICsxMDExLDgg
QEAKICAgICAgICAgICAgICdicmlkZ2Uvam5pL0pOSUJyaWRnZS5oJywKICAgICAgICAgICAgICdi
cmlkZ2Uvam5pL0pOSVV0aWxpdHkuY3BwJywKICAgICAgICAgICAgICdicmlkZ2Uvam5pL0pOSVV0
aWxpdHkuaCcsCisgICAgICAgICAgICAnYnJpZGdlL2puaS9Kb2JqZWN0V3JhcHBlci5jcHAnLAor
ICAgICAgICAgICAgJ2JyaWRnZS9qbmkvSm9iamVjdFdyYXBwZXIuaCcsCiAgICAgICAgICAgICAn
YnJpZGdlL2puaS92OC9KTklCcmlkZ2VWOC5jcHAnLAogICAgICAgICAgICAgJ2JyaWRnZS9qbmkv
djgvSk5JQnJpZGdlVjguaCcsCiAgICAgICAgICAgICAnYnJpZGdlL2puaS92OC9KTklVdGlsaXR5
UHJpdmF0ZS5jcHAnLApAQCAtMTAyMiw4ICsxMDI0LDYgQEAKICAgICAgICAgICAgICdicmlkZ2Uv
am5pL3Y4L0phdmFOUE9iamVjdFY4LmNwcCcsCiAgICAgICAgICAgICAnYnJpZGdlL2puaS92OC9K
YXZhTlBPYmplY3RWOC5oJywKICAgICAgICAgICAgICdicmlkZ2Uvam5pL3Y4L0phdmFTdHJpbmdW
OC5oJywKLSAgICAgICAgICAgICdicmlkZ2Uvam5pL3Y4L0pvYmplY3RXcmFwcGVyLmNwcCcsCi0g
ICAgICAgICAgICAnYnJpZGdlL2puaS92OC9Kb2JqZWN0V3JhcHBlci5oJywKICAgICAgICAgICAg
ICdjc3MvQ1NTQm9yZGVySW1hZ2VWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9DU1NCb3Jk
ZXJJbWFnZVZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NDYW52YXNWYWx1ZS5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUub3JkZXIKaW5kZXggODNhN2Y3NzA4NjQxZTcyYzZjZmU0ODg2OWUyMzhjZWM3NGJl
YjNjMS4uYmM4ZWEzYjVkMzAwYzZjMDNmNGNjNDNjZGRhNTI3NzIxOTg3YWRkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLm9yZGVyCkBAIC0xMTUzOSw4ICsxMTUzOSw4IEBAIF9fWk43V2ViQ29yZTE5SlNIVE1MQXBw
bGV0RWxlbWVudDI2Z2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGVFUE4zSlNDOUV4ZWNTdGF0ZUVS
CiBfX1pOSzdXZWJDb3JlMTdIVE1MQXBwbGV0RWxlbWVudDI1cmVuZGVyV2lkZ2V0Rm9ySlNCaW5k
aW5nc0V2CiBfX1pOM0pTQzhCaW5kaW5nczEySmF2YUluc3RhbmNlQzFFUDhfam9iamVjdE4zV1RG
MTBQYXNzUmVmUHRySU5TMF8xMFJvb3RPYmplY3RFRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTJKYXZh
SW5zdGFuY2VDMkVQOF9qb2JqZWN0TjNXVEYxMFBhc3NSZWZQdHJJTlMwXzEwUm9vdE9iamVjdEVF
RQotX19aTjNKU0M4QmluZGluZ3MxNEpPYmplY3RXcmFwcGVyQzFFUDhfam9iamVjdAotX19aTjNK
U0M4QmluZGluZ3MxNEpPYmplY3RXcmFwcGVyQzJFUDhfam9iamVjdAorX19aTjNKU0M4QmluZGlu
Z3MxNEpvYmplY3RXcmFwcGVyQzFFUDhfam9iamVjdAorX19aTjNKU0M4QmluZGluZ3MxNEpvYmpl
Y3RXcmFwcGVyQzJFUDhfam9iamVjdAogX19aTjNKU0M4QmluZGluZ3M5Z2V0Sk5JRW52RXYKIF9f
Wk4zSlNDOEJpbmRpbmdzOWdldEphdmFWTUV2CiBfX1pOM0pTQzhCaW5kaW5nc0wyMEtKU0dldENy
ZWF0ZWRKYXZhVk1zRVBQN0phdmFWTV9pUGkKQEAgLTExNTg4LDggKzExNTg4LDggQEAgX19aTjNK
U0M4QmluZGluZ3MxMkphdmFJbnN0YW5jZUQwRXYKIF9fWk4zSlNDOEJpbmRpbmdzOUphdmFDbGFz
c0QwRXYKIF9fWk4zV1RGMjBkZWxldGVBbGxQYWlyU2Vjb25kc0lQTjNKU0M4QmluZGluZ3M1Rmll
bGRFS05TXzdIYXNoTWFwSU5TXzZSZWZQdHJJTjdXZWJDb3JlMTBTdHJpbmdJbXBsRUVFUzRfTlM3
XzEwU3RyaW5nSGFzaEVOU18xMEgKIF9fWk4zSlNDOEJpbmRpbmdzOUphdmFGaWVsZEQwRXYKLV9f
Wk4zSlNDOEJpbmRpbmdzMTRKT2JqZWN0V3JhcHBlckQxRXYKLV9fWk4zSlNDOEJpbmRpbmdzMTRK
T2JqZWN0V3JhcHBlckQyRXYKK19fWk4zSlNDOEJpbmRpbmdzMTRKb2JqZWN0V3JhcHBlckQxRXYK
K19fWk4zSlNDOEJpbmRpbmdzMTRKb2JqZWN0V3JhcHBlckQyRXYKIF9fWk4zV1RGMTVkZWxldGVB
bGxWYWx1ZXNJUE4zSlNDOEJpbmRpbmdzNk1ldGhvZEVMbTBFRUV2UktOU182VmVjdG9ySVRfWFQw
X0VFRQogX19aTjNKU0M4QmluZGluZ3MxMEphdmFNZXRob2REMEV2CiBfX1pOM0pTQzhCaW5kaW5n
czEzSmF2YVBhcmFtZXRlckQxRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MTYzNGYwNmQ2MDJlYWFiNmJlMDJjNDM5ZmNkYWQ4
NjY4NzE4Njk0Li40NmNkYTJhNWZiMjczYWJhNjYzMDQxMDEyMzY2M2I2NDhiOWE1ZTNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMzgxLDYgKzEzODEsOCBAQAogCQk1OTMwOUExMzExRjRBRTZBMDAyNTA2MDMgLyogRGV2aWNl
T3JpZW50YXRpb25DbGllbnRNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1OTMwOUExMjExRjRBRTZBMDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNTk2MjI5NzgxMTMzRUZENzAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25D
YWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
OTYyMjk3NzExMzNFRkQ3MDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCAq
LzsgfTsKIAkJNTk2MjI5N0ExMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25D
YWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk2
MjI5NzkxMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU5Njk1MDgyMTMy
MTA1OTkwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk2OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmpl
Y3RXcmFwcGVyLmggKi87IH07CisJCTU5Njk1MDg0MTMyMTA1QTUwMEMzRUQxOCAvKiBKb2JqZWN0
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1OTY5NTA4MzEzMjEwNUE1MDBDM0VEMTggLyogSm9iamVjdFdyYXBwZXIuY3BwICovOyB9Owog
CQk1OTlFNzU5MDExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEgLyog
QnJpZGdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTlBODVFQTIxMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlBODVFQTEx
MTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwICovOyB9OwogCQk1
OUE4NUVBNDExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlBODVFQTMxMTlENjhF
QzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCAqLzsgfTsKQEAgLTc4NDQsNiAr
Nzg0Niw4IEBACiAJCTU5MzA5QTEyMTFGNEFFNkEwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNb2NrLmg7IHBhdGggPSBtb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTYyMjk3NzExMzNFRkQ3MDBE
QzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NjIyOTc5MTEzM0VGRTIwMERDNENCQiAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2Vv
bG9jYXRpb25Qb3NpdGlvbkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU5
Njk1MDgxMTMyMTA1OTkwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKb2JqZWN0V3JhcHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1OTY5NTA4MzEzMjEwNUE1MDBDM0VEMTggLyogSm9iamVjdFdyYXBwZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSm9iamVjdFdyYXBwZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTgwQjAzMzEyRUYzRDg0MDBERjVGODUg
LyogWE1MVmlld2VyLnhzbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBwYXRoID0gWE1MVmlld2VyLnhz
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk5RTc1OEYxMTA1NUExRjAwRDkwNEZB
IC8qIEJyaWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCcmlkZ2UuaDsg
cGF0aCA9IGJyaWRnZS9CcmlkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTlB
ODVFQTExMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25FdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjczMSw2ICsxMjczNSw4IEBACiAJ
CTFBNTY5Q0NFMEQ3RTJCODIwMDdDMzk4MyAvKiBqbmkgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU5Njk1MDgzMTMyMTA1QTUwMEMzRUQxOCAvKiBKb2Jq
ZWN0V3JhcHBlci5jcHAgKi8sCisJCQkJNTk2OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmpl
Y3RXcmFwcGVyLmggKi8sCiAJCQkJMUE1NjlDRDQwRDdFMkI4MjAwN0MzOTgzIC8qIGpuaV9qc29i
amVjdC5oICovLAogCQkJCTFBNTY5Q0QzMEQ3RTJCODIwMDdDMzk4MyAvKiBqbmlfanNvYmplY3Qu
bW0gKi8sCiAJCQkJMUE1NjlDRDUwRDdFMkI4MjAwN0MzOTgzIC8qIGpuaV9vYmpjLm1tICovLApA
QCAtMjI1MTksNiArMjI1MjUsNyBAQAogCQkJCTVBNTc0RjI5MTMxREI5NkQwMDQ3MUI4OCAvKiBR
dW90ZXNEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzlCNUI2MzEzMURBQTMyMDBGNDhEMDIg
LyogQ29va2llc1N0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQkzM0QwMjEyRDEzMURCMzdC
MDA0MDkxQTggLyogQ29va2llU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTk2OTUwODIx
MzIxMDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI1
MTY4LDYgKzI1MTc1LDcgQEAKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmls
dGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVBNTc0RjI0MTMxREI5MzkwMDQ3MUI4OCAvKiBS
ZW5kZXJRdW90ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QTU3NEYyODEzMURCOTZEMDA0NzFC
ODggLyogUXVvdGVzRGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1OTY5NTA4NDEzMjEwNUE1
MDBDM0VEMTggLyogSm9iamVjdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KTklCcmlkZ2VKU0MuY3BwIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmNwcAppbmRleCBmNGRhYjIwMzI5
NTJhOWQ5OTQ5NTgzM2EwZWQ3ZDkwNTU1YTNlOTI3Li44ZjQ1YjVhZTdlMDg2YzcyOWY3ZGM0N2Ni
MDI0YjQwNTlkMzAwNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pz
Yy9KTklCcmlkZ2VKU0MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pO
SUJyaWRnZUpTQy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBFTkFCTEUoSkFWQV9CUklER0Up
CiAKICNpbmNsdWRlICJKTklVdGlsaXR5UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkpvYmplY3RXcmFw
cGVyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgInJ1bnRpbWVfYXJyYXkuaCIK
ICNpbmNsdWRlICJydW50aW1lX29iamVjdC5oIgpAQCAtNTcsNyArNTgsNyBAQCBKYXZhRmllbGQ6
OkphdmFGaWVsZChKTklFbnYqIGVudiwgam9iamVjdCBhRmllbGQpCiAgICAgICAgIGZpZWxkTmFt
ZSA9IGVudi0+TmV3U3RyaW5nVVRGKCI8VW5rbm93bj4iKTsKICAgICBtX25hbWUgPSBKYXZhU3Ry
aW5nKGVudiwgZmllbGROYW1lKTsKIAotICAgIG1fZmllbGQgPSBuZXcgSk9iamVjdFdyYXBwZXIo
YUZpZWxkKTsKKyAgICBtX2ZpZWxkID0gbmV3IEpvYmplY3RXcmFwcGVyKGFGaWVsZCk7CiB9CiAK
IEpTVmFsdWUgSmF2YUFycmF5Ojpjb252ZXJ0Sk9iamVjdFRvQXJyYXkoRXhlY1N0YXRlKiBleGVj
LCBqb2JqZWN0IGFuT2JqZWN0LCBjb25zdCBjaGFyKiB0eXBlLCBQYXNzUmVmUHRyPFJvb3RPYmpl
Y3Q+IHJvb3RPYmplY3QpCkBAIC0yNTEsNyArMjUyLDcgQEAgdm9pZCBKYXZhRmllbGQ6OnNldFZh
bHVlVG9JbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEluc3RhbmNlKiBpLCBKU1ZhbHVl
IGEKIEphdmFBcnJheTo6SmF2YUFycmF5KGpvYmplY3QgYXJyYXksIGNvbnN0IGNoYXIqIHR5cGUs
IFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdE9iamVjdCkKICAgICA6IEFycmF5KHJvb3RPYmpl
Y3QpCiB7Ci0gICAgbV9hcnJheSA9IG5ldyBKT2JqZWN0V3JhcHBlcihhcnJheSk7CisgICAgbV9h
cnJheSA9IG5ldyBKb2JqZWN0V3JhcHBlcihhcnJheSk7CiAgICAgLy8gSmF2YSBhcnJheSBhcmUg
Zml4ZWQgbGVuZ3RoLCBzbyB3ZSBjYW4gY2FjaGUgbGVuZ3RoLgogICAgIEpOSUVudiogZW52ID0g
Z2V0Sk5JRW52KCk7CiAgICAgbV9sZW5ndGggPSBlbnYtPkdldEFycmF5TGVuZ3RoKHN0YXRpY19j
YXN0PGphcnJheT4obV9hcnJheS0+bV9pbnN0YW5jZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL2pzYy9KTklCcmlkZ2VKU0MuaAppbmRleCBjMzc2YmI5NzVmNTI1YjhlOGE3OTljNThl
MzlmOGRmZWQ3OTNjNmRlLi4xNGQwNmFkOGQ5ZTcwMzg1NDQ0NTU1MjFlOWU2ODlkYzNlNjYzODMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KTklCcmlkZ2VKU0Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KTklCcmlkZ2VKU0MuaApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkJyaWRnZUpTQy5oIgogI2luY2x1ZGUgIkpOSUJyaWRn
ZS5oIgogI2luY2x1ZGUgIkpOSVV0aWxpdHkuaCIKKyNpbmNsdWRlICJKb2JqZWN0V3JhcHBlci5o
IgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNTYsNyArNTcsNyBAQCBwcml2YXRlOgogICAgIEph
dmFTdHJpbmcgbV9uYW1lOwogICAgIEphdmFTdHJpbmcgbV90eXBlOwogICAgIEpOSVR5cGUgbV9K
TklUeXBlOwotICAgIFJlZlB0cjxKT2JqZWN0V3JhcHBlcj4gbV9maWVsZDsKKyAgICBSZWZQdHI8
Sm9iamVjdFdyYXBwZXI+IG1fZmllbGQ7CiB9OwogCiBjbGFzcyBKYXZhQXJyYXkgOiBwdWJsaWMg
QXJyYXkgewpAQCAtNzUsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTVmFsdWUgY29u
dmVydEpPYmplY3RUb0FycmF5KEV4ZWNTdGF0ZSosIGpvYmplY3QsIGNvbnN0IGNoYXIqIHR5cGUs
IFBhc3NSZWZQdHI8Um9vdE9iamVjdD4pOwogCiBwcml2YXRlOgotICAgIFJlZlB0cjxKT2JqZWN0
V3JhcHBlcj4gbV9hcnJheTsKKyAgICBSZWZQdHI8Sm9iamVjdFdyYXBwZXI+IG1fYXJyYXk7CiAg
ICAgdW5zaWduZWQgaW50IG1fbGVuZ3RoOwogICAgIGNvbnN0IGNoYXIqIG1fdHlwZTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcApp
bmRleCAwYjg5YzQ4NWUxNjJhYWRkNmQxMmY5MTgyYjNhYTYwM2QxMjJmMGQ4Li42MjRkYTdkMDgz
ZDU5NWE4MTJkYjg2ZTVlMmMzYTkzY2JmMDY1NDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBKYXZhSW5zdGFuY2U6OkphdmFJbnN0YW5jZShqb2JqZWN0
IGluc3RhbmNlLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3RPYmplY3QpCiAgICAgOiBJbnN0
YW5jZShyb290T2JqZWN0KQogewotICAgIG1faW5zdGFuY2UgPSBuZXcgSk9iamVjdFdyYXBwZXIo
aW5zdGFuY2UpOworICAgIG1faW5zdGFuY2UgPSBuZXcgSm9iamVjdFdyYXBwZXIoaW5zdGFuY2Up
OwogICAgIG1fY2xhc3MgPSAwOwogfQogCkBAIC0zNjYsMjcgKzM2Niw0IEBAIEpTVmFsdWUgSmF2
YUluc3RhbmNlOjp2YWx1ZU9mKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gc3Ry
aW5nVmFsdWUoZXhlYyk7CiB9CiAKLUpPYmplY3RXcmFwcGVyOjpKT2JqZWN0V3JhcHBlcihqb2Jq
ZWN0IGluc3RhbmNlKQotICAgIDogbV9yZWZDb3VudCgwKQotewotICAgIEFTU0VSVChpbnN0YW5j
ZSk7Ci0KLSAgICAvLyBDYWNoZSB0aGUgSk5JRW52IHVzZWQgdG8gZ2V0IHRoZSBnbG9iYWwgcmVm
IGZvciB0aGlzIGphdmEgaW5zdGFuY2UuCi0gICAgLy8gSXQnbGwgYmUgdXNlZCB0byBkZWxldGUg
dGhlIHJlZmVyZW5jZS4KLSAgICBtX2VudiA9IGdldEpOSUVudigpOwotCi0gICAgbV9pbnN0YW5j
ZSA9IG1fZW52LT5OZXdHbG9iYWxSZWYoaW5zdGFuY2UpOwotCi0gICAgTE9HKExpdmVDb25uZWN0
LCAiSk9iamVjdFdyYXBwZXIgY3RvciBuZXcgZ2xvYmFsIHJlZiAlcCBmb3IgJXAiLCBtX2luc3Rh
bmNlLCBpbnN0YW5jZSk7Ci0KLSAgICBpZiAoIW1faW5zdGFuY2UpCi0gICAgICAgIExPR19FUlJP
UigiQ291bGQgbm90IGdldCBHbG9iYWxSZWYgZm9yICVwIiwgaW5zdGFuY2UpOwotfQotCi1KT2Jq
ZWN0V3JhcHBlcjo6fkpPYmplY3RXcmFwcGVyKCkKLXsKLSAgICBMT0coTGl2ZUNvbm5lY3QsICJK
T2JqZWN0V3JhcHBlciBkdG9yIGRlbGV0aW5nIGdsb2JhbCByZWYgJXAiLCBtX2luc3RhbmNlKTsK
LSAgICBtX2Vudi0+RGVsZXRlR2xvYmFsUmVmKG1faW5zdGFuY2UpOwotfQotCiAjZW5kaWYgLy8g
RU5BQkxFKEpBVkFfQlJJREdFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2pu
aS9qc2MvSmF2YUluc3RhbmNlSlNDLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9K
YXZhSW5zdGFuY2VKU0MuaAppbmRleCA3NjkwY2VlNTNiYTQ0YmUwOWIwYjllYWQ4NWU4ODg3NDM2
NDU1MTc0Li45MzdlNDljNDljZWNlNDc0MjkyZDcyNWQzYzBkODZlMzFkODYxZWVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuaApAQCAtMzAs
NiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQnJpZGdlSlNDLmgiCiAjaW5jbHVkZSAiSk5JVXRpbGl0
eS5oIgorI2luY2x1ZGUgIkpvYmplY3RXcmFwcGVyLmgiCiAjaW5jbHVkZSAicnVudGltZV9yb290
LmgiCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMzgsMzUgKzM5LDYgQEAgbmFtZXNwYWNlIEJpbmRp
bmdzIHsKIAogY2xhc3MgSmF2YUNsYXNzOwogCi1jbGFzcyBKT2JqZWN0V3JhcHBlciB7Ci1mcmll
bmQgY2xhc3MgUmVmUHRyPEpPYmplY3RXcmFwcGVyPjsKLWZyaWVuZCBjbGFzcyBKYXZhQXJyYXk7
Ci1mcmllbmQgY2xhc3MgSmF2YUZpZWxkOwotZnJpZW5kIGNsYXNzIEphdmFJbnN0YW5jZTsKLWZy
aWVuZCBjbGFzcyBKYXZhTWV0aG9kOwotCi1wdWJsaWM6Ci0gICAgam9iamVjdCBpbnN0YW5jZSgp
IGNvbnN0IHsgcmV0dXJuIG1faW5zdGFuY2U7IH0KLSAgICB2b2lkIHNldEluc3RhbmNlKGpvYmpl
Y3QgaW5zdGFuY2UpIHsgbV9pbnN0YW5jZSA9IGluc3RhbmNlOyB9Ci0KLSAgICB2b2lkIHJlZigp
IHsgbV9yZWZDb3VudCsrOyB9Ci0gICAgdm9pZCBkZXJlZigpCi0gICAgewotICAgICAgICBpZiAo
ISgtLW1fcmVmQ291bnQpKQotICAgICAgICAgICAgZGVsZXRlIHRoaXM7Ci0gICAgfQotCi1wcm90
ZWN0ZWQ6Ci0gICAgSk9iamVjdFdyYXBwZXIoam9iamVjdCBpbnN0YW5jZSk7Ci0gICAgfkpPYmpl
Y3RXcmFwcGVyKCk7Ci0KLSAgICBqb2JqZWN0IG1faW5zdGFuY2U7Ci0KLXByaXZhdGU6Ci0gICAg
Sk5JRW52KiBtX2VudjsKLSAgICB1bnNpZ25lZCBpbnQgbV9yZWZDb3VudDsKLX07Ci0KIGNsYXNz
IEphdmFJbnN0YW5jZSA6IHB1YmxpYyBJbnN0YW5jZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8SmF2YUluc3RhbmNlPiBjcmVhdGUoam9iamVjdCBpbnN0YW5jZSwgUGFzc1JlZlB0
cjxSb290T2JqZWN0PiByb290T2JqZWN0KQpAQCAtOTgsNyArNzAsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCB2b2lkIHZpcnR1YWxCZWdpbigpOwogICAgIHZpcnR1YWwgdm9pZCB2aXJ0dWFs
RW5kKCk7CiAKLSAgICBSZWZQdHI8Sk9iamVjdFdyYXBwZXI+IG1faW5zdGFuY2U7CisgICAgUmVm
UHRyPEpvYmplY3RXcmFwcGVyPiBtX2luc3RhbmNlOwogICAgIG11dGFibGUgSmF2YUNsYXNzKiBt
X2NsYXNzOwogfTsKIAo=
</data>
<flag name="commit-queue"
          id="76751"
          type_id="3"
          status="-"
          setter="steveblock"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84723</attachid>
            <date>2011-03-04 03:59:13 -0800</date>
            <delta_ts>2011-03-04 08:43:20 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>shareJobjectWrapper.txt</filename>
            <type>text/plain</type>
            <size>22362</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAzNDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OWU4MjA4Li42ZWJjZjYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzMgQEAKIDIwMTEtMDMtMDQgIFN0ZXZlIEJsb2NrICA8
c3RldmVibG9ja0Bnb29nbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEpTQyBhbmQgVjggdmVyc2lvbnMgb2YgSmF2YSBicmlkZ2Ugc2hvdWxk
IHNoYXJlIEpvYmplY3RXcmFwcGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NTc2MworCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3Jpbmcg
b25seS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVy
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBicmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmNwcDoKKyAgICAgICAgKEpvYmplY3RXcmFwcGVy
OjpKb2JqZWN0V3JhcHBlcik6CisgICAgICAgIChKb2JqZWN0V3JhcHBlcjo6fkpvYmplY3RXcmFw
cGVyKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmg6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpKb2JqZWN0V3JhcHBlcjo6aW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6Sm9iamVjdFdyYXBwZXI6OnNldEluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6OkpvYmplY3RXcmFwcGVyOjpyZWYpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Sm9i
amVjdFdyYXBwZXI6OmRlcmVmKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KTklCcmlkZ2VK
U0MuY3BwOgorICAgICAgICAoSmF2YUZpZWxkOjpKYXZhRmllbGQpOgorICAgICAgICAoSmF2YUFy
cmF5OjpKYXZhQXJyYXkpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0pOSUJyaWRnZUpTQy5o
OgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHA6CisgICAgICAg
IChKYXZhSW5zdGFuY2U6OkphdmFJbnN0YW5jZSk6CisgICAgICAgICogYnJpZGdlL2puaS9qc2Mv
SmF2YUluc3RhbmNlSlNDLmg6CisKKzIwMTEtMDMtMDQgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9j
a0Bnb29nbGUuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KIAogICAg
ICAgICBWOCB2ZXJzaW9uIG9mIEphdmFTdHJpbmcgc2hvdWxkIG9idGFpbiBzdHJpbmcgZnJvbSBK
TkkgaW4gVVRGLTE2IGVuY29kaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOTQ3N2M4Yy4uZTgxYTNh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTAxMSw2ICsxMDExLDggQEAKICAgICAgICAgICAgICdi
cmlkZ2Uvam5pL0pOSUJyaWRnZS5oJywKICAgICAgICAgICAgICdicmlkZ2Uvam5pL0pOSVV0aWxp
dHkuY3BwJywKICAgICAgICAgICAgICdicmlkZ2Uvam5pL0pOSVV0aWxpdHkuaCcsCisgICAgICAg
ICAgICAnYnJpZGdlL2puaS9Kb2JqZWN0V3JhcHBlci5jcHAnLAorICAgICAgICAgICAgJ2JyaWRn
ZS9qbmkvSm9iamVjdFdyYXBwZXIuaCcsCiAgICAgICAgICAgICAnYnJpZGdlL2puaS92OC9KTklC
cmlkZ2VWOC5jcHAnLAogICAgICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSk5JQnJpZGdlVjguaCcs
CiAgICAgICAgICAgICAnYnJpZGdlL2puaS92OC9KTklVdGlsaXR5UHJpdmF0ZS5jcHAnLApAQCAt
MTAyMiw4ICsxMDI0LDYgQEAKICAgICAgICAgICAgICdicmlkZ2Uvam5pL3Y4L0phdmFOUE9iamVj
dFY4LmNwcCcsCiAgICAgICAgICAgICAnYnJpZGdlL2puaS92OC9KYXZhTlBPYmplY3RWOC5oJywK
ICAgICAgICAgICAgICdicmlkZ2Uvam5pL3Y4L0phdmFTdHJpbmdWOC5oJywKLSAgICAgICAgICAg
ICdicmlkZ2Uvam5pL3Y4L0pvYmplY3RXcmFwcGVyLmNwcCcsCi0gICAgICAgICAgICAnYnJpZGdl
L2puaS92OC9Kb2JqZWN0V3JhcHBlci5oJywKICAgICAgICAgICAgICdjc3MvQ1NTQm9yZGVySW1h
Z2VWYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9DU1NCb3JkZXJJbWFnZVZhbHVlLmgnLAog
ICAgICAgICAgICAgJ2Nzcy9DU1NDYW52YXNWYWx1ZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5k
ZXggODNhN2Y3Ny4uYmM4ZWEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5v
cmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0xMTUzOSw4ICsxMTUz
OSw4IEBAIF9fWk43V2ViQ29yZTE5SlNIVE1MQXBwbGV0RWxlbWVudDI2Z2V0T3duUHJvcGVydHlT
bG90RGVsZWdhdGVFUE4zSlNDOUV4ZWNTdGF0ZUVSCiBfX1pOSzdXZWJDb3JlMTdIVE1MQXBwbGV0
RWxlbWVudDI1cmVuZGVyV2lkZ2V0Rm9ySlNCaW5kaW5nc0V2CiBfX1pOM0pTQzhCaW5kaW5nczEy
SmF2YUluc3RhbmNlQzFFUDhfam9iamVjdE4zV1RGMTBQYXNzUmVmUHRySU5TMF8xMFJvb3RPYmpl
Y3RFRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTJKYXZhSW5zdGFuY2VDMkVQOF9qb2JqZWN0TjNXVEYx
MFBhc3NSZWZQdHJJTlMwXzEwUm9vdE9iamVjdEVFRQotX19aTjNKU0M4QmluZGluZ3MxNEpPYmpl
Y3RXcmFwcGVyQzFFUDhfam9iamVjdAotX19aTjNKU0M4QmluZGluZ3MxNEpPYmplY3RXcmFwcGVy
QzJFUDhfam9iamVjdAorX19aTjNKU0M4QmluZGluZ3MxNEpvYmplY3RXcmFwcGVyQzFFUDhfam9i
amVjdAorX19aTjNKU0M4QmluZGluZ3MxNEpvYmplY3RXcmFwcGVyQzJFUDhfam9iamVjdAogX19a
TjNKU0M4QmluZGluZ3M5Z2V0Sk5JRW52RXYKIF9fWk4zSlNDOEJpbmRpbmdzOWdldEphdmFWTUV2
CiBfX1pOM0pTQzhCaW5kaW5nc0wyMEtKU0dldENyZWF0ZWRKYXZhVk1zRVBQN0phdmFWTV9pUGkK
QEAgLTExNTg4LDggKzExNTg4LDggQEAgX19aTjNKU0M4QmluZGluZ3MxMkphdmFJbnN0YW5jZUQw
RXYKIF9fWk4zSlNDOEJpbmRpbmdzOUphdmFDbGFzc0QwRXYKIF9fWk4zV1RGMjBkZWxldGVBbGxQ
YWlyU2Vjb25kc0lQTjNKU0M4QmluZGluZ3M1RmllbGRFS05TXzdIYXNoTWFwSU5TXzZSZWZQdHJJ
TjdXZWJDb3JlMTBTdHJpbmdJbXBsRUVFUzRfTlM3XzEwU3RyaW5nSGFzaEVOU18xMEgKIF9fWk4z
SlNDOEJpbmRpbmdzOUphdmFGaWVsZEQwRXYKLV9fWk4zSlNDOEJpbmRpbmdzMTRKT2JqZWN0V3Jh
cHBlckQxRXYKLV9fWk4zSlNDOEJpbmRpbmdzMTRKT2JqZWN0V3JhcHBlckQyRXYKK19fWk4zSlND
OEJpbmRpbmdzMTRKb2JqZWN0V3JhcHBlckQxRXYKK19fWk4zSlNDOEJpbmRpbmdzMTRKb2JqZWN0
V3JhcHBlckQyRXYKIF9fWk4zV1RGMTVkZWxldGVBbGxWYWx1ZXNJUE4zSlNDOEJpbmRpbmdzNk1l
dGhvZEVMbTBFRUV2UktOU182VmVjdG9ySVRfWFQwX0VFRQogX19aTjNKU0M4QmluZGluZ3MxMEph
dmFNZXRob2REMEV2CiBfX1pOM0pTQzhCaW5kaW5nczEzSmF2YVBhcmFtZXRlckQxRXYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
MTYzNGYwLi40NmNkYTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzgxLDYgKzEzODEsOCBAQAogCQk1OTMwOUExMzExRjRB
RTZBMDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTMwOUExMjExRjRBRTZBMDAyNTA2
MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTk2MjI5NzgxMTMzRUZENzAwREM0Q0JCIC8q
IEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1OTYyMjk3NzExMzNFRkQ3MDBEQzRDQkIgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbkNhY2hlLmNwcCAqLzsgfTsKIAkJNTk2MjI5N0ExMTMzRUZFMjAwREM0Q0JCIC8q
IEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTk2MjI5NzkxMTMzRUZFMjAwREM0Q0JCIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25DYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTU5Njk1MDgyMTMyMTA1OTkwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk2OTUwODExMzIx
MDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmggKi87IH07CisJCTU5Njk1MDg0MTMyMTA1
QTUwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTY5NTA4MzEzMjEwNUE1MDBDM0VEMTggLyogSm9iamVj
dFdyYXBwZXIuY3BwICovOyB9OwogCQk1OTlFNzU5MDExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTlFNzU4
RjExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTlBODVFQTIxMTlENjhEOTAwREVGMUVGIC8qIERldmlj
ZU9yaWVudGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTlBODVFQTExMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9u
RXZlbnQuY3BwICovOyB9OwogCQk1OUE4NUVBNDExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3Jp
ZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTlBODVFQTMxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQu
aCAqLzsgfTsKQEAgLTc4NDQsNiArNzg0Niw4IEBACiAJCTU5MzA5QTEyMTFGNEFFNkEwMDI1MDYw
MyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmg7IHBhdGggPSBtb2NrL0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1OTYyMjk3NzExMzNFRkQ3MDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRp
b25DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NjIyOTc5MTEzM0VG
RTIwMERDNENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU5Njk1MDgxMTMyMTA1OTkwMEMzRUQxOCAvKiBKb2JqZWN0V3Jh
cHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKb2JqZWN0V3JhcHBlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1OTY5NTA4MzEzMjEwNUE1MDBDM0VEMTgg
LyogSm9iamVjdFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSm9iamVjdFdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTgw
QjAzMzEyRUYzRDg0MDBERjVGODUgLyogWE1MVmlld2VyLnhzbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1s
OyBwYXRoID0gWE1MVmlld2VyLnhzbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk5
RTc1OEYxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBCcmlkZ2UuaDsgcGF0aCA9IGJyaWRnZS9CcmlkZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTlBODVFQTExMTlENjhEOTAwREVGMUVGIC8qIERldmljZU9yaWVu
dGF0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2
aWNlT3JpZW50YXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MjczMSw2ICsxMjczNSw4IEBACiAJCTFBNTY5Q0NFMEQ3RTJCODIwMDdDMzk4MyAvKiBqbmkgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU5Njk1MDgzMTMy
MTA1QTUwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5jcHAgKi8sCisJCQkJNTk2OTUwODExMzIx
MDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmggKi8sCiAJCQkJMUE1NjlDRDQwRDdFMkI4
MjAwN0MzOTgzIC8qIGpuaV9qc29iamVjdC5oICovLAogCQkJCTFBNTY5Q0QzMEQ3RTJCODIwMDdD
Mzk4MyAvKiBqbmlfanNvYmplY3QubW0gKi8sCiAJCQkJMUE1NjlDRDUwRDdFMkI4MjAwN0MzOTgz
IC8qIGpuaV9vYmpjLm1tICovLApAQCAtMjI1MTksNiArMjI1MjUsNyBAQAogCQkJCTVBNTc0RjI5
MTMxREI5NkQwMDQ3MUI4OCAvKiBRdW90ZXNEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzlC
NUI2MzEzMURBQTMyMDBGNDhEMDIgLyogQ29va2llc1N0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkzM0QwMjEyRDEzMURCMzdCMDA0MDkxQTggLyogQ29va2llU3RvcmFnZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTk2OTUwODIxMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTI1MTY4LDYgKzI1MTc1LDcgQEAKIAkJCQk5NzdFMkUwRTEyRjBG
QzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVBNTc0RjI0
MTMxREI5MzkwMDQ3MUI4OCAvKiBSZW5kZXJRdW90ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
QTU3NEYyODEzMURCOTZEMDA0NzFCODggLyogUXVvdGVzRGF0YS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1OTY5NTA4NDEzMjEwNUE1MDBDM0VEMTggLyogSm9iamVjdFdyYXBwZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0pvYmplY3RX
cmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvSm9iamVjdFdyYXBwZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0MjE3ZWUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmNwcApAQCAt
MCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA4LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDExLCBUaGUgQW5kcm9p
ZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkpvYmplY3RXcmFwcGVyLmgiCisKKyNpZiBFTkFCTEUoSkFWQV9CUklER0UpCisKKyNpbmNs
dWRlIDxhc3NlcnQuaD4KKwordXNpbmcgbmFtZXNwYWNlIEpTQzo6QmluZGluZ3M7CisKK0pvYmpl
Y3RXcmFwcGVyOjpKb2JqZWN0V3JhcHBlcihqb2JqZWN0IGluc3RhbmNlKQorICAgIDogbV9yZWZD
b3VudCgwKQoreworICAgIGFzc2VydChpbnN0YW5jZSk7CisKKyAgICAvLyBDYWNoZSB0aGUgSk5J
RW52IHVzZWQgdG8gZ2V0IHRoZSBnbG9iYWwgcmVmIGZvciB0aGlzIGphdmEgaW5zdGFuYWNlLgor
ICAgIC8vIEl0J2xsIGJlIHVzZWQgdG8gZGVsZXRlIHRoZSByZWZlcmVuY2UuCisgICAgbV9lbnYg
PSBnZXRKTklFbnYoKTsKKworICAgIG1faW5zdGFuY2UgPSBtX2Vudi0+TmV3R2xvYmFsUmVmKGlu
c3RhbmNlKTsKKworICAgIGlmICghbV9pbnN0YW5jZSkKKyAgICAgICAgTE9HX0VSUk9SKCJDb3Vs
ZCBub3QgZ2V0IEdsb2JhbFJlZiBmb3IgJXAiLCBpbnN0YW5jZSk7Cit9CisKK0pvYmplY3RXcmFw
cGVyOjp+Sm9iamVjdFdyYXBwZXIoKQoreworICAgIG1fZW52LT5EZWxldGVHbG9iYWxSZWYobV9p
bnN0YW5jZSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSkFWQV9CUklER0UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNTFlM2YwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9qbmkvSm9iamVjdFdyYXBwZXIuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDAzIEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IDIwMTEsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dO
RVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEpvYmplY3RXcmFwcGVyX2gKKyNkZWZpbmUgSm9iamVjdFdyYXBwZXJfaAorCisj
aWYgRU5BQkxFKEpBVkFfQlJJREdFKQorCisjaW5jbHVkZSAiSk5JVXRpbGl0eS5oIgorCituYW1l
c3BhY2UgSlNDIHsKKworbmFtZXNwYWNlIEJpbmRpbmdzIHsKKworY2xhc3MgSm9iamVjdFdyYXBw
ZXIgeworZnJpZW5kIGNsYXNzIEphdmFBcnJheTsKK2ZyaWVuZCBjbGFzcyBKYXZhRmllbGQ7Citm
cmllbmQgY2xhc3MgSmF2YUluc3RhbmNlOworCitwdWJsaWM6CisgICAgam9iamVjdCBpbnN0YW5j
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5zdGFuY2U7IH0KKyAgICB2b2lkIHNldEluc3RhbmNlKGpv
YmplY3QgaW5zdGFuY2UpIHsgbV9pbnN0YW5jZSA9IGluc3RhbmNlOyB9CisKKyAgICB2b2lkIHJl
ZigpIHsgbV9yZWZDb3VudCsrOyB9CisgICAgdm9pZCBkZXJlZigpCisgICAgeworICAgICAgICBp
ZiAoISgtLW1fcmVmQ291bnQpKQorICAgICAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCitw
cm90ZWN0ZWQ6CisgICAgSm9iamVjdFdyYXBwZXIoam9iamVjdCk7CisgICAgfkpvYmplY3RXcmFw
cGVyKCk7CisKKyAgICBqb2JqZWN0IG1faW5zdGFuY2U7CisKK3ByaXZhdGU6CisgICAgSk5JRW52
KiBtX2VudjsKKyAgICB1bnNpZ25lZCBpbnQgbV9yZWZDb3VudDsKK307CisKK30gLy8gbmFtZXNw
YWNlIEJpbmRpbmdzCisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKEpB
VkFfQlJJREdFKQorCisjZW5kaWYgLy8gSm9iamVjdFdyYXBwZXJfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0pOSUJyaWRnZUpTQy5jcHAKaW5kZXggZjRkYWIyMC4uOGY0NWI1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlND
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KTklCcmlkZ2VKU0MuY3Bw
CkBAIC0zMCw2ICszMCw3IEBACiAjaWYgRU5BQkxFKEpBVkFfQlJJREdFKQogCiAjaW5jbHVkZSAi
Sk5JVXRpbGl0eVByaXZhdGUuaCIKKyNpbmNsdWRlICJKb2JqZWN0V3JhcHBlci5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJydW50aW1lX2FycmF5LmgiCiAjaW5jbHVkZSAicnVu
dGltZV9vYmplY3QuaCIKQEAgLTU3LDcgKzU4LDcgQEAgSmF2YUZpZWxkOjpKYXZhRmllbGQoSk5J
RW52KiBlbnYsIGpvYmplY3QgYUZpZWxkKQogICAgICAgICBmaWVsZE5hbWUgPSBlbnYtPk5ld1N0
cmluZ1VURigiPFVua25vd24+Iik7CiAgICAgbV9uYW1lID0gSmF2YVN0cmluZyhlbnYsIGZpZWxk
TmFtZSk7CiAKLSAgICBtX2ZpZWxkID0gbmV3IEpPYmplY3RXcmFwcGVyKGFGaWVsZCk7CisgICAg
bV9maWVsZCA9IG5ldyBKb2JqZWN0V3JhcHBlcihhRmllbGQpOwogfQogCiBKU1ZhbHVlIEphdmFB
cnJheTo6Y29udmVydEpPYmplY3RUb0FycmF5KEV4ZWNTdGF0ZSogZXhlYywgam9iamVjdCBhbk9i
amVjdCwgY29uc3QgY2hhciogdHlwZSwgUGFzc1JlZlB0cjxSb290T2JqZWN0PiByb290T2JqZWN0
KQpAQCAtMjUxLDcgKzI1Miw3IEBAIHZvaWQgSmF2YUZpZWxkOjpzZXRWYWx1ZVRvSW5zdGFuY2Uo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJbnN0YW5jZSogaSwgSlNWYWx1ZSBhCiBKYXZhQXJyYXk6
OkphdmFBcnJheShqb2JqZWN0IGFycmF5LCBjb25zdCBjaGFyKiB0eXBlLCBQYXNzUmVmUHRyPFJv
b3RPYmplY3Q+IHJvb3RPYmplY3QpCiAgICAgOiBBcnJheShyb290T2JqZWN0KQogewotICAgIG1f
YXJyYXkgPSBuZXcgSk9iamVjdFdyYXBwZXIoYXJyYXkpOworICAgIG1fYXJyYXkgPSBuZXcgSm9i
amVjdFdyYXBwZXIoYXJyYXkpOwogICAgIC8vIEphdmEgYXJyYXkgYXJlIGZpeGVkIGxlbmd0aCwg
c28gd2UgY2FuIGNhY2hlIGxlbmd0aC4KICAgICBKTklFbnYqIGVudiA9IGdldEpOSUVudigpOwog
ICAgIG1fbGVuZ3RoID0gZW52LT5HZXRBcnJheUxlbmd0aChzdGF0aWNfY2FzdDxqYXJyYXk+KG1f
YXJyYXktPm1faW5zdGFuY2UpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9q
bmkvanNjL0pOSUJyaWRnZUpTQy5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5J
QnJpZGdlSlNDLmgKaW5kZXggYzM3NmJiOS4uMTRkMDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJCcmlkZ2VKU0MuaCIKICNpbmNsdWRlICJKTklCcmlkZ2UuaCIKICNpbmNsdWRlICJKTklVdGls
aXR5LmgiCisjaW5jbHVkZSAiSm9iamVjdFdyYXBwZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAK
QEAgLTU2LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBKYXZhU3RyaW5nIG1fbmFtZTsKICAgICBK
YXZhU3RyaW5nIG1fdHlwZTsKICAgICBKTklUeXBlIG1fSk5JVHlwZTsKLSAgICBSZWZQdHI8Sk9i
amVjdFdyYXBwZXI+IG1fZmllbGQ7CisgICAgUmVmUHRyPEpvYmplY3RXcmFwcGVyPiBtX2ZpZWxk
OwogfTsKIAogY2xhc3MgSmF2YUFycmF5IDogcHVibGljIEFycmF5IHsKQEAgLTc1LDcgKzc2LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBKU1ZhbHVlIGNvbnZlcnRKT2JqZWN0VG9BcnJheShFeGVj
U3RhdGUqLCBqb2JqZWN0LCBjb25zdCBjaGFyKiB0eXBlLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+
KTsKIAogcHJpdmF0ZToKLSAgICBSZWZQdHI8Sk9iamVjdFdyYXBwZXI+IG1fYXJyYXk7CisgICAg
UmVmUHRyPEpvYmplY3RXcmFwcGVyPiBtX2FycmF5OwogICAgIHVuc2lnbmVkIGludCBtX2xlbmd0
aDsKICAgICBjb25zdCBjaGFyKiBtX3R5cGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKaW5kZXggMGI4OWM0OC4uNjI0ZGE3ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlND
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0Mu
Y3BwCkBAIC01MSw3ICs1MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogSmF2YUluc3Rh
bmNlOjpKYXZhSW5zdGFuY2Uoam9iamVjdCBpbnN0YW5jZSwgUGFzc1JlZlB0cjxSb290T2JqZWN0
PiByb290T2JqZWN0KQogICAgIDogSW5zdGFuY2Uocm9vdE9iamVjdCkKIHsKLSAgICBtX2luc3Rh
bmNlID0gbmV3IEpPYmplY3RXcmFwcGVyKGluc3RhbmNlKTsKKyAgICBtX2luc3RhbmNlID0gbmV3
IEpvYmplY3RXcmFwcGVyKGluc3RhbmNlKTsKICAgICBtX2NsYXNzID0gMDsKIH0KIApAQCAtMzY2
LDI3ICszNjYsNCBAQCBKU1ZhbHVlIEphdmFJbnN0YW5jZTo6dmFsdWVPZihFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CiAgICAgcmV0dXJuIHN0cmluZ1ZhbHVlKGV4ZWMpOwogfQogCi1KT2JqZWN0V3Jh
cHBlcjo6Sk9iamVjdFdyYXBwZXIoam9iamVjdCBpbnN0YW5jZSkKLSAgICA6IG1fcmVmQ291bnQo
MCkKLXsKLSAgICBBU1NFUlQoaW5zdGFuY2UpOwotCi0gICAgLy8gQ2FjaGUgdGhlIEpOSUVudiB1
c2VkIHRvIGdldCB0aGUgZ2xvYmFsIHJlZiBmb3IgdGhpcyBqYXZhIGluc3RhbmNlLgotICAgIC8v
IEl0J2xsIGJlIHVzZWQgdG8gZGVsZXRlIHRoZSByZWZlcmVuY2UuCi0gICAgbV9lbnYgPSBnZXRK
TklFbnYoKTsKLQotICAgIG1faW5zdGFuY2UgPSBtX2Vudi0+TmV3R2xvYmFsUmVmKGluc3RhbmNl
KTsKLQotICAgIExPRyhMaXZlQ29ubmVjdCwgIkpPYmplY3RXcmFwcGVyIGN0b3IgbmV3IGdsb2Jh
bCByZWYgJXAgZm9yICVwIiwgbV9pbnN0YW5jZSwgaW5zdGFuY2UpOwotCi0gICAgaWYgKCFtX2lu
c3RhbmNlKQotICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBnZXQgR2xvYmFsUmVmIGZvciAl
cCIsIGluc3RhbmNlKTsKLX0KLQotSk9iamVjdFdyYXBwZXI6On5KT2JqZWN0V3JhcHBlcigpCi17
Ci0gICAgTE9HKExpdmVDb25uZWN0LCAiSk9iamVjdFdyYXBwZXIgZHRvciBkZWxldGluZyBnbG9i
YWwgcmVmICVwIiwgbV9pbnN0YW5jZSk7Ci0gICAgbV9lbnYtPkRlbGV0ZUdsb2JhbFJlZihtX2lu
c3RhbmNlKTsKLX0KLQogI2VuZGlmIC8vIEVOQUJMRShKQVZBX0JSSURHRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5oIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmgKaW5kZXggNzY5MGNlZS4u
OTM3ZTQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUlu
c3RhbmNlSlNDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3Rh
bmNlSlNDLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkJyaWRnZUpTQy5oIgogI2lu
Y2x1ZGUgIkpOSVV0aWxpdHkuaCIKKyNpbmNsdWRlICJKb2JqZWN0V3JhcHBlci5oIgogI2luY2x1
ZGUgInJ1bnRpbWVfcm9vdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM4LDM1ICszOSw2IEBA
IG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAKIGNsYXNzIEphdmFDbGFzczsKIAotY2xhc3MgSk9iamVj
dFdyYXBwZXIgewotZnJpZW5kIGNsYXNzIFJlZlB0cjxKT2JqZWN0V3JhcHBlcj47Ci1mcmllbmQg
Y2xhc3MgSmF2YUFycmF5OwotZnJpZW5kIGNsYXNzIEphdmFGaWVsZDsKLWZyaWVuZCBjbGFzcyBK
YXZhSW5zdGFuY2U7Ci1mcmllbmQgY2xhc3MgSmF2YU1ldGhvZDsKLQotcHVibGljOgotICAgIGpv
YmplY3QgaW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBtX2luc3RhbmNlOyB9Ci0gICAgdm9pZCBz
ZXRJbnN0YW5jZShqb2JqZWN0IGluc3RhbmNlKSB7IG1faW5zdGFuY2UgPSBpbnN0YW5jZTsgfQot
Ci0gICAgdm9pZCByZWYoKSB7IG1fcmVmQ291bnQrKzsgfQotICAgIHZvaWQgZGVyZWYoKQotICAg
IHsKLSAgICAgICAgaWYgKCEoLS1tX3JlZkNvdW50KSkKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlz
OwotICAgIH0KLQotcHJvdGVjdGVkOgotICAgIEpPYmplY3RXcmFwcGVyKGpvYmplY3QgaW5zdGFu
Y2UpOwotICAgIH5KT2JqZWN0V3JhcHBlcigpOwotCi0gICAgam9iamVjdCBtX2luc3RhbmNlOwot
Ci1wcml2YXRlOgotICAgIEpOSUVudiogbV9lbnY7Ci0gICAgdW5zaWduZWQgaW50IG1fcmVmQ291
bnQ7Ci19OwotCiBjbGFzcyBKYXZhSW5zdGFuY2UgOiBwdWJsaWMgSW5zdGFuY2UgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4gY3JlYXRlKGpvYmplY3QgaW5z
dGFuY2UsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdE9iamVjdCkKQEAgLTk4LDcgKzcwLDcg
QEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB2aXJ0dWFsQmVnaW4oKTsKICAgICB2aXJ0
dWFsIHZvaWQgdmlydHVhbEVuZCgpOwogCi0gICAgUmVmUHRyPEpPYmplY3RXcmFwcGVyPiBtX2lu
c3RhbmNlOworICAgIFJlZlB0cjxKb2JqZWN0V3JhcHBlcj4gbV9pbnN0YW5jZTsKICAgICBtdXRh
YmxlIEphdmFDbGFzcyogbV9jbGFzczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvdjgvSm9iamVjdFdyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS92OC9Kb2JqZWN0V3JhcHBlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGUwN2ZkODIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9Kb2Jq
ZWN0V3JhcHBlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IDIwMTEsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSm9iamVjdFdyYXBwZXIuaCIKLQotI2lmIEVOQUJM
RShKQVZBX0JSSURHRSkKLQotI2luY2x1ZGUgPGFzc2VydC5oPgotCi11c2luZyBuYW1lc3BhY2Ug
SlNDOjpCaW5kaW5nczsKLQotSm9iamVjdFdyYXBwZXI6OkpvYmplY3RXcmFwcGVyKGpvYmplY3Qg
aW5zdGFuY2UpCi0gICAgOiBtX3JlZkNvdW50KDApCi17Ci0gICAgYXNzZXJ0KGluc3RhbmNlKTsK
LQotICAgIC8vIENhY2hlIHRoZSBKTklFbnYgdXNlZCB0byBnZXQgdGhlIGdsb2JhbCByZWYgZm9y
IHRoaXMgamF2YSBpbnN0YW5hY2UuCi0gICAgLy8gSXQnbGwgYmUgdXNlZCB0byBkZWxldGUgdGhl
IHJlZmVyZW5jZS4KLSAgICBtX2VudiA9IGdldEpOSUVudigpOwotCi0gICAgbV9pbnN0YW5jZSA9
IG1fZW52LT5OZXdHbG9iYWxSZWYoaW5zdGFuY2UpOwotCi0gICAgaWYgKCFtX2luc3RhbmNlKQot
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiAgY291bGQgbm90IGdldCBHbG9iYWxSZWYgZm9y
ICVwXG4iLCBfX1BSRVRUWV9GVU5DVElPTl9fLCBpbnN0YW5jZSk7Ci19Ci0KLUpvYmplY3RXcmFw
cGVyOjp+Sm9iamVjdFdyYXBwZXIoKQotewotICAgIG1fZW52LT5EZWxldGVHbG9iYWxSZWYobV9p
bnN0YW5jZSk7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSkFWQV9CUklER0UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0pvYmplY3RXcmFwcGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0pvYmplY3RXcmFwcGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGIxZGE4MzMuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS92OC9Kb2JqZWN0V3JhcHBlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAyMDExLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IE9XTkVSIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2lmbmRlZiBKb2JqZWN0V3JhcHBlcl9oCi0jZGVmaW5lIEpvYmplY3RXcmFwcGVyX2gK
LQotI2lmIEVOQUJMRShKQVZBX0JSSURHRSkKLQotI2luY2x1ZGUgIkpOSVV0aWxpdHkuaCIKLQot
bmFtZXNwYWNlIEpTQyB7Ci0KLW5hbWVzcGFjZSBCaW5kaW5ncyB7Ci0KLWNsYXNzIEpvYmplY3RX
cmFwcGVyIHsKLWZyaWVuZCBjbGFzcyBKYXZhRmllbGQ7Ci1mcmllbmQgY2xhc3MgSmF2YUluc3Rh
bmNlOwotCi1wdWJsaWM6Ci0gICAgam9iamVjdCBpbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aW5zdGFuY2U7IH0KLSAgICB2b2lkIHNldEluc3RhbmNlKGpvYmplY3QgaW5zdGFuY2UpIHsgbV9p
bnN0YW5jZSA9IGluc3RhbmNlOyB9Ci0KLSAgICB2b2lkIHJlZigpIHsgbV9yZWZDb3VudCsrOyB9
Ci0gICAgdm9pZCBkZXJlZigpCi0gICAgewotICAgICAgICBpZiAoISgtLW1fcmVmQ291bnQpKQot
ICAgICAgICAgICAgZGVsZXRlIHRoaXM7Ci0gICAgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgSm9iamVj
dFdyYXBwZXIoam9iamVjdCk7Ci0gICAgfkpvYmplY3RXcmFwcGVyKCk7Ci0KLSAgICBqb2JqZWN0
IG1faW5zdGFuY2U7Ci0KLXByaXZhdGU6Ci0gICAgSk5JRW52KiBtX2VudjsKLSAgICB1bnNpZ25l
ZCBpbnQgbV9yZWZDb3VudDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEJpbmRpbmdzCi0KLX0gLy8g
bmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFfQlJJREdFKQotI2VuZGlmIC8v
IEpvYmplY3RXcmFwcGVyX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84753</attachid>
            <date>2011-03-04 08:25:17 -0800</date>
            <delta_ts>2011-03-04 08:27:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55763-20110304162515.patch</filename>
            <type>text/plain</type>
            <size>14619</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAzNDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQuanNjYmluZGluZ3MubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdz
Lm1rCmluZGV4IGJmYTY3YThkMWMyMDFkZWU0ZTU1OTg0MmE0OGI0NzUzMjIxMDUzMzIuLmU1ZmY2
MDMyZDc0OTBlN2I3ODU4MzQ4YWI4OGM4YmVmNjIyZDhjMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9p
ZC5qc2NiaW5kaW5ncy5tawpAQCAtMjAwLDYgKzIwMCw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBc
CiAJYnJpZGdlL2MvY191dGlsaXR5LmNwcCBcCiAJYnJpZGdlL2puaS9KTklCcmlkZ2UuY3BwIFwK
IAlicmlkZ2Uvam5pL0pOSVV0aWxpdHkuY3BwIFwKKwlicmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVy
LmNwcCBcCiAJYnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmNwcCBcCiAJYnJpZGdlL2puaS9q
c2MvSk5JVXRpbGl0eVByaXZhdGUuY3BwIFwKIAlicmlkZ2Uvam5pL2pzYy9KYXZhQ2xhc3NKU0Mu
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tayBi
L1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tawppbmRleCAwNWZlNWYxYWYxMGIz
YTE5NTEyY2ZmMjIyMGE4MzEzMjYyMTZhZWJjLi5iMjMwMDIzODdmMjA5YTgyZWFmNWY5Y2YxZjRi
YzY2MzIwNDYwNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLnY4YmluZGlu
Z3MubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC52OGJpbmRpbmdzLm1rCkBAIC0xNzQs
NiArMTc0LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJ
YnJpZGdlL2puaS9KTklCcmlkZ2UuY3BwIFwKIAlicmlkZ2Uvam5pL0pOSVV0aWxpdHkuY3BwIFwK
KwlicmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmNwcCBcCiAJYnJpZGdlL2puaS92OC9KTklCcmlk
Z2VWOC5jcHAgXAogCWJyaWRnZS9qbmkvdjgvSk5JVXRpbGl0eVByaXZhdGUuY3BwIFwKIAlicmlk
Z2Uvam5pL3Y4L0phdmFDbGFzc1Y4LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzllODIwODBkZTRmYWJm
ZGY1YmFkMDA5ZTI0ZDFkYTMxY2ExYmIyMC4uOTRmMjgxMGFjZTMxZGU0NTQxNTdlNmEyOThjNjQ2
N2QxZTljOTY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1IEBACiAyMDExLTAzLTA0ICBTdGV2
ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU0MgYW5kIFY4IHZlcnNpb25zIG9mIEphdmEgYnJp
ZGdlIHNob3VsZCBzaGFyZSBKb2JqZWN0V3JhcHBlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTU3NjMKKworICAgICAgICBObyBuZXcgdGVzdHMsIHJl
ZmFjdG9yaW5nIG9ubHkuCisKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAg
ICAgICAqIEFuZHJvaWQudjhiaW5kaW5ncy5tazoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYnJpZGdlL2puaS9Kb2JqZWN0V3JhcHBlci5jcHA6Cisg
ICAgICAgIChKb2JqZWN0V3JhcHBlcjo6Sm9iamVjdFdyYXBwZXIpOgorICAgICAgICAoSm9iamVj
dFdyYXBwZXI6On5Kb2JqZWN0V3JhcHBlcik6CisgICAgICAgICogYnJpZGdlL2puaS9Kb2JqZWN0
V3JhcHBlci5oOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Sm9iamVjdFdyYXBwZXI6Omluc3Rh
bmNlKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkpvYmplY3RXcmFwcGVyOjpzZXRJbnN0YW5j
ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpKb2JqZWN0V3JhcHBlcjo6cmVmKToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OkpvYmplY3RXcmFwcGVyOjpkZXJlZik6CisgICAgICAgICogYnJp
ZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmNwcDoKKyAgICAgICAgKEphdmFGaWVsZDo6SmF2YUZp
ZWxkKToKKyAgICAgICAgKEphdmFBcnJheTo6SmF2YUFycmF5KToKKyAgICAgICAgKiBicmlkZ2Uv
am5pL2pzYy9KTklCcmlkZ2VKU0MuaDoKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KYXZhSW5z
dGFuY2VKU0MuY3BwOgorICAgICAgICAoSmF2YUluc3RhbmNlOjpKYXZhSW5zdGFuY2UpOgorICAg
ICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5oOgorCisyMDExLTAzLTA0ICBT
dGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBi
eSBKZXJlbXkgT3Jsb3cuCiAKICAgICAgICAgVjggdmVyc2lvbiBvZiBKYXZhU3RyaW5nIHNob3Vs
ZCBvYnRhaW4gc3RyaW5nIGZyb20gSk5JIGluIFVURi0xNiBlbmNvZGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDk0NzdjOGMyYjE3MTFjY2UyN2RkOTAwNGM0MDBhZWFkZTA1NzM0NWQuLmU4MWEzYWVl
MWI5MTRjMDk3NDI3ZGM3ODViYzQ3MWUwMjVhNzU1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEw
MTEsNiArMTAxMSw4IEBACiAgICAgICAgICAgICAnYnJpZGdlL2puaS9KTklCcmlkZ2UuaCcsCiAg
ICAgICAgICAgICAnYnJpZGdlL2puaS9KTklVdGlsaXR5LmNwcCcsCiAgICAgICAgICAgICAnYnJp
ZGdlL2puaS9KTklVdGlsaXR5LmgnLAorICAgICAgICAgICAgJ2JyaWRnZS9qbmkvSm9iamVjdFdy
YXBwZXIuY3BwJywKKyAgICAgICAgICAgICdicmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmgnLAog
ICAgICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSk5JQnJpZGdlVjguY3BwJywKICAgICAgICAgICAg
ICdicmlkZ2Uvam5pL3Y4L0pOSUJyaWRnZVY4LmgnLAogICAgICAgICAgICAgJ2JyaWRnZS9qbmkv
djgvSk5JVXRpbGl0eVByaXZhdGUuY3BwJywKQEAgLTEwMjIsOCArMTAyNCw2IEBACiAgICAgICAg
ICAgICAnYnJpZGdlL2puaS92OC9KYXZhTlBPYmplY3RWOC5jcHAnLAogICAgICAgICAgICAgJ2Jy
aWRnZS9qbmkvdjgvSmF2YU5QT2JqZWN0VjguaCcsCiAgICAgICAgICAgICAnYnJpZGdlL2puaS92
OC9KYXZhU3RyaW5nVjguaCcsCi0gICAgICAgICAgICAnYnJpZGdlL2puaS92OC9Kb2JqZWN0V3Jh
cHBlci5jcHAnLAotICAgICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSm9iamVjdFdyYXBwZXIuaCcs
CiAgICAgICAgICAgICAnY3NzL0NTU0JvcmRlckltYWdlVmFsdWUuY3BwJywKICAgICAgICAgICAg
ICdjc3MvQ1NTQm9yZGVySW1hZ2VWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvQ1NTQ2FudmFz
VmFsdWUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDgzYTdmNzcwODY0MWU3MmM2Y2ZlNDg4
NjllMjM4Y2VjNzRiZWIzYzEuLmJjOGVhM2I1ZDMwMGM2YzAzZjRjYzQzY2RkYTUyNzcyMTk4N2Fk
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMTE1MzksOCArMTE1MzksOCBAQCBfX1pON1dlYkNv
cmUxOUpTSFRNTEFwcGxldEVsZW1lbnQyNmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlRVBOM0pT
QzlFeGVjU3RhdGVFUgogX19aTks3V2ViQ29yZTE3SFRNTEFwcGxldEVsZW1lbnQyNXJlbmRlcldp
ZGdldEZvckpTQmluZGluZ3NFdgogX19aTjNKU0M4QmluZGluZ3MxMkphdmFJbnN0YW5jZUMxRVA4
X2pvYmplY3ROM1dURjEwUGFzc1JlZlB0cklOUzBfMTBSb290T2JqZWN0RUVFCiBfX1pOM0pTQzhC
aW5kaW5nczEySmF2YUluc3RhbmNlQzJFUDhfam9iamVjdE4zV1RGMTBQYXNzUmVmUHRySU5TMF8x
MFJvb3RPYmplY3RFRUUKLV9fWk4zSlNDOEJpbmRpbmdzMTRKT2JqZWN0V3JhcHBlckMxRVA4X2pv
YmplY3QKLV9fWk4zSlNDOEJpbmRpbmdzMTRKT2JqZWN0V3JhcHBlckMyRVA4X2pvYmplY3QKK19f
Wk4zSlNDOEJpbmRpbmdzMTRKb2JqZWN0V3JhcHBlckMxRVA4X2pvYmplY3QKK19fWk4zSlNDOEJp
bmRpbmdzMTRKb2JqZWN0V3JhcHBlckMyRVA4X2pvYmplY3QKIF9fWk4zSlNDOEJpbmRpbmdzOWdl
dEpOSUVudkV2CiBfX1pOM0pTQzhCaW5kaW5nczlnZXRKYXZhVk1FdgogX19aTjNKU0M4QmluZGlu
Z3NMMjBLSlNHZXRDcmVhdGVkSmF2YVZNc0VQUDdKYXZhVk1faVBpCkBAIC0xMTU4OCw4ICsxMTU4
OCw4IEBAIF9fWk4zSlNDOEJpbmRpbmdzMTJKYXZhSW5zdGFuY2VEMEV2CiBfX1pOM0pTQzhCaW5k
aW5nczlKYXZhQ2xhc3NEMEV2CiBfX1pOM1dURjIwZGVsZXRlQWxsUGFpclNlY29uZHNJUE4zSlND
OEJpbmRpbmdzNUZpZWxkRUtOU183SGFzaE1hcElOU182UmVmUHRySU43V2ViQ29yZTEwU3RyaW5n
SW1wbEVFRVM0X05TN18xMFN0cmluZ0hhc2hFTlNfMTBICiBfX1pOM0pTQzhCaW5kaW5nczlKYXZh
RmllbGREMEV2Ci1fX1pOM0pTQzhCaW5kaW5nczE0Sk9iamVjdFdyYXBwZXJEMUV2Ci1fX1pOM0pT
QzhCaW5kaW5nczE0Sk9iamVjdFdyYXBwZXJEMkV2CitfX1pOM0pTQzhCaW5kaW5nczE0Sm9iamVj
dFdyYXBwZXJEMUV2CitfX1pOM0pTQzhCaW5kaW5nczE0Sm9iamVjdFdyYXBwZXJEMkV2CiBfX1pO
M1dURjE1ZGVsZXRlQWxsVmFsdWVzSVBOM0pTQzhCaW5kaW5nczZNZXRob2RFTG0wRUVFdlJLTlNf
NlZlY3RvcklUX1hUMF9FRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTBKYXZhTWV0aG9kRDBFdgogX19a
TjNKU0M4QmluZGluZ3MxM0phdmFQYXJhbWV0ZXJEMUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDE2MzRmMDZkNjAyZWFhYjZi
ZTAyYzQzOWZjZGFkODY2ODcxODY5NC4uNDZjZGEyYTVmYjI3M2FiYTY2MzA0MTAxMjM2NjNiNjQ4
YjlhNWUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTM4MSw2ICsxMzgxLDggQEAKIAkJNTkzMDlBMTMxMUY0QUU2QTAwMjUw
NjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8qIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTU5NjIyOTc4MTEzM0VGRDcwMERDNENCQiAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTk2MjI5NzcxMTMzRUZENzAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRp
b25DYWNoZS5jcHAgKi87IH07CiAJCTU5NjIyOTdBMTEzM0VGRTIwMERDNENCQiAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU5NjIyOTc5MTEzM0VGRTIwMERDNENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9u
Q2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk1OTY5NTA4MjEzMjEwNTk5MDBDM0VEMTggLyogSm9iamVjdFdyYXBwZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5Njk1MDgxMTMyMTA1OTkwMEMz
RUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oICovOyB9OworCQk1OTY5NTA4NDEzMjEwNUE1MDBDM0VE
MTggLyogSm9iamVjdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTk2OTUwODMxMzIxMDVBNTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVy
LmNwcCAqLzsgfTsKIAkJNTk5RTc1OTAxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk5RTc1OEYxMTA1NUEx
RjAwRDkwNEZBIC8qIEJyaWRnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTU5QTg1RUEyMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU5QTg1RUExMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNw
cCAqLzsgfTsKIAkJNTlBODVFQTQxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5
QTg1RUEzMTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggKi87IH07
CkBAIC03ODQ0LDYgKzc4NDYsOCBAQAogCQk1OTMwOUExMjExRjRBRTZBMDAyNTA2MDMgLyogRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oOyBwYXRoID0gbW9jay9EZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk2MjI5
NzcxMTMzRUZENzAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTYyMjk3OTExMzNFRkUyMDBEQzRD
QkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1OTY5NTA4MTEzMjEwNTk5MDBDM0VEMTggLyogSm9iamVjdFdyYXBwZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSm9iamVjdFdyYXBwZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTk2OTUwODMxMzIxMDVBNTAwQzNFRDE4IC8qIEpvYmpl
Y3RXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpvYmpl
Y3RXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4MEIwMzMxMkVG
M0Q4NDAwREY1Rjg1IC8qIFhNTFZpZXdlci54c2wgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsgcGF0aCA9
IFhNTFZpZXdlci54c2w7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5OUU3NThGMTEw
NTVBMUYwMEQ5MDRGQSAvKiBCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQnJpZGdlLmg7IHBhdGggPSBicmlkZ2UvQnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU5QTg1RUExMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZU9yaWVu
dGF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI3MzEsNiAr
MTI3MzUsOCBAQAogCQkxQTU2OUNDRTBEN0UyQjgyMDA3QzM5ODMgLyogam5pICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1OTY5NTA4MzEzMjEwNUE1MDBD
M0VEMTggLyogSm9iamVjdFdyYXBwZXIuY3BwICovLAorCQkJCTU5Njk1MDgxMTMyMTA1OTkwMEMz
RUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oICovLAogCQkJCTFBNTY5Q0Q0MEQ3RTJCODIwMDdDMzk4
MyAvKiBqbmlfanNvYmplY3QuaCAqLywKIAkJCQkxQTU2OUNEMzBEN0UyQjgyMDA3QzM5ODMgLyog
am5pX2pzb2JqZWN0Lm1tICovLAogCQkJCTFBNTY5Q0Q1MEQ3RTJCODIwMDdDMzk4MyAvKiBqbmlf
b2JqYy5tbSAqLywKQEAgLTIyNTE5LDYgKzIyNTI1LDcgQEAKIAkJCQk1QTU3NEYyOTEzMURCOTZE
MDA0NzFCODggLyogUXVvdGVzRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzM5QjVCNjMxMzFE
QUEzMjAwRjQ4RDAyIC8qIENvb2tpZXNTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzNE
MDIxMkQxMzFEQjM3QjAwNDA5MUE4IC8qIENvb2tpZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAor
CQkJCTU5Njk1MDgyMTMyMTA1OTkwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkBAIC0yNTE2OCw2ICsyNTE3NSw3IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEz
Mzc5IC8qIFhTU0ZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QTU3NEYyNDEzMURCOTM5
MDA0NzFCODggLyogUmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUE1NzRGMjgx
MzFEQjk2RDAwNDcxQjg4IC8qIFF1b3Rlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTk2
OTUwODQxMzIxMDVBNTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlND
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pOSUJyaWRnZUpTQy5jcHAKaW5k
ZXggZjRkYWIyMDMyOTUyYTlkOTk0OTU4MzNhMGVkN2Q5MDU1NWEzZTkyNy4uOGY0NWI1YWU3ZTA4
NmM3MjlmN2RjNDdjYjAyNGI0MDU5ZDMwMDY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL2pzYy9KTklCcmlkZ2VKU0MuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaWYgRU5BQkxF
KEpBVkFfQlJJREdFKQogCiAjaW5jbHVkZSAiSk5JVXRpbGl0eVByaXZhdGUuaCIKKyNpbmNsdWRl
ICJKb2JqZWN0V3JhcHBlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJydW50
aW1lX2FycmF5LmgiCiAjaW5jbHVkZSAicnVudGltZV9vYmplY3QuaCIKQEAgLTU3LDcgKzU4LDcg
QEAgSmF2YUZpZWxkOjpKYXZhRmllbGQoSk5JRW52KiBlbnYsIGpvYmplY3QgYUZpZWxkKQogICAg
ICAgICBmaWVsZE5hbWUgPSBlbnYtPk5ld1N0cmluZ1VURigiPFVua25vd24+Iik7CiAgICAgbV9u
YW1lID0gSmF2YVN0cmluZyhlbnYsIGZpZWxkTmFtZSk7CiAKLSAgICBtX2ZpZWxkID0gbmV3IEpP
YmplY3RXcmFwcGVyKGFGaWVsZCk7CisgICAgbV9maWVsZCA9IG5ldyBKb2JqZWN0V3JhcHBlcihh
RmllbGQpOwogfQogCiBKU1ZhbHVlIEphdmFBcnJheTo6Y29udmVydEpPYmplY3RUb0FycmF5KEV4
ZWNTdGF0ZSogZXhlYywgam9iamVjdCBhbk9iamVjdCwgY29uc3QgY2hhciogdHlwZSwgUGFzc1Jl
ZlB0cjxSb290T2JqZWN0PiByb290T2JqZWN0KQpAQCAtMjUxLDcgKzI1Miw3IEBAIHZvaWQgSmF2
YUZpZWxkOjpzZXRWYWx1ZVRvSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJbnN0YW5j
ZSogaSwgSlNWYWx1ZSBhCiBKYXZhQXJyYXk6OkphdmFBcnJheShqb2JqZWN0IGFycmF5LCBjb25z
dCBjaGFyKiB0eXBlLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3RPYmplY3QpCiAgICAgOiBB
cnJheShyb290T2JqZWN0KQogewotICAgIG1fYXJyYXkgPSBuZXcgSk9iamVjdFdyYXBwZXIoYXJy
YXkpOworICAgIG1fYXJyYXkgPSBuZXcgSm9iamVjdFdyYXBwZXIoYXJyYXkpOwogICAgIC8vIEph
dmEgYXJyYXkgYXJlIGZpeGVkIGxlbmd0aCwgc28gd2UgY2FuIGNhY2hlIGxlbmd0aC4KICAgICBK
TklFbnYqIGVudiA9IGdldEpOSUVudigpOwogICAgIG1fbGVuZ3RoID0gZW52LT5HZXRBcnJheUxl
bmd0aChzdGF0aWNfY2FzdDxqYXJyYXk+KG1fYXJyYXktPm1faW5zdGFuY2UpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pOSUJyaWRnZUpTQy5oIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmgKaW5kZXggYzM3NmJiOTc1ZjUy
NWI4ZThhNzk5YzU4ZTM5ZjhkZmVkNzkzYzZkZS4uMTRkMDZhZDhkOWU3MDM4NTQ0NDU1NTIxZTll
Njg5ZGMzZTY2MzgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2Mv
Sk5JQnJpZGdlSlNDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JQnJp
ZGdlSlNDLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJCcmlkZ2VKU0MuaCIKICNpbmNs
dWRlICJKTklCcmlkZ2UuaCIKICNpbmNsdWRlICJKTklVdGlsaXR5LmgiCisjaW5jbHVkZSAiSm9i
amVjdFdyYXBwZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTU2LDcgKzU3LDcgQEAgcHJp
dmF0ZToKICAgICBKYXZhU3RyaW5nIG1fbmFtZTsKICAgICBKYXZhU3RyaW5nIG1fdHlwZTsKICAg
ICBKTklUeXBlIG1fSk5JVHlwZTsKLSAgICBSZWZQdHI8Sk9iamVjdFdyYXBwZXI+IG1fZmllbGQ7
CisgICAgUmVmUHRyPEpvYmplY3RXcmFwcGVyPiBtX2ZpZWxkOwogfTsKIAogY2xhc3MgSmF2YUFy
cmF5IDogcHVibGljIEFycmF5IHsKQEAgLTc1LDcgKzc2LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBKU1ZhbHVlIGNvbnZlcnRKT2JqZWN0VG9BcnJheShFeGVjU3RhdGUqLCBqb2JqZWN0LCBjb25z
dCBjaGFyKiB0eXBlLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+KTsKIAogcHJpdmF0ZToKLSAgICBS
ZWZQdHI8Sk9iamVjdFdyYXBwZXI+IG1fYXJyYXk7CisgICAgUmVmUHRyPEpvYmplY3RXcmFwcGVy
PiBtX2FycmF5OwogICAgIHVuc2lnbmVkIGludCBtX2xlbmd0aDsKICAgICBjb25zdCBjaGFyKiBt
X3R5cGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2
YUluc3RhbmNlSlNDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0
YW5jZUpTQy5jcHAKaW5kZXggMGI4OWM0ODVlMTYyYWFkZDZkMTJmOTE4MmIzYWE2MDNkMTIyZjBk
OC4uNjI0ZGE3ZDA4M2Q1OTVhODEyZGI4NmU1ZTJjM2E5M2NiZjA2NTQxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCkBAIC01MSw3
ICs1MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogSmF2YUluc3RhbmNlOjpKYXZhSW5z
dGFuY2Uoam9iamVjdCBpbnN0YW5jZSwgUGFzc1JlZlB0cjxSb290T2JqZWN0PiByb290T2JqZWN0
KQogICAgIDogSW5zdGFuY2Uocm9vdE9iamVjdCkKIHsKLSAgICBtX2luc3RhbmNlID0gbmV3IEpP
YmplY3RXcmFwcGVyKGluc3RhbmNlKTsKKyAgICBtX2luc3RhbmNlID0gbmV3IEpvYmplY3RXcmFw
cGVyKGluc3RhbmNlKTsKICAgICBtX2NsYXNzID0gMDsKIH0KIApAQCAtMzY2LDI3ICszNjYsNCBA
QCBKU1ZhbHVlIEphdmFJbnN0YW5jZTo6dmFsdWVPZihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAg
ICAgcmV0dXJuIHN0cmluZ1ZhbHVlKGV4ZWMpOwogfQogCi1KT2JqZWN0V3JhcHBlcjo6Sk9iamVj
dFdyYXBwZXIoam9iamVjdCBpbnN0YW5jZSkKLSAgICA6IG1fcmVmQ291bnQoMCkKLXsKLSAgICBB
U1NFUlQoaW5zdGFuY2UpOwotCi0gICAgLy8gQ2FjaGUgdGhlIEpOSUVudiB1c2VkIHRvIGdldCB0
aGUgZ2xvYmFsIHJlZiBmb3IgdGhpcyBqYXZhIGluc3RhbmNlLgotICAgIC8vIEl0J2xsIGJlIHVz
ZWQgdG8gZGVsZXRlIHRoZSByZWZlcmVuY2UuCi0gICAgbV9lbnYgPSBnZXRKTklFbnYoKTsKLQot
ICAgIG1faW5zdGFuY2UgPSBtX2Vudi0+TmV3R2xvYmFsUmVmKGluc3RhbmNlKTsKLQotICAgIExP
RyhMaXZlQ29ubmVjdCwgIkpPYmplY3RXcmFwcGVyIGN0b3IgbmV3IGdsb2JhbCByZWYgJXAgZm9y
ICVwIiwgbV9pbnN0YW5jZSwgaW5zdGFuY2UpOwotCi0gICAgaWYgKCFtX2luc3RhbmNlKQotICAg
ICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBnZXQgR2xvYmFsUmVmIGZvciAlcCIsIGluc3RhbmNl
KTsKLX0KLQotSk9iamVjdFdyYXBwZXI6On5KT2JqZWN0V3JhcHBlcigpCi17Ci0gICAgTE9HKExp
dmVDb25uZWN0LCAiSk9iamVjdFdyYXBwZXIgZHRvciBkZWxldGluZyBnbG9iYWwgcmVmICVwIiwg
bV9pbnN0YW5jZSk7Ci0gICAgbV9lbnYtPkRlbGV0ZUdsb2JhbFJlZihtX2luc3RhbmNlKTsKLX0K
LQogI2VuZGlmIC8vIEVOQUJMRShKQVZBX0JSSURHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5oIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmgKaW5kZXggNzY5MGNlZTUzYmE0NGJlMDliMGI5
ZWFkODVlODg4NzQzNjQ1NTE3NC4uOTM3ZTQ5YzQ5Y2VjZTQ3NDI5MmQ3MjVkM2MwZDg2ZTMxZDg2
MWVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3Rh
bmNlSlNDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNl
SlNDLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkJyaWRnZUpTQy5oIgogI2luY2x1
ZGUgIkpOSVV0aWxpdHkuaCIKKyNpbmNsdWRlICJKb2JqZWN0V3JhcHBlci5oIgogI2luY2x1ZGUg
InJ1bnRpbWVfcm9vdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM4LDM1ICszOSw2IEBAIG5h
bWVzcGFjZSBCaW5kaW5ncyB7CiAKIGNsYXNzIEphdmFDbGFzczsKIAotY2xhc3MgSk9iamVjdFdy
YXBwZXIgewotZnJpZW5kIGNsYXNzIFJlZlB0cjxKT2JqZWN0V3JhcHBlcj47Ci1mcmllbmQgY2xh
c3MgSmF2YUFycmF5OwotZnJpZW5kIGNsYXNzIEphdmFGaWVsZDsKLWZyaWVuZCBjbGFzcyBKYXZh
SW5zdGFuY2U7Ci1mcmllbmQgY2xhc3MgSmF2YU1ldGhvZDsKLQotcHVibGljOgotICAgIGpvYmpl
Y3QgaW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBtX2luc3RhbmNlOyB9Ci0gICAgdm9pZCBzZXRJ
bnN0YW5jZShqb2JqZWN0IGluc3RhbmNlKSB7IG1faW5zdGFuY2UgPSBpbnN0YW5jZTsgfQotCi0g
ICAgdm9pZCByZWYoKSB7IG1fcmVmQ291bnQrKzsgfQotICAgIHZvaWQgZGVyZWYoKQotICAgIHsK
LSAgICAgICAgaWYgKCEoLS1tX3JlZkNvdW50KSkKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzOwot
ICAgIH0KLQotcHJvdGVjdGVkOgotICAgIEpPYmplY3RXcmFwcGVyKGpvYmplY3QgaW5zdGFuY2Up
OwotICAgIH5KT2JqZWN0V3JhcHBlcigpOwotCi0gICAgam9iamVjdCBtX2luc3RhbmNlOwotCi1w
cml2YXRlOgotICAgIEpOSUVudiogbV9lbnY7Ci0gICAgdW5zaWduZWQgaW50IG1fcmVmQ291bnQ7
Ci19OwotCiBjbGFzcyBKYXZhSW5zdGFuY2UgOiBwdWJsaWMgSW5zdGFuY2UgewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4gY3JlYXRlKGpvYmplY3QgaW5zdGFu
Y2UsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdE9iamVjdCkKQEAgLTk4LDcgKzcwLDcgQEAg
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB2aXJ0dWFsQmVnaW4oKTsKICAgICB2aXJ0dWFs
IHZvaWQgdmlydHVhbEVuZCgpOwogCi0gICAgUmVmUHRyPEpPYmplY3RXcmFwcGVyPiBtX2luc3Rh
bmNlOworICAgIFJlZlB0cjxKb2JqZWN0V3JhcHBlcj4gbV9pbnN0YW5jZTsKICAgICBtdXRhYmxl
IEphdmFDbGFzcyogbV9jbGFzczsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84754</attachid>
            <date>2011-03-04 08:27:16 -0800</date>
            <delta_ts>2011-03-04 10:40:48 -0800</delta_ts>
            <desc>Patch 4</desc>
            <filename>shareJobjectWrapper.txt</filename>
            <type>text/plain</type>
            <size>23383</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAzNDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQuanNjYmluZGluZ3MubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdz
Lm1rCmluZGV4IGJmYTY3YTguLmU1ZmY2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5k
aW5ncy5tawpAQCAtMjAwLDYgKzIwMCw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYnJpZGdl
L2MvY191dGlsaXR5LmNwcCBcCiAJYnJpZGdlL2puaS9KTklCcmlkZ2UuY3BwIFwKIAlicmlkZ2Uv
am5pL0pOSVV0aWxpdHkuY3BwIFwKKwlicmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmNwcCBcCiAJ
YnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmNwcCBcCiAJYnJpZGdlL2puaS9qc2MvSk5JVXRp
bGl0eVByaXZhdGUuY3BwIFwKIAlicmlkZ2Uvam5pL2pzYy9KYXZhQ2xhc3NKU0MuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tayBiL1NvdXJjZS9X
ZWJDb3JlL0FuZHJvaWQudjhiaW5kaW5ncy5tawppbmRleCAwNWZlNWYxLi5iMjMwMDIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLnY4YmluZGluZ3MubWsKKysrIGIvU291cmNl
L1dlYkNvcmUvQW5kcm9pZC52OGJpbmRpbmdzLm1rCkBAIC0xNzQsNiArMTc0LDcgQEAgTE9DQUxf
U1JDX0ZJTEVTICs9IFwKIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYnJpZGdlL2puaS9KTklCcmlk
Z2UuY3BwIFwKIAlicmlkZ2Uvam5pL0pOSVV0aWxpdHkuY3BwIFwKKwlicmlkZ2Uvam5pL0pvYmpl
Y3RXcmFwcGVyLmNwcCBcCiAJYnJpZGdlL2puaS92OC9KTklCcmlkZ2VWOC5jcHAgXAogCWJyaWRn
ZS9qbmkvdjgvSk5JVXRpbGl0eVByaXZhdGUuY3BwIFwKIAlicmlkZ2Uvam5pL3Y4L0phdmFDbGFz
c1Y4LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzllODIwOC4uOTRmMjgxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDM1IEBACiAyMDExLTAzLTA0ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xl
LmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBK
U0MgYW5kIFY4IHZlcnNpb25zIG9mIEphdmEgYnJpZGdlIHNob3VsZCBzaGFyZSBKb2JqZWN0V3Jh
cHBlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTU3
NjMKKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yaW5nIG9ubHkuCisKKyAgICAgICAg
KiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIEFuZHJvaWQudjhiaW5kaW5ncy5t
azoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnJp
ZGdlL2puaS9Kb2JqZWN0V3JhcHBlci5jcHA6CisgICAgICAgIChKb2JqZWN0V3JhcHBlcjo6Sm9i
amVjdFdyYXBwZXIpOgorICAgICAgICAoSm9iamVjdFdyYXBwZXI6On5Kb2JqZWN0V3JhcHBlcik6
CisgICAgICAgICogYnJpZGdlL2puaS9Kb2JqZWN0V3JhcHBlci5oOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6Sm9iamVjdFdyYXBwZXI6Omluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6QmluZGlu
Z3M6OkpvYmplY3RXcmFwcGVyOjpzZXRJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdz
OjpKb2JqZWN0V3JhcHBlcjo6cmVmKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OkpvYmplY3RX
cmFwcGVyOjpkZXJlZik6CisgICAgICAgICogYnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmNw
cDoKKyAgICAgICAgKEphdmFGaWVsZDo6SmF2YUZpZWxkKToKKyAgICAgICAgKEphdmFBcnJheTo6
SmF2YUFycmF5KToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KTklCcmlkZ2VKU0MuaDoKKyAg
ICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwOgorICAgICAgICAoSmF2
YUluc3RhbmNlOjpKYXZhSW5zdGFuY2UpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFJ
bnN0YW5jZUpTQy5oOgorCisyMDExLTAzLTA0ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29v
Z2xlLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCiAKICAgICAgICAg
VjggdmVyc2lvbiBvZiBKYXZhU3RyaW5nIHNob3VsZCBvYnRhaW4gc3RyaW5nIGZyb20gSk5JIGlu
IFVURi0xNiBlbmNvZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDk0NzdjOGMuLmU4MWEzYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTEwMTEsNiArMTAxMSw4IEBACiAgICAgICAgICAgICAnYnJpZGdl
L2puaS9KTklCcmlkZ2UuaCcsCiAgICAgICAgICAgICAnYnJpZGdlL2puaS9KTklVdGlsaXR5LmNw
cCcsCiAgICAgICAgICAgICAnYnJpZGdlL2puaS9KTklVdGlsaXR5LmgnLAorICAgICAgICAgICAg
J2JyaWRnZS9qbmkvSm9iamVjdFdyYXBwZXIuY3BwJywKKyAgICAgICAgICAgICdicmlkZ2Uvam5p
L0pvYmplY3RXcmFwcGVyLmgnLAogICAgICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSk5JQnJpZGdl
VjguY3BwJywKICAgICAgICAgICAgICdicmlkZ2Uvam5pL3Y4L0pOSUJyaWRnZVY4LmgnLAogICAg
ICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSk5JVXRpbGl0eVByaXZhdGUuY3BwJywKQEAgLTEwMjIs
OCArMTAyNCw2IEBACiAgICAgICAgICAgICAnYnJpZGdlL2puaS92OC9KYXZhTlBPYmplY3RWOC5j
cHAnLAogICAgICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSmF2YU5QT2JqZWN0VjguaCcsCiAgICAg
ICAgICAgICAnYnJpZGdlL2puaS92OC9KYXZhU3RyaW5nVjguaCcsCi0gICAgICAgICAgICAnYnJp
ZGdlL2puaS92OC9Kb2JqZWN0V3JhcHBlci5jcHAnLAotICAgICAgICAgICAgJ2JyaWRnZS9qbmkv
djgvSm9iamVjdFdyYXBwZXIuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU0JvcmRlckltYWdlVmFs
dWUuY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTQm9yZGVySW1hZ2VWYWx1ZS5oJywKICAgICAg
ICAgICAgICdjc3MvQ1NTQ2FudmFzVmFsdWUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDgz
YTdmNzcuLmJjOGVhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMTE1MzksOCArMTE1MzksOCBA
QCBfX1pON1dlYkNvcmUxOUpTSFRNTEFwcGxldEVsZW1lbnQyNmdldE93blByb3BlcnR5U2xvdERl
bGVnYXRlRVBOM0pTQzlFeGVjU3RhdGVFUgogX19aTks3V2ViQ29yZTE3SFRNTEFwcGxldEVsZW1l
bnQyNXJlbmRlcldpZGdldEZvckpTQmluZGluZ3NFdgogX19aTjNKU0M4QmluZGluZ3MxMkphdmFJ
bnN0YW5jZUMxRVA4X2pvYmplY3ROM1dURjEwUGFzc1JlZlB0cklOUzBfMTBSb290T2JqZWN0RUVF
CiBfX1pOM0pTQzhCaW5kaW5nczEySmF2YUluc3RhbmNlQzJFUDhfam9iamVjdE4zV1RGMTBQYXNz
UmVmUHRySU5TMF8xMFJvb3RPYmplY3RFRUUKLV9fWk4zSlNDOEJpbmRpbmdzMTRKT2JqZWN0V3Jh
cHBlckMxRVA4X2pvYmplY3QKLV9fWk4zSlNDOEJpbmRpbmdzMTRKT2JqZWN0V3JhcHBlckMyRVA4
X2pvYmplY3QKK19fWk4zSlNDOEJpbmRpbmdzMTRKb2JqZWN0V3JhcHBlckMxRVA4X2pvYmplY3QK
K19fWk4zSlNDOEJpbmRpbmdzMTRKb2JqZWN0V3JhcHBlckMyRVA4X2pvYmplY3QKIF9fWk4zSlND
OEJpbmRpbmdzOWdldEpOSUVudkV2CiBfX1pOM0pTQzhCaW5kaW5nczlnZXRKYXZhVk1FdgogX19a
TjNKU0M4QmluZGluZ3NMMjBLSlNHZXRDcmVhdGVkSmF2YVZNc0VQUDdKYXZhVk1faVBpCkBAIC0x
MTU4OCw4ICsxMTU4OCw4IEBAIF9fWk4zSlNDOEJpbmRpbmdzMTJKYXZhSW5zdGFuY2VEMEV2CiBf
X1pOM0pTQzhCaW5kaW5nczlKYXZhQ2xhc3NEMEV2CiBfX1pOM1dURjIwZGVsZXRlQWxsUGFpclNl
Y29uZHNJUE4zSlNDOEJpbmRpbmdzNUZpZWxkRUtOU183SGFzaE1hcElOU182UmVmUHRySU43V2Vi
Q29yZTEwU3RyaW5nSW1wbEVFRVM0X05TN18xMFN0cmluZ0hhc2hFTlNfMTBICiBfX1pOM0pTQzhC
aW5kaW5nczlKYXZhRmllbGREMEV2Ci1fX1pOM0pTQzhCaW5kaW5nczE0Sk9iamVjdFdyYXBwZXJE
MUV2Ci1fX1pOM0pTQzhCaW5kaW5nczE0Sk9iamVjdFdyYXBwZXJEMkV2CitfX1pOM0pTQzhCaW5k
aW5nczE0Sm9iamVjdFdyYXBwZXJEMUV2CitfX1pOM0pTQzhCaW5kaW5nczE0Sm9iamVjdFdyYXBw
ZXJEMkV2CiBfX1pOM1dURjE1ZGVsZXRlQWxsVmFsdWVzSVBOM0pTQzhCaW5kaW5nczZNZXRob2RF
TG0wRUVFdlJLTlNfNlZlY3RvcklUX1hUMF9FRUUKIF9fWk4zSlNDOEJpbmRpbmdzMTBKYXZhTWV0
aG9kRDBFdgogX19aTjNKU0M4QmluZGluZ3MxM0phdmFQYXJhbWV0ZXJEMUV2CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDE2MzRm
MC4uNDZjZGEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTM4MSw2ICsxMzgxLDggQEAKIAkJNTkzMDlBMTMxMUY0QUU2QTAw
MjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8q
IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU5NjIyOTc4MTEzM0VGRDcwMERDNENCQiAvKiBHZW9s
b2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTk2MjI5NzcxMTMzRUZENzAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9z
aXRpb25DYWNoZS5jcHAgKi87IH07CiAJCTU5NjIyOTdBMTEzM0VGRTIwMERDNENCQiAvKiBHZW9s
b2NhdGlvblBvc2l0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU5NjIyOTc5MTEzM0VGRTIwMERDNENCQiAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk1OTY5NTA4MjEzMjEwNTk5MDBDM0VEMTggLyogSm9iamVjdFdyYXBwZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5Njk1MDgxMTMyMTA1OTkw
MEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oICovOyB9OworCQk1OTY5NTA4NDEzMjEwNUE1MDBD
M0VEMTggLyogSm9iamVjdFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTk2OTUwODMxMzIxMDVBNTAwQzNFRDE4IC8qIEpvYmplY3RXcmFw
cGVyLmNwcCAqLzsgfTsKIAkJNTk5RTc1OTAxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk5RTc1OEYxMTA1
NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTU5QTg1RUEyMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU5QTg1RUExMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
LmNwcCAqLzsgfTsKIAkJNTlBODVFQTQxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0
aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU5QTg1RUEzMTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggKi87
IH07CkBAIC03ODQ0LDYgKzc4NDYsOCBAQAogCQk1OTMwOUExMjExRjRBRTZBMDAyNTA2MDMgLyog
RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oOyBwYXRoID0gbW9jay9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk2
MjI5NzcxMTMzRUZENzAwREM0Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9uQ2Fj
aGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTYyMjk3OTExMzNFRkUyMDBE
QzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1OTY5NTA4MTEzMjEwNTk5MDBDM0VEMTggLyogSm9iamVjdFdyYXBwZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSm9iamVjdFdyYXBwZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTk2OTUwODMxMzIxMDVBNTAwQzNFRDE4IC8qIEpv
YmplY3RXcmFwcGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpv
YmplY3RXcmFwcGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4MEIwMzMx
MkVGM0Q4NDAwREY1Rjg1IC8qIFhNTFZpZXdlci54c2wgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsgcGF0
aCA9IFhNTFZpZXdlci54c2w7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5OUU3NThG
MTEwNTVBMUYwMEQ5MDRGQSAvKiBCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQnJpZGdlLmg7IHBhdGggPSBicmlkZ2UvQnJpZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU5QTg1RUExMTE5RDY4RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZU9y
aWVudGF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI3MzEs
NiArMTI3MzUsOCBAQAogCQkxQTU2OUNDRTBEN0UyQjgyMDA3QzM5ODMgLyogam5pICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1OTY5NTA4MzEzMjEwNUE1
MDBDM0VEMTggLyogSm9iamVjdFdyYXBwZXIuY3BwICovLAorCQkJCTU5Njk1MDgxMTMyMTA1OTkw
MEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oICovLAogCQkJCTFBNTY5Q0Q0MEQ3RTJCODIwMDdD
Mzk4MyAvKiBqbmlfanNvYmplY3QuaCAqLywKIAkJCQkxQTU2OUNEMzBEN0UyQjgyMDA3QzM5ODMg
Lyogam5pX2pzb2JqZWN0Lm1tICovLAogCQkJCTFBNTY5Q0Q1MEQ3RTJCODIwMDdDMzk4MyAvKiBq
bmlfb2JqYy5tbSAqLywKQEAgLTIyNTE5LDYgKzIyNTI1LDcgQEAKIAkJCQk1QTU3NEYyOTEzMURC
OTZEMDA0NzFCODggLyogUXVvdGVzRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzM5QjVCNjMx
MzFEQUEzMjAwRjQ4RDAyIC8qIENvb2tpZXNTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzNEMDIxMkQxMzFEQjM3QjAwNDA5MUE4IC8qIENvb2tpZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCTU5Njk1MDgyMTMyMTA1OTkwMEMzRUQxOCAvKiBKb2JqZWN0V3JhcHBlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0yNTE2OCw2ICsyNTE3NSw3IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAw
QzEzMzc5IC8qIFhTU0ZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QTU3NEYyNDEzMURC
OTM5MDA0NzFCODggLyogUmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUE1NzRG
MjgxMzFEQjk2RDAwNDcxQjg4IC8qIFF1b3Rlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTk2OTUwODQxMzIxMDVBNTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9Kb2JqZWN0V3JhcHBl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0pvYmplY3RXcmFwcGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDIxN2VlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9Kb2JqZWN0V3JhcHBlci5jcHAKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwOCwgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAxMSwgVGhlIEFuZHJvaWQgT3Bl
biBTb3VyY2UgUHJvamVjdAorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJK
b2JqZWN0V3JhcHBlci5oIgorCisjaWYgRU5BQkxFKEpBVkFfQlJJREdFKQorCisjaW5jbHVkZSA8
YXNzZXJ0Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M6OkJpbmRpbmdzOworCitKb2JqZWN0V3Jh
cHBlcjo6Sm9iamVjdFdyYXBwZXIoam9iamVjdCBpbnN0YW5jZSkKKyAgICA6IG1fcmVmQ291bnQo
MCkKK3sKKyAgICBhc3NlcnQoaW5zdGFuY2UpOworCisgICAgLy8gQ2FjaGUgdGhlIEpOSUVudiB1
c2VkIHRvIGdldCB0aGUgZ2xvYmFsIHJlZiBmb3IgdGhpcyBqYXZhIGluc3RhbmFjZS4KKyAgICAv
LyBJdCdsbCBiZSB1c2VkIHRvIGRlbGV0ZSB0aGUgcmVmZXJlbmNlLgorICAgIG1fZW52ID0gZ2V0
Sk5JRW52KCk7CisKKyAgICBtX2luc3RhbmNlID0gbV9lbnYtPk5ld0dsb2JhbFJlZihpbnN0YW5j
ZSk7CisKKyAgICBpZiAoIW1faW5zdGFuY2UpCisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90
IGdldCBHbG9iYWxSZWYgZm9yICVwIiwgaW5zdGFuY2UpOworfQorCitKb2JqZWN0V3JhcHBlcjo6
fkpvYmplY3RXcmFwcGVyKCkKK3sKKyAgICBtX2Vudi0+RGVsZXRlR2xvYmFsUmVmKG1faW5zdGFu
Y2UpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEpBVkFfQlJJREdFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9Kb2JqZWN0V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2puaS9Kb2JqZWN0V3JhcHBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjUxZTNmMDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
am5pL0pvYmplY3RXcmFwcGVyLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwMyBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAyMDExLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBKb2JqZWN0V3JhcHBlcl9oCisjZGVmaW5lIEpvYmplY3RXcmFwcGVyX2gKKworI2lmIEVO
QUJMRShKQVZBX0JSSURHRSkKKworI2luY2x1ZGUgIkpOSVV0aWxpdHkuaCIKKworbmFtZXNwYWNl
IEpTQyB7CisKK25hbWVzcGFjZSBCaW5kaW5ncyB7CisKK2NsYXNzIEpvYmplY3RXcmFwcGVyIHsK
K2ZyaWVuZCBjbGFzcyBKYXZhQXJyYXk7CitmcmllbmQgY2xhc3MgSmF2YUZpZWxkOworZnJpZW5k
IGNsYXNzIEphdmFJbnN0YW5jZTsKKworcHVibGljOgorICAgIGpvYmplY3QgaW5zdGFuY2UoKSBj
b25zdCB7IHJldHVybiBtX2luc3RhbmNlOyB9CisgICAgdm9pZCBzZXRJbnN0YW5jZShqb2JqZWN0
IGluc3RhbmNlKSB7IG1faW5zdGFuY2UgPSBpbnN0YW5jZTsgfQorCisgICAgdm9pZCByZWYoKSB7
IG1fcmVmQ291bnQrKzsgfQorICAgIHZvaWQgZGVyZWYoKQorICAgIHsKKyAgICAgICAgaWYgKCEo
LS1tX3JlZkNvdW50KSkKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworcHJvdGVj
dGVkOgorICAgIEpvYmplY3RXcmFwcGVyKGpvYmplY3QpOworICAgIH5Kb2JqZWN0V3JhcHBlcigp
OworCisgICAgam9iamVjdCBtX2luc3RhbmNlOworCitwcml2YXRlOgorICAgIEpOSUVudiogbV9l
bnY7CisgICAgdW5zaWduZWQgaW50IG1fcmVmQ291bnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBC
aW5kaW5ncworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKQVZBX0JS
SURHRSkKKworI2VuZGlmIC8vIEpvYmplY3RXcmFwcGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pOSUJyaWRnZUpTQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL2pzYy9KTklCcmlkZ2VKU0MuY3BwCmluZGV4IGY0ZGFiMjAuLjhmNDViNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pOSUJyaWRnZUpTQy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSk5JQnJpZGdlSlNDLmNwcApAQCAt
MzAsNiArMzAsNyBAQAogI2lmIEVOQUJMRShKQVZBX0JSSURHRSkKIAogI2luY2x1ZGUgIkpOSVV0
aWxpdHlQcml2YXRlLmgiCisjaW5jbHVkZSAiSm9iamVjdFdyYXBwZXIuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAicnVudGltZV9hcnJheS5oIgogI2luY2x1ZGUgInJ1bnRpbWVf
b2JqZWN0LmgiCkBAIC01Nyw3ICs1OCw3IEBAIEphdmFGaWVsZDo6SmF2YUZpZWxkKEpOSUVudiog
ZW52LCBqb2JqZWN0IGFGaWVsZCkKICAgICAgICAgZmllbGROYW1lID0gZW52LT5OZXdTdHJpbmdV
VEYoIjxVbmtub3duPiIpOwogICAgIG1fbmFtZSA9IEphdmFTdHJpbmcoZW52LCBmaWVsZE5hbWUp
OwogCi0gICAgbV9maWVsZCA9IG5ldyBKT2JqZWN0V3JhcHBlcihhRmllbGQpOworICAgIG1fZmll
bGQgPSBuZXcgSm9iamVjdFdyYXBwZXIoYUZpZWxkKTsKIH0KIAogSlNWYWx1ZSBKYXZhQXJyYXk6
OmNvbnZlcnRKT2JqZWN0VG9BcnJheShFeGVjU3RhdGUqIGV4ZWMsIGpvYmplY3QgYW5PYmplY3Qs
IGNvbnN0IGNoYXIqIHR5cGUsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdE9iamVjdCkKQEAg
LTI1MSw3ICsyNTIsNyBAQCB2b2lkIEphdmFGaWVsZDo6c2V0VmFsdWVUb0luc3RhbmNlKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSW5zdGFuY2UqIGksIEpTVmFsdWUgYQogSmF2YUFycmF5OjpKYXZh
QXJyYXkoam9iamVjdCBhcnJheSwgY29uc3QgY2hhciogdHlwZSwgUGFzc1JlZlB0cjxSb290T2Jq
ZWN0PiByb290T2JqZWN0KQogICAgIDogQXJyYXkocm9vdE9iamVjdCkKIHsKLSAgICBtX2FycmF5
ID0gbmV3IEpPYmplY3RXcmFwcGVyKGFycmF5KTsKKyAgICBtX2FycmF5ID0gbmV3IEpvYmplY3RX
cmFwcGVyKGFycmF5KTsKICAgICAvLyBKYXZhIGFycmF5IGFyZSBmaXhlZCBsZW5ndGgsIHNvIHdl
IGNhbiBjYWNoZSBsZW5ndGguCiAgICAgSk5JRW52KiBlbnYgPSBnZXRKTklFbnYoKTsKICAgICBt
X2xlbmd0aCA9IGVudi0+R2V0QXJyYXlMZW5ndGgoc3RhdGljX2Nhc3Q8amFycmF5PihtX2FycmF5
LT5tX2luc3RhbmNlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pz
Yy9KTklCcmlkZ2VKU0MuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0pOSUJyaWRn
ZUpTQy5oCmluZGV4IGMzNzZiYjkuLjE0ZDA2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvanNjL0pOSUJyaWRnZUpTQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9qbmkvanNjL0pOSUJyaWRnZUpTQy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQnJp
ZGdlSlNDLmgiCiAjaW5jbHVkZSAiSk5JQnJpZGdlLmgiCiAjaW5jbHVkZSAiSk5JVXRpbGl0eS5o
IgorI2luY2x1ZGUgIkpvYmplY3RXcmFwcGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC01
Niw3ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgSmF2YVN0cmluZyBtX25hbWU7CiAgICAgSmF2YVN0
cmluZyBtX3R5cGU7CiAgICAgSk5JVHlwZSBtX0pOSVR5cGU7Ci0gICAgUmVmUHRyPEpPYmplY3RX
cmFwcGVyPiBtX2ZpZWxkOworICAgIFJlZlB0cjxKb2JqZWN0V3JhcHBlcj4gbV9maWVsZDsKIH07
CiAKIGNsYXNzIEphdmFBcnJheSA6IHB1YmxpYyBBcnJheSB7CkBAIC03NSw3ICs3Niw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgSlNWYWx1ZSBjb252ZXJ0Sk9iamVjdFRvQXJyYXkoRXhlY1N0YXRl
Kiwgam9iamVjdCwgY29uc3QgY2hhciogdHlwZSwgUGFzc1JlZlB0cjxSb290T2JqZWN0Pik7CiAK
IHByaXZhdGU6Ci0gICAgUmVmUHRyPEpPYmplY3RXcmFwcGVyPiBtX2FycmF5OworICAgIFJlZlB0
cjxKb2JqZWN0V3JhcHBlcj4gbV9hcnJheTsKICAgICB1bnNpZ25lZCBpbnQgbV9sZW5ndGg7CiAg
ICAgY29uc3QgY2hhciogbV90eXBlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
am5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4IDBiODljNDguLjYyNGRhN2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcApA
QCAtNTEsNyArNTEsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIEphdmFJbnN0YW5jZTo6
SmF2YUluc3RhbmNlKGpvYmplY3QgaW5zdGFuY2UsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9v
dE9iamVjdCkKICAgICA6IEluc3RhbmNlKHJvb3RPYmplY3QpCiB7Ci0gICAgbV9pbnN0YW5jZSA9
IG5ldyBKT2JqZWN0V3JhcHBlcihpbnN0YW5jZSk7CisgICAgbV9pbnN0YW5jZSA9IG5ldyBKb2Jq
ZWN0V3JhcHBlcihpbnN0YW5jZSk7CiAgICAgbV9jbGFzcyA9IDA7CiB9CiAKQEAgLTM2NiwyNyAr
MzY2LDQgQEAgSlNWYWx1ZSBKYXZhSW5zdGFuY2U6OnZhbHVlT2YoRXhlY1N0YXRlKiBleGVjKSBj
b25zdAogICAgIHJldHVybiBzdHJpbmdWYWx1ZShleGVjKTsKIH0KIAotSk9iamVjdFdyYXBwZXI6
OkpPYmplY3RXcmFwcGVyKGpvYmplY3QgaW5zdGFuY2UpCi0gICAgOiBtX3JlZkNvdW50KDApCi17
Ci0gICAgQVNTRVJUKGluc3RhbmNlKTsKLQotICAgIC8vIENhY2hlIHRoZSBKTklFbnYgdXNlZCB0
byBnZXQgdGhlIGdsb2JhbCByZWYgZm9yIHRoaXMgamF2YSBpbnN0YW5jZS4KLSAgICAvLyBJdCds
bCBiZSB1c2VkIHRvIGRlbGV0ZSB0aGUgcmVmZXJlbmNlLgotICAgIG1fZW52ID0gZ2V0Sk5JRW52
KCk7Ci0KLSAgICBtX2luc3RhbmNlID0gbV9lbnYtPk5ld0dsb2JhbFJlZihpbnN0YW5jZSk7Ci0K
LSAgICBMT0coTGl2ZUNvbm5lY3QsICJKT2JqZWN0V3JhcHBlciBjdG9yIG5ldyBnbG9iYWwgcmVm
ICVwIGZvciAlcCIsIG1faW5zdGFuY2UsIGluc3RhbmNlKTsKLQotICAgIGlmICghbV9pbnN0YW5j
ZSkKLSAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZ2V0IEdsb2JhbFJlZiBmb3IgJXAiLCBp
bnN0YW5jZSk7Ci19Ci0KLUpPYmplY3RXcmFwcGVyOjp+Sk9iamVjdFdyYXBwZXIoKQotewotICAg
IExPRyhMaXZlQ29ubmVjdCwgIkpPYmplY3RXcmFwcGVyIGR0b3IgZGVsZXRpbmcgZ2xvYmFsIHJl
ZiAlcCIsIG1faW5zdGFuY2UpOwotICAgIG1fZW52LT5EZWxldGVHbG9iYWxSZWYobV9pbnN0YW5j
ZSk7Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoSkFWQV9CUklER0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuaCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5oCmluZGV4IDc2OTBjZWUuLjkzN2U0
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5j
ZUpTQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpT
Qy5oCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJCcmlkZ2VKU0MuaCIKICNpbmNsdWRl
ICJKTklVdGlsaXR5LmgiCisjaW5jbHVkZSAiSm9iamVjdFdyYXBwZXIuaCIKICNpbmNsdWRlICJy
dW50aW1lX3Jvb3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zOCwzNSArMzksNiBAQCBuYW1l
c3BhY2UgQmluZGluZ3MgewogCiBjbGFzcyBKYXZhQ2xhc3M7CiAKLWNsYXNzIEpPYmplY3RXcmFw
cGVyIHsKLWZyaWVuZCBjbGFzcyBSZWZQdHI8Sk9iamVjdFdyYXBwZXI+OwotZnJpZW5kIGNsYXNz
IEphdmFBcnJheTsKLWZyaWVuZCBjbGFzcyBKYXZhRmllbGQ7Ci1mcmllbmQgY2xhc3MgSmF2YUlu
c3RhbmNlOwotZnJpZW5kIGNsYXNzIEphdmFNZXRob2Q7Ci0KLXB1YmxpYzoKLSAgICBqb2JqZWN0
IGluc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9pbnN0YW5jZTsgfQotICAgIHZvaWQgc2V0SW5z
dGFuY2Uoam9iamVjdCBpbnN0YW5jZSkgeyBtX2luc3RhbmNlID0gaW5zdGFuY2U7IH0KLQotICAg
IHZvaWQgcmVmKCkgeyBtX3JlZkNvdW50Kys7IH0KLSAgICB2b2lkIGRlcmVmKCkKLSAgICB7Ci0g
ICAgICAgIGlmICghKC0tbV9yZWZDb3VudCkpCi0gICAgICAgICAgICBkZWxldGUgdGhpczsKLSAg
ICB9Ci0KLXByb3RlY3RlZDoKLSAgICBKT2JqZWN0V3JhcHBlcihqb2JqZWN0IGluc3RhbmNlKTsK
LSAgICB+Sk9iamVjdFdyYXBwZXIoKTsKLQotICAgIGpvYmplY3QgbV9pbnN0YW5jZTsKLQotcHJp
dmF0ZToKLSAgICBKTklFbnYqIG1fZW52OwotICAgIHVuc2lnbmVkIGludCBtX3JlZkNvdW50Owot
fTsKLQogY2xhc3MgSmF2YUluc3RhbmNlIDogcHVibGljIEluc3RhbmNlIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxKYXZhSW5zdGFuY2U+IGNyZWF0ZShqb2JqZWN0IGluc3RhbmNl
LCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3RPYmplY3QpCkBAIC05OCw3ICs3MCw3IEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgdmlydHVhbEJlZ2luKCk7CiAgICAgdmlydHVhbCB2
b2lkIHZpcnR1YWxFbmQoKTsKIAotICAgIFJlZlB0cjxKT2JqZWN0V3JhcHBlcj4gbV9pbnN0YW5j
ZTsKKyAgICBSZWZQdHI8Sm9iamVjdFdyYXBwZXI+IG1faW5zdGFuY2U7CiAgICAgbXV0YWJsZSBK
YXZhQ2xhc3MqIG1fY2xhc3M7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL3Y4L0pvYmplY3RXcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkv
djgvSm9iamVjdFdyYXBwZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDdm
ZDgyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSm9iamVjdFdy
YXBwZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAyMDExLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkpvYmplY3RXcmFwcGVyLmgiCi0KLSNpZiBFTkFCTEUoSkFW
QV9CUklER0UpCi0KLSNpbmNsdWRlIDxhc3NlcnQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzo6
QmluZGluZ3M7Ci0KLUpvYmplY3RXcmFwcGVyOjpKb2JqZWN0V3JhcHBlcihqb2JqZWN0IGluc3Rh
bmNlKQotICAgIDogbV9yZWZDb3VudCgwKQotewotICAgIGFzc2VydChpbnN0YW5jZSk7Ci0KLSAg
ICAvLyBDYWNoZSB0aGUgSk5JRW52IHVzZWQgdG8gZ2V0IHRoZSBnbG9iYWwgcmVmIGZvciB0aGlz
IGphdmEgaW5zdGFuYWNlLgotICAgIC8vIEl0J2xsIGJlIHVzZWQgdG8gZGVsZXRlIHRoZSByZWZl
cmVuY2UuCi0gICAgbV9lbnYgPSBnZXRKTklFbnYoKTsKLQotICAgIG1faW5zdGFuY2UgPSBtX2Vu
di0+TmV3R2xvYmFsUmVmKGluc3RhbmNlKTsKLQotICAgIGlmICghbV9pbnN0YW5jZSkKLSAgICAg
ICAgZnByaW50ZihzdGRlcnIsICIlczogIGNvdWxkIG5vdCBnZXQgR2xvYmFsUmVmIGZvciAlcFxu
IiwgX19QUkVUVFlfRlVOQ1RJT05fXywgaW5zdGFuY2UpOwotfQotCi1Kb2JqZWN0V3JhcHBlcjo6
fkpvYmplY3RXcmFwcGVyKCkKLXsKLSAgICBtX2Vudi0+RGVsZXRlR2xvYmFsUmVmKG1faW5zdGFu
Y2UpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFfQlJJREdFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9Kb2JqZWN0V3JhcHBlci5oIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2puaS92OC9Kb2JqZWN0V3JhcHBlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiMWRhODMzLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkv
djgvSm9iamVjdFdyYXBwZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgMjAxMSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05F
UiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgSm9iamVjdFdyYXBwZXJfaAotI2RlZmluZSBKb2JqZWN0V3JhcHBlcl9oCi0KLSNp
ZiBFTkFCTEUoSkFWQV9CUklER0UpCi0KLSNpbmNsdWRlICJKTklVdGlsaXR5LmgiCi0KLW5hbWVz
cGFjZSBKU0MgewotCi1uYW1lc3BhY2UgQmluZGluZ3MgewotCi1jbGFzcyBKb2JqZWN0V3JhcHBl
ciB7Ci1mcmllbmQgY2xhc3MgSmF2YUZpZWxkOwotZnJpZW5kIGNsYXNzIEphdmFJbnN0YW5jZTsK
LQotcHVibGljOgotICAgIGpvYmplY3QgaW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBtX2luc3Rh
bmNlOyB9Ci0gICAgdm9pZCBzZXRJbnN0YW5jZShqb2JqZWN0IGluc3RhbmNlKSB7IG1faW5zdGFu
Y2UgPSBpbnN0YW5jZTsgfQotCi0gICAgdm9pZCByZWYoKSB7IG1fcmVmQ291bnQrKzsgfQotICAg
IHZvaWQgZGVyZWYoKQotICAgIHsKLSAgICAgICAgaWYgKCEoLS1tX3JlZkNvdW50KSkKLSAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzOwotICAgIH0KLQotcHJvdGVjdGVkOgotICAgIEpvYmplY3RXcmFw
cGVyKGpvYmplY3QpOwotICAgIH5Kb2JqZWN0V3JhcHBlcigpOwotCi0gICAgam9iamVjdCBtX2lu
c3RhbmNlOwotCi1wcml2YXRlOgotICAgIEpOSUVudiogbV9lbnY7Ci0gICAgdW5zaWduZWQgaW50
IG1fcmVmQ291bnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBCaW5kaW5ncwotCi19IC8vIG5hbWVz
cGFjZSBKU0MKLQotI2VuZGlmIC8vIEVOQUJMRShKQVZBX0JSSURHRSkKLSNlbmRpZiAvLyBKb2Jq
ZWN0V3JhcHBlcl9oCg==
</data>
<flag name="review"
          id="76786"
          type_id="1"
          status="+"
          setter="jorlow"
    />
          </attachment>
      

    </bug>

</bugzilla>