<?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>124848</bug_id>
          
          <creation_ts>2013-11-25 10:37:34 -0800</creation_ts>
          <short_desc>Add support for multiple sources for AutoInstaller</short_desc>
          <delta_ts>2014-02-06 15:58:24 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Berta József">jberta.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>954041</commentid>
    <comment_count>0</comment_count>
    <who name="Berta József">jberta.u-szeged</who>
    <bug_when>2013-11-25 10:37:34 -0800</bug_when>
    <thetext>The autoinstaller in the webkitpy currently fails if the download source of a package is unavailable. This patch adds support for multiple sources to the script. The sources are provided in three environment variables. If it exists, the script will look at a local cache. If not, it will try to download the package from the original url. If it fails, it gets a mirror from the corresponding environment variable.(One for sourceforge and one for pypi.python.org)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954047</commentid>
    <comment_count>1</comment_count>
      <attachid>217818</attachid>
    <who name="Berta József">jberta.u-szeged</who>
    <bug_when>2013-11-25 10:40:35 -0800</bug_when>
    <thetext>Created attachment 217818
Support for multiple sources in the autoinstaller of webkitpy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956011</commentid>
    <comment_count>2</comment_count>
      <attachid>217818</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-12-03 11:35:40 -0800</bug_when>
    <thetext>Comment on attachment 217818
Support for multiple sources in the autoinstaller of webkitpy.

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

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:51
&gt; +_mirror_regexs = re.compile(&apos;.*sourceforge.*&apos;), re.compile(&apos;.*pypi.*&apos;)

Why don&apos;t we have a single array that contains both the regular expression and the env. variable name instead of zip&apos;ing in _prepare_mirrors?

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:53
&gt; +_sf_env_var = &apos;SOURCEFORGE_MIRRORS&apos;

Please don&apos;t use abbreviations such as sf. Spell out source forge.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:269
&gt; +    def _copy_not_packaged(self, path, scratch_dir):

s/not_packaged/unpackaged_files/

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:270
&gt; +        &quot;&quot;&quot;Copy the not packaged file to the scratch_dir in order to leave the local cache intact. &quot;&quot;&quot;

We no longer add these Python-style one-line comments. That&apos;s reminiscent of Google-owned code.
Please give the method descriptive name such as copy_unpackaged_file_from_local_cache to avoid having to add these comments.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:306
&gt; +    def _prepare_mirrors(self):

What does mean to say &quot;prepare&quot; mirrors?
It&apos;s better to give a more descriptive method name such as mirrors_from_env.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:320
&gt; +    def _switch_to_mirror(self, url, mirrors, mirror_index):

Again, _switch_to_mirror is not the most descriptive method name here.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:325
&gt; +        The environment variables must contain the values separated by colons.
&gt; +        Pypi mirror examle: PYPI_MIRRORS=pypi.hustunique.com:e.pypi.python.org...
&gt; +        Sourceforge mirror example: SOURCEFORGE_MIRRORS=aarnet.dl.sourceforge.net:citylan.dl.sourceforge.net:dfn.dl.sourceforge.net:freefr.dl.sourceforge.net...
&gt; +        Mirror sources: http://www.pypi-mirrors.org/, http://sourceforge.net/apps/trac/sourceforge/wiki/Mirrors

This description belongs in _prepare_mirrors.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:359
&gt; +                    url = self._switch_to_mirror(url, mirrors, mirror_index)
&gt; +                    if url:
&gt; +                        failures = 0
&gt; +                        mirror_index += 1
&gt; +                        continue

It&apos;s strange that we&apos;ll select the next mirror only if the current mirror matched.
How does that work?

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:383
&gt; +    def _find_in_cache(self, filename):

It&apos;s better to call this _find_in_local_autoinstall_cache to be more explicit.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:387
&gt; +        &quot;&quot;&quot;The installer first looks at the local cache, and if the package is found there, it will be installed from there.
&gt; +        The path of the cache is stored in the LOCAL_AUTOINSTALL_CACHE environment variable.
&gt; +        The cache must contain the packages in their packed forms(As if they were just downloaded from the web)
&gt; +        &quot;&quot;&quot;

Doesn&apos;t seem like this is the description of this method.  It&apos;s better to add a comment in the relevant parts of _download as needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957945</commentid>
    <comment_count>3</comment_count>
      <attachid>217818</attachid>
    <who name="Berta József">jberta.u-szeged</who>
    <bug_when>2013-12-09 10:07:47 -0800</bug_when>
    <thetext>Comment on attachment 217818
Support for multiple sources in the autoinstaller of webkitpy.

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

&gt;&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:51
&gt;&gt; +_mirror_regexs = re.compile(&apos;.*sourceforge.*&apos;), re.compile(&apos;.*pypi.*&apos;)
&gt; 
&gt; Why don&apos;t we have a single array that contains both the regular expression and the env. variable name instead of zip&apos;ing in _prepare_mirrors?

I just think it&apos;s clearer to have these separated here, and put them together after the env. variables are processed. It might reduce readability if the array would be made here with the variable names, and later replaced by the contents.

&gt;&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:359
&gt;&gt; +                        continue
&gt; 
&gt; It&apos;s strange that we&apos;ll select the next mirror only if the current mirror matched.
&gt; How does that work?

The url will match sourceforge or pypi, if the original url did, and if the mirrors are from the mirror sources above. So I decided to distinguish the source by the url. If the current url doesn&apos;t matched, it&apos;s not from pypi or sourceforge.
The other way could be to add an indicator to each source in the webkitpy/thirdparty/__init__.py, but it&apos;s not necessary in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957965</commentid>
    <comment_count>4</comment_count>
      <attachid>218775</attachid>
    <who name="Berta József">jberta.u-szeged</who>
    <bug_when>2013-12-09 10:32:25 -0800</bug_when>
    <thetext>Created attachment 218775
Correcting patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957982</commentid>
    <comment_count>5</comment_count>
      <attachid>218775</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-12-09 10:49:18 -0800</bug_when>
    <thetext>Comment on attachment 218775
Correcting patch.

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

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:54
&gt; +_mirror_regexs = re.compile(&apos;.*sourceforge.*&apos;), re.compile(&apos;.*pypi.*&apos;)
&gt; +_pypi_env_var = &apos;PYPI_MIRRORS&apos;
&gt; +_sourceforge_env_var = &apos;SOURCEFORGE_MIRRORS&apos;
&gt; +_cache_env_var = &apos;LOCAL_AUTOINSTALL_CACHE&apos;

I think we normally use ALL CAPS for constants.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:332
&gt; +            if regex.match(parsed_url[1]):
&gt; +                if mirror_index &lt; len(addresses):

Combine these two ifs.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:355
&gt; +                    url = self._replace_domain_with_next_mirror(url, mirrors, mirror_index)
&gt; +                    if url:

Why don&apos;t we just pop the next item from mirrors instead of keeping mirror_index separately?

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:385
&gt; +        #The cache must contain the packages in their packed forms(As if they were just downloaded from the web)
&gt; +
&gt; +        #The path of the cache is stored in the environment variable named in the _cache_env_var variable.

Nit: You should put a space between # and The.
Nit: You also need a space between forms and (, and &quot;As&quot; should not be capitalized and ) should be followed by a single period.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:398
&gt; +        #The installer first looks at the local cache, and if the package is found there, it will be installed from there.

I don&apos;t think this comment is necessary.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:407
&gt; +        # If this part of the code is reached, there is no copy of the package in the local cache, so it will be copied there.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958655</commentid>
    <comment_count>6</comment_count>
      <attachid>218945</attachid>
    <who name="Berta József">jberta.u-szeged</who>
    <bug_when>2013-12-11 02:56:31 -0800</bug_when>
    <thetext>Created attachment 218945
Replaced the mirror lists with iteratos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962368</commentid>
    <comment_count>7</comment_count>
    <who name="Berta József">jberta.u-szeged</who>
    <bug_when>2013-12-22 13:45:15 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=218945) [details]
&gt; Replaced the mirror lists with iteratos.

Could you please take a look at this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964914</commentid>
    <comment_count>8</comment_count>
      <attachid>218945</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-01-07 01:29:24 -0800</bug_when>
    <thetext>Comment on attachment 218945
Replaced the mirror lists with iteratos.

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

&gt; Tools/ChangeLog:1
&gt; +

Nit: remove this empty line.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:305
&gt; +    def _get_mirrors_from_env(self):

get prefix is used for functions with an out arguments. See our style guideline.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:306
&gt; +        &quot;&quot;&quot;If the original download url fails, it is replaced by a mirror provided in the environment variables

This is what the caller of this function does.  I don&apos;t think we need this comment here.  Please remove it.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:310
&gt; +        The environment variables must contain the values separated by colons.
&gt; +        Pypi mirror examle: PYPI_MIRRORS=pypi.hustunique.com:e.pypi.python.org...
&gt; +        Sourceforge mirror example: SOURCEFORGE_MIRRORS=aarnet.dl.sourceforge.net:citylan.dl.sourceforge.net:dfn.dl.sourceforge.net:freefr.dl.sourceforge.net...
&gt; +        Mirror sources: http://www.pypi-mirrors.org/, http://sourceforge.net/apps/trac/sourceforge/wiki/Mirrors

This is an excessive amount of comments/examples for a very simple example.

It&apos;s much better to convey this information via a more descriptive function name such as
parse_colon_separated_mirrors_from_env

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:327
&gt; +        parsed_url = list(urlparse.urlparse(url))

Why are we converting the parsed result into a list?  That&apos;s reducing the readability of the code below.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:353
&gt; +                else:

Since the previous if statement ends with continue, we shouldn&apos;t have else clause. See our style guideline.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:381
&gt; +    def _find_in_local_autoinstall_cache(self, filename):

I don&apos;t think we if should use the prefix &quot;find&quot; given that this function doesn&apos;t search through the file system.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:384
&gt; +        # The cache must contain the packages in their packed forms, as if they were just downloaded from the web.
&gt; +
&gt; +        # The path of the cache is stored in the environment variable named in the _CACHE_ENV_VAR variable.

These two comments are more confusing than helpful as far as I read the code. Please remove them.

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:385
&gt; +        if _CACHE_ENV_VAR in os.environ:

We prefer an early exit. e.g.
if _CACHE_ENV_VAR not in os.environ:
    return False
...
if not path:
    return False
return ...

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:388
&gt; +            path = glob(os.path.join(os.environ[_CACHE_ENV_VAR], filename) + &apos;*&apos;)
&gt; +            if path:
&gt; +                return path[0]

Why are we returning the first path?

&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:390
&gt; +        else:
&gt; +            return False

These two lines are complete no-op as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965467</commentid>
    <comment_count>9</comment_count>
      <attachid>218945</attachid>
    <who name="Berta József">jberta.u-szeged</who>
    <bug_when>2014-01-08 07:26:33 -0800</bug_when>
    <thetext>Comment on attachment 218945
Replaced the mirror lists with iteratos.

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

&gt;&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:310
&gt;&gt; +        Mirror sources: http://www.pypi-mirrors.org/, http://sourceforge.net/apps/trac/sourceforge/wiki/Mirrors
&gt; 
&gt; This is an excessive amount of comments/examples for a very simple example.
&gt; 
&gt; It&apos;s much better to convey this information via a more descriptive function name such as
&gt; parse_colon_separated_mirrors_from_env

Ok, I removed most of it, but the rest is necessary, i think

&gt;&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:327
&gt;&gt; +        parsed_url = list(urlparse.urlparse(url))
&gt; 
&gt; Why are we converting the parsed result into a list?  That&apos;s reducing the readability of the code below.

The urlparse() returns a tuple, which can&apos;t be modified.

&gt;&gt; Tools/Scripts/webkitpy/common/system/autoinstall.py:388
&gt;&gt; +                return path[0]
&gt; 
&gt; Why are we returning the first path?

Glob returns a list, in this case containing only one string. We only need the string, not a list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965468</commentid>
    <comment_count>10</comment_count>
      <attachid>220629</attachid>
    <who name="Berta József">jberta.u-szeged</who>
    <bug_when>2014-01-08 07:32:11 -0800</bug_when>
    <thetext>Created attachment 220629
Modifying patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977337</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-02-06 07:42:47 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=220629) [details]
&gt; Modifying patch.

The patch looks good to me, it seems everything 
is fixed now. But I let rniwa to set the final r+ .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977583</commentid>
    <comment_count>12</comment_count>
      <attachid>220629</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 15:58:22 -0800</bug_when>
    <thetext>Comment on attachment 220629
Modifying patch.

Clearing flags on attachment: 220629

Committed r163570: &lt;http://trac.webkit.org/changeset/163570&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977584</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 15:58:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217818</attachid>
            <date>2013-11-25 10:40:35 -0800</date>
            <delta_ts>2013-12-09 10:32:25 -0800</delta_ts>
            <desc>Support for multiple sources in the autoinstaller of webkitpy.</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>8459</size>
            <attacher name="Berta József">jberta.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlN2U3
MWQyLi45ZTIwMjI3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTMtMTEtMjUgIEpvenNlZiBCZXJ0YSAgPGpiZXJ0
YUBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIHNv
dXJjZXMgZm9yIEF1dG9JbnN0YWxsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNDg0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoZSBhdXRvaW5zdGFsbGVyIGluIHRoZSB3ZWJraXRweSBjdXJyZW50
bHkgZmFpbHMgaWYgdGhlIGRvd25sb2FkIHNvdXJjZSBvZiBhIHBhY2thZ2UgaXMgdW5hdmFpbGFi
bGUuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBtdWx0aXBsZSBzb3VyY2Vz
IHRvIHRoZSBzY3JpcHQuIFRoZSBzb3VyY2VzIGFyZSBwcm92aWRlZCBpbiB0aHJlZSBlbnZpcm9u
bWVudCB2YXJpYWJsZXMuCisgICAgICAgIElmIGl0IGV4aXN0cywgdGhlIHNjcmlwdCB3aWxsIGxv
b2sgYXQgYSBsb2NhbCBjYWNoZS4gSWYgbm90LCBpdCB3aWxsIHRyeSB0byBkb3dubG9hZCB0aGUg
cGFja2FnZSBmcm9tIHRoZSBvcmlnaW5hbCB1cmwuCisgICAgICAgIElmIGl0IGZhaWxzLCBpdCBn
ZXRzIGEgbWlycm9yIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUu
KE9uZSBmb3Igc291cmNlZm9yZ2Uub3JnIGFuZCBvbmUgZm9yIHB5cGkucHl0aG9uLm9yZykKKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9hdXRvaW5zdGFsbC5weToK
KyAgICAgICAgKEF1dG9JbnN0YWxsZXIuX2NvcHlfbm90X3BhY2thZ2VkKTogSWYgdGhlIHBhY2th
Z2UgaXMgbm90IHBhY2thZ2VkIGluIGl0cyBvcmlnaW5hbCBmb3JtLAorICAgICAgICB0aGlzIG1l
dGhvZCB3aWxsIGNvcHkgaXQgdG8gdGhlIHNjcmF0Y2ggZGlyZWN0b3J5LiBPdGhlcndpc2UgaXQg
d291bGQgYmUgZGVsZXRlZCBmcm9tIHRoZSBjYWNoZSwgd2hpY2ggd2UgZG8gbm90IHdhbnQuCisg
ICAgICAgIChBdXRvSW5zdGFsbGVyLl9wcmVwYXJlX3BhY2thZ2UpOiBJZiB0aGUgcGFja2FnZSBp
cyBub3QgemlwcGVkIG9yIHRhcnJlZCwgYW5kIHRoZSBmaWxlIGlzIGluIHRoZSBjYWNoZSwgdGhl
IF9jb3B5X25vdF9wYWNrYWdlZAorICAgICAgICBmdW5jdGlvbiBpcyBjYWxsZWQuCisgICAgICAg
IChBdXRvSW5zdGFsbGVyLl9wcmVwYXJlX21pcnJvcnMpOiBUaGlzIHdpbGwgcmVhZCB0aGUgbWly
cm9ycyBmcm9tIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaWYgcG9zc2libGUsIGFuZCBwcmVw
YXJlcyB0aGVtIGZvciBmdXJ0aGVyIHVzZS4KKyAgICAgICAgKEF1dG9JbnN0YWxsZXIpOgorICAg
ICAgICAoQXV0b0luc3RhbGxlci5fc3dpdGNoX3RvX21pcnJvcik6IElmIHRoZSBvcmlnaW5hbCBk
b3dubG9hZCB1cmwgZmFpbHMsIGl0IGlzIHJlcGxhY2VkIGJ5IGEgbWlycm9yIHByb3ZpZGVkIGlu
IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCisgICAgICAgIFRoZSBmdW5jdGlvbiBpZGVudGlm
aWVzIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGFuZCByZXBsYWNlcyBpdCB3aXRoIGEgbWlycm9yLiBJ
ZiBpdCBjYW4ndCBiZSBkb25lLCB0aGUgcmV0dXJuIHVybCB3aWxsIGJlIE5vbmUsIGluZGljYXRp
bmcKKyAgICAgICAgdGhhdCBubyBtaXJyb3JzIGFyZSBwcm92aWRlZCwgb3Igbm9uZSBvZiB0aGVt
IGNvdWxkIGJlIHJlYWNoZWQuCisgICAgICAgIChBdXRvSW5zdGFsbGVyLl9kb3dubG9hZF90b19z
dHJlYW0pOiBUaGUgdGltZW91dCBmb3Igb25lIHRyeSBpcyBub3cgbGltaXRlZCB0byAzMCBzZWNv
bmRzLiBXaXRob3V0IHRoaXMsIHRoZSBzY3JpcHQgd2FpdGVkIGZvcgorICAgICAgICByb3VnaGx5
IDQgbWludXRlcyBiZWZvcmUgcmV0cnlpbmcuIEFmdGVyIHRocmVlIGZhaWxpdXJlcyB0aGUgc2Ny
aXB0IHdpbGwgdHJ5IHRvIHN3aXRjaCB0byBhIG1pcnJvci4KKyAgICAgICAgKEF1dG9JbnN0YWxs
ZXIuX2ZpbmRfaW5fY2FjaGUpOiBUaGlzIG1ldGhvZCBzZWFyY2hlcyB0aGUgY2FjaGUgZm9yIHRo
ZSBjdXJyZW50bHkgZG93bmxvYWRlZCBtb2R1bGUuIElmIGl0J3MgZm91bmQgdGhlcmUsCisgICAg
ICAgIGl0cyBwYXRoIGlzIHJldHVybmVkLgorICAgICAgICAoQXV0b0luc3RhbGxlci5fZG93bmxv
YWQpOiBCZWZvcmUgZG93bmxvYWRpbmcgdGhlIG1vZHVsZSwgaXQgaXMgbG9va2VkIHVwIGluIHRo
ZSBjYWNoZS4gSWYgaXQncyBub3QgZm91bmQgdGhlcmUsIHRoZSBzY3JpcHQgd2lsbCBjb250aW51
ZQorICAgICAgICB3aXRoIHRoZSBkb3dubG9hZCwgYW5kIGNhY2hlIHRoZSBtb2R1bGUuCisKIDIw
MTMtMTEtMjUgIEzDoXN6bMOzIExhbmfDsyAgPGxhbmdvQGluZi51LXN6ZWdlZC5odT4KIAogICAg
ICAgICBFV1MgY3JlYXRlcyAwIGJ5dGUgc2l6ZWQgbG9nIGZpbGVzCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vYXV0b2luc3RhbGwucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vYXV0b2luc3RhbGwucHkKaW5kZXggMmUxNTg4
Ny4uNWVkY2M4NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL2F1dG9pbnN0YWxsLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9hdXRvaW5zdGFsbC5weQpAQCAtNDIsOSArNDIsMTYgQEAgaW1wb3J0IHRlbXBmaWxlCiBp
bXBvcnQgdXJsbGliMgogaW1wb3J0IHVybHBhcnNlCiBpbXBvcnQgemlwZmlsZQoraW1wb3J0IHJl
Citmcm9tIGRpc3R1dGlscyBpbXBvcnQgZGlyX3V0aWwKK2Zyb20gZ2xvYiBpbXBvcnQgZ2xvYgor
aW1wb3J0IHVybHBhcnNlCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLQor
X21pcnJvcl9yZWdleHMgPSByZS5jb21waWxlKCcuKnNvdXJjZWZvcmdlLionKSwgcmUuY29tcGls
ZSgnLipweXBpLionKQorX3B5cGlfZW52X3ZhciA9ICdQWVBJX01JUlJPUlMnCitfc2ZfZW52X3Zh
ciA9ICdTT1VSQ0VGT1JHRV9NSVJST1JTJworX2NhY2hlX2Vudl92YXIgPSAnTE9DQUxfQVVUT0lO
U1RBTExfQ0FDSEUnCiAKIGNsYXNzIEF1dG9JbnN0YWxsZXIob2JqZWN0KToKIApAQCAtMjU5LDYg
KzI2NiwxNSBAQCBjbGFzcyBBdXRvSW5zdGFsbGVyKG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJu
IHRhcmdldF9wYXRoCiAKKyAgICBkZWYgX2NvcHlfbm90X3BhY2thZ2VkKHNlbGYsIHBhdGgsIHNj
cmF0Y2hfZGlyKToKKyAgICAgICAgIiIiQ29weSB0aGUgbm90IHBhY2thZ2VkIGZpbGUgdG8gdGhl
IHNjcmF0Y2hfZGlyIGluIG9yZGVyIHRvIGxlYXZlIHRoZSBsb2NhbCBjYWNoZSBpbnRhY3QuICIi
IgorCisgICAgICAgIHRhcmdldF9iYXNlbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUocGF0aCkKKyAg
ICAgICAgdGFyZ2V0X3BhdGggPSBvcy5wYXRoLmpvaW4oc2NyYXRjaF9kaXIsIHRhcmdldF9iYXNl
bmFtZSkKKworICAgICAgICBzaHV0aWwuY29weShwYXRoLCB0YXJnZXRfcGF0aCkKKyAgICAgICAg
cmV0dXJuIHRhcmdldF9wYXRoCisKICAgICBkZWYgX3ByZXBhcmVfcGFja2FnZShzZWxmLCBwYXRo
LCBzY3JhdGNoX2Rpcik6CiAgICAgICAgICIiIlByZXBhcmUgYSBwYWNrYWdlIGZvciB1c2UsIGlm
IG5lY2Vzc2FyeSwgYW5kIHJldHVybiB0aGUgbmV3IHBhdGguCiAKQEAgLTI3NywyNSArMjkzLDcw
IEBAIGNsYXNzIEF1dG9JbnN0YWxsZXIob2JqZWN0KToKICAgICAgICAgICAgIG5ld19wYXRoID0g
c2VsZi5fdW56aXAocGF0aCwgc2NyYXRjaF9kaXIpCiAgICAgICAgIGVsaWYgcGF0aC5lbmRzd2l0
aCgiLnRhci5neiIpOgogICAgICAgICAgICAgbmV3X3BhdGggPSBzZWxmLl9leHRyYWN0X3Rhcmd6
KHBhdGgsIHNjcmF0Y2hfZGlyKQorICAgICAgICBlbGlmIF9jYWNoZV9lbnZfdmFyIGluIG9zLmVu
dmlyb246CisgICAgICAgICAgICBuZXdfcGF0aCA9IHBhdGgKKyAgICAgICAgICAgIGlmIG9zLnBh
dGguZGlybmFtZShwYXRoKSA9PSBvcy5wYXRoLm5vcm1wYXRoKG9zLmVudmlyb25bX2NhY2hlX2Vu
dl92YXJdKToKKyAgICAgICAgICAgICAgICBuZXdfcGF0aCA9IHNlbGYuX2NvcHlfbm90X3BhY2th
Z2VkKHBhdGgsIHNjcmF0Y2hfZGlyKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgIyBObyBw
cmVwYXJhdGlvbiBpcyBuZWVkZWQuCiAgICAgICAgICAgICBuZXdfcGF0aCA9IHBhdGgKIAogICAg
ICAgICByZXR1cm4gbmV3X3BhdGgKIAorICAgIGRlZiBfcHJlcGFyZV9taXJyb3JzKHNlbGYpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBweXBpX21pcnJvcnNfbGlzdCA9IG9zLmVudmlyb25b
X3B5cGlfZW52X3Zhcl0uc3BsaXQoJzonKQorICAgICAgICBleGNlcHQoS2V5RXJyb3IpOgorICAg
ICAgICAgICAgcHlwaV9taXJyb3JzX2xpc3QgPSAoKQorCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHNmX21pcnJvcnNfbGlzdCA9IG9zLmVudmlyb25bX3NmX2Vudl92YXJdLnNwbGl0KCc6JykK
KyAgICAgICAgZXhjZXB0KEtleUVycm9yKToKKyAgICAgICAgICAgIHNmX21pcnJvcnNfbGlzdCA9
ICgpCisKKyAgICAgICAgbWlycm9ybGlzdHMgPSBzZl9taXJyb3JzX2xpc3QsIHB5cGlfbWlycm9y
c19saXN0CisgICAgICAgIHJldHVybiB6aXAoX21pcnJvcl9yZWdleHMsIG1pcnJvcmxpc3RzKQor
CisgICAgZGVmIF9zd2l0Y2hfdG9fbWlycm9yKHNlbGYsIHVybCwgbWlycm9ycywgbWlycm9yX2lu
ZGV4KToKKyAgICAgICAgIiIiSWYgdGhlIG9yaWdpbmFsIGRvd25sb2FkIHVybCBmYWlscywgaXQg
aXMgcmVwbGFjZWQgYnkgYSBtaXJyb3IgcHJvdmlkZWQgaW4gdGhlIGVudmlyb25tZW50IHZhcmlh
YmxlcworICAgICAgICBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG11c3QgY29udGFpbiB0aGUg
dmFsdWVzIHNlcGFyYXRlZCBieSBjb2xvbnMuCisgICAgICAgIFB5cGkgbWlycm9yIGV4YW1sZTog
UFlQSV9NSVJST1JTPXB5cGkuaHVzdHVuaXF1ZS5jb206ZS5weXBpLnB5dGhvbi5vcmcuLi4KKyAg
ICAgICAgU291cmNlZm9yZ2UgbWlycm9yIGV4YW1wbGU6IFNPVVJDRUZPUkdFX01JUlJPUlM9YWFy
bmV0LmRsLnNvdXJjZWZvcmdlLm5ldDpjaXR5bGFuLmRsLnNvdXJjZWZvcmdlLm5ldDpkZm4uZGwu
c291cmNlZm9yZ2UubmV0OmZyZWVmci5kbC5zb3VyY2Vmb3JnZS5uZXQuLi4KKyAgICAgICAgTWly
cm9yIHNvdXJjZXM6IGh0dHA6Ly93d3cucHlwaS1taXJyb3JzLm9yZy8sIGh0dHA6Ly9zb3VyY2Vm
b3JnZS5uZXQvYXBwcy90cmFjL3NvdXJjZWZvcmdlL3dpa2kvTWlycm9ycworICAgICAgICAiIiIK
KworICAgICAgICBwYXJzZWRfdXJsID0gbGlzdCh1cmxwYXJzZS51cmxwYXJzZSh1cmwpKQorICAg
ICAgICBuZXdfdXJsID0gTm9uZQorCisgICAgICAgIGZvciByZWdleCwgYWRkcmVzc2VzIGluIG1p
cnJvcnM6CisgICAgICAgICAgICBpZiByZWdleC5tYXRjaChwYXJzZWRfdXJsWzFdKToKKyAgICAg
ICAgICAgICAgICBpZiBtaXJyb3JfaW5kZXggPCBsZW4oYWRkcmVzc2VzKToKKyAgICAgICAgICAg
ICAgICAgICAgcGFyc2VkX3VybFsxXSA9IGFkZHJlc3Nlc1ttaXJyb3JfaW5kZXhdCisgICAgICAg
ICAgICAgICAgICAgIG5ld191cmwgPSB1cmxwYXJzZS51cmx1bnBhcnNlKHBhcnNlZF91cmwpCisK
KyAgICAgICAgcmV0dXJuIG5ld191cmwKKwogICAgIGRlZiBfZG93bmxvYWRfdG9fc3RyZWFtKHNl
bGYsIHVybCwgc3RyZWFtKToKKyAgICAgICAgbWlycm9ycyA9IHNlbGYuX3ByZXBhcmVfbWlycm9y
cygpCiAgICAgICAgIGZhaWx1cmVzID0gMAorICAgICAgICBtaXJyb3JfaW5kZXggPSAwCiAgICAg
ICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbmV0c3Ry
ZWFtID0gdXJsbGliMi51cmxvcGVuKHVybCkKKyAgICAgICAgICAgICAgICBuZXRzdHJlYW0gPSB1
cmxsaWIyLnVybG9wZW4odXJsLCB0aW1lb3V0PTMwKQogICAgICAgICAgICAgICAgIGJyZWFrCiAg
ICAgICAgICAgICBleGNlcHQgSU9FcnJvciwgZXJyOgogICAgICAgICAgICAgICAgICMgVHJ5IG11
bHRpcGxlIHRpbWVzCi0gICAgICAgICAgICAgICAgaWYgZmFpbHVyZXMgPCA1OgorICAgICAgICAg
ICAgICAgIGlmIGZhaWx1cmVzIDwgMjoKICAgICAgICAgICAgICAgICAgICAgX2xvZy53YXJuaW5n
KCJGYWlsZWQgdG8gZG93bmxvYWQgJXMsICVzIHJldHJ5aW5nIiAlICgKICAgICAgICAgICAgICAg
ICAgICAgICAgIHVybCwgZXJyKSkKICAgICAgICAgICAgICAgICAgICAgZmFpbHVyZXMgKz0gMQog
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgICAgIHVybCA9IHNlbGYuX3N3aXRjaF90b19taXJyb3IodXJsLCBtaXJyb3Jz
LCBtaXJyb3JfaW5kZXgpCisgICAgICAgICAgICAgICAgICAgIGlmIHVybDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZhaWx1cmVzID0gMAorICAgICAgICAgICAgICAgICAgICAgICAgbWlycm9y
X2luZGV4ICs9IDEKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKICAgICAgICAg
ICAgICAgICAjIEFwcGVuZCBleGlzdGluZyBFcnJvciBtZXNzYWdlIHRvIG5ldyBFcnJvci4KICAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gKCdDb3VsZCBub3QgZG93bmxvYWQgUHl0aG9uIG1vZHVs
ZXMgZnJvbSBVUkwgIiVzIi5cbicKQEAgLTMxOSwxNSArMzgwLDM3IEBAIGNsYXNzIEF1dG9JbnN0
YWxsZXIob2JqZWN0KToKICAgICAgICAgICAgIHN0cmVhbS53cml0ZShkYXRhKQogICAgICAgICBu
ZXRzdHJlYW0uY2xvc2UoKQogCisgICAgZGVmIF9maW5kX2luX2NhY2hlKHNlbGYsIGZpbGVuYW1l
KToKKyAgICAgICAgIiIiVGhlIGluc3RhbGxlciBmaXJzdCBsb29rcyBhdCB0aGUgbG9jYWwgY2Fj
aGUsIGFuZCBpZiB0aGUgcGFja2FnZSBpcyBmb3VuZCB0aGVyZSwgaXQgd2lsbCBiZSBpbnN0YWxs
ZWQgZnJvbSB0aGVyZS4KKyAgICAgICAgVGhlIHBhdGggb2YgdGhlIGNhY2hlIGlzIHN0b3JlZCBp
biB0aGUgTE9DQUxfQVVUT0lOU1RBTExfQ0FDSEUgZW52aXJvbm1lbnQgdmFyaWFibGUuCisgICAg
ICAgIFRoZSBjYWNoZSBtdXN0IGNvbnRhaW4gdGhlIHBhY2thZ2VzIGluIHRoZWlyIHBhY2tlZCBm
b3JtcyhBcyBpZiB0aGV5IHdlcmUganVzdCBkb3dubG9hZGVkIGZyb20gdGhlIHdlYikKKyAgICAg
ICAgIiIiCisKKyAgICAgICAgaWYgX2NhY2hlX2Vudl92YXIgaW4gb3MuZW52aXJvbjoKKyAgICAg
ICAgICAgIHBhdGggPSBnbG9iKG9zLnBhdGguam9pbihvcy5lbnZpcm9uW19jYWNoZV9lbnZfdmFy
XSwgZmlsZW5hbWUpICsgJyonKQorICAgICAgICAgICAgaWYgcGF0aDoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcGF0aFswXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisKICAgICBkZWYgX2Rvd25sb2FkKHNlbGYsIHVybCwgc2NyYXRjaF9kaXIpOgogICAgICAgICB1
cmxfcGF0aCA9IHVybHBhcnNlLnVybHNwbGl0KHVybClbMl0KICAgICAgICAgdXJsX3BhdGggPSBv
cy5wYXRoLm5vcm1wYXRoKHVybF9wYXRoKSAgIyBSZW1vdmVzIHRyYWlsaW5nIHNsYXNoLgogICAg
ICAgICB0YXJnZXRfZmlsZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHVybF9wYXRoKQotICAgICAg
ICB0YXJnZXRfcGF0aCA9IG9zLnBhdGguam9pbihzY3JhdGNoX2RpciwgdGFyZ2V0X2ZpbGVuYW1l
KQogCisgICAgICAgIGNhY2hlID0gc2VsZi5fZmluZF9pbl9jYWNoZSh0YXJnZXRfZmlsZW5hbWUp
CisgICAgICAgIGlmIGNhY2hlOgorICAgICAgICAgICAgcmV0dXJuIGNhY2hlCisKKyAgICAgICAg
dGFyZ2V0X3BhdGggPSBvcy5wYXRoLmpvaW4oc2NyYXRjaF9kaXIsIHRhcmdldF9maWxlbmFtZSkK
ICAgICAgICAgd2l0aCBvcGVuKHRhcmdldF9wYXRoLCAid2IiKSBhcyBzdHJlYW06CiAgICAgICAg
ICAgICBzZWxmLl9kb3dubG9hZF90b19zdHJlYW0odXJsLCBzdHJlYW0pCiAKKyAgICAgICAgIyBJ
ZiB0aGlzIHBhcnQgb2YgdGhlIGNvZGUgaXMgcmVhY2hlZCwgdGhlcmUgaXMgbm8gY29weSBvZiB0
aGUgcGFja2FnZSBpbiB0aGUgbG9jYWwgY2FjaGUsIHNvIGl0IHdpbGwgYmUgY29waWVkIHRoZXJl
LgorCisgICAgICAgIGlmIF9jYWNoZV9lbnZfdmFyIGluIG9zLmVudmlyb246CisgICAgICAgICAg
ICBkaXJfdXRpbC5jb3B5X3RyZWUoc2NyYXRjaF9kaXIsIG9zLmVudmlyb25bX2NhY2hlX2Vudl92
YXJdKQorCiAgICAgICAgIHJldHVybiB0YXJnZXRfcGF0aAogCiAgICAgZGVmIF9pbnN0YWxsKHNl
bGYsIHNjcmF0Y2hfZGlyLCBwYWNrYWdlX25hbWUsIHRhcmdldF9wYXRoLCB1cmwsIHVybF9zdWJw
YXRoLCBmaWxlc190b19yZW1vdmUpOgo=
</data>
<flag name="review"
          id="241020"
          type_id="1"
          status="-"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="241021"
          type_id="3"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218775</attachid>
            <date>2013-12-09 10:32:25 -0800</date>
            <delta_ts>2013-12-11 02:56:31 -0800</delta_ts>
            <desc>Correcting patch.</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>8605</size>
            <attacher name="Berta József">jberta.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NzRl
OTkyLi5jYjIwZWI5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTMtMTItMDkgIEpvenNlZiBCZXJ0YSAgPGpiZXJ0
YS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBtdWx0aXBsZSBzb3VyY2VzIGZvciBBdXRvSW5zdGFsbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ4NDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgYXV0b2luc3RhbGxlciBpbiB0aGUgd2Vi
a2l0cHkgY3VycmVudGx5IGZhaWxzIGlmIHRoZSBkb3dubG9hZCBzb3VyY2Ugb2YgYSBwYWNrYWdl
IGlzIHVuYXZhaWxhYmxlLgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbXVs
dGlwbGUgc291cmNlcyB0byB0aGUgc2NyaXB0LiBUaGUgc291cmNlcyBhcmUgcHJvdmlkZWQgaW4g
dGhyZWUgZW52aXJvbm1lbnQgdmFyaWFibGVzLgorICAgICAgICBJZiBpdCBleGlzdHMsIHRoZSBz
Y3JpcHQgd2lsbCBsb29rIGF0IGEgbG9jYWwgY2FjaGUuIElmIG5vdCwgaXQgd2lsbCB0cnkgdG8g
ZG93bmxvYWQgdGhlIHBhY2thZ2UgZnJvbSB0aGUgb3JpZ2luYWwgdXJsLgorICAgICAgICBJZiBp
dCBmYWlscywgaXQgZ2V0cyBhIG1pcnJvciBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGVudmlyb25t
ZW50IHZhcmlhYmxlLihPbmUgZm9yIHNvdXJjZWZvcmdlLm9yZyBhbmQgb25lIGZvciBweXBpLnB5
dGhvbi5vcmcpCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vYXV0
b2luc3RhbGwucHk6CisgICAgICAgIChBdXRvSW5zdGFsbGVyLl9jb3B5X3VucGFja2FnZWRfZmls
ZXNfZnJvbV9sb2NhbF9jYWNoZSk6IElmIHRoZSBwYWNrYWdlIGlzIG5vdCBwYWNrYWdlZCBpbiBp
dHMgb3JpZ2luYWwgZm9ybSwKKyAgICAgICAgdGhpcyBtZXRob2Qgd2lsbCBjb3B5IGl0IHRvIHRo
ZSBzY3JhdGNoIGRpcmVjdG9yeS4gT3RoZXJ3aXNlIGl0IHdvdWxkIGJlIGRlbGV0ZWQgZnJvbSB0
aGUgY2FjaGUsIHdoaWNoIHdlIGRvIG5vdCB3YW50LgorICAgICAgICAoQXV0b0luc3RhbGxlci5f
cHJlcGFyZV9wYWNrYWdlKTogSWYgdGhlIHBhY2thZ2UgaXMgbm90IHppcHBlZCBvciB0YXJyZWQs
IGFuZCB0aGUgZmlsZSBpcyBpbiB0aGUgY2FjaGUsIHRoZQorICAgICAgICBfY29weV91bnBhY2th
Z2VkX2ZpbGVzX2Zyb21fbG9jYWxfY2FjaGUgZnVuY3Rpb24gaXMgY2FsbGVkLgorICAgICAgICAo
QXV0b0luc3RhbGxlci5fZ2V0X21pcnJvcnNfZnJvbV9lbnYpOiBUaGlzIHdpbGwgcmVhZCB0aGUg
bWlycm9ycyBmcm9tIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaWYgcG9zc2libGUsCisgICAg
ICAgIGFuZCBwcmVwYXJlcyB0aGVtIGZvciBmdXJ0aGVyIHVzZS4KKyAgICAgICAgKEF1dG9JbnN0
YWxsZXIpOgorICAgICAgICAoQXV0b0luc3RhbGxlci5fcmVwbGFjZV9kb21haW5fd2l0aF9uZXh0
X21pcnJvcik6IElmIHRoZSBvcmlnaW5hbCBkb3dubG9hZCB1cmwgZmFpbHMsIGl0IGlzIHJlcGxh
Y2VkIGJ5IGEgbWlycm9yIHByb3ZpZGVkCisgICAgICAgIGluIHRoZSBlbnZpcm9ubWVudCB2YXJp
YWJsZXMuIFRoZSBmdW5jdGlvbiBpZGVudGlmaWVzIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGFuZCBy
ZXBsYWNlcyBpdCB3aXRoIGEgbWlycm9yLiBJZiBpdCBjYW4ndCBiZSBkb25lLAorICAgICAgICB0
aGUgcmV0dXJuIHVybCB3aWxsIGJlIE5vbmUsIGluZGljYXRpbmcgdGhhdCBubyBtaXJyb3JzIGFy
ZSBwcm92aWRlZCwgb3Igbm9uZSBvZiB0aGVtIGNvdWxkIGJlIHJlYWNoZWQuCisgICAgICAgIChB
dXRvSW5zdGFsbGVyLl9kb3dubG9hZF90b19zdHJlYW0pOiBUaGUgdGltZW91dCBmb3Igb25lIHRy
eSBpcyBub3cgbGltaXRlZCB0byAzMCBzZWNvbmRzLiBXaXRob3V0IHRoaXMsIHRoZSBzY3JpcHQg
d2FpdGVkIGZvcgorICAgICAgICByb3VnaGx5IDQgbWludXRlcyBiZWZvcmUgcmV0cnlpbmcuIEFm
dGVyIHRocmVlIGZhaWxpdXJlcyB0aGUgc2NyaXB0IHdpbGwgdHJ5IHRvIHN3aXRjaCB0byBhIG1p
cnJvci4KKyAgICAgICAgKEF1dG9JbnN0YWxsZXIuX2ZpbmRfaW5fbG9jYWxfYXV0b2luc3RhbGxf
Y2FjaGUpOiBUaGlzIG1ldGhvZCBzZWFyY2hlcyB0aGUgY2FjaGUgZm9yIHRoZSBjdXJyZW50bHkg
ZG93bmxvYWRlZCBtb2R1bGUuCisgICAgICAgIElmIGl0J3MgZm91bmQgdGhlcmUsIGl0cyBwYXRo
IGlzIHJldHVybmVkLgorICAgICAgICAoQXV0b0luc3RhbGxlci5fZG93bmxvYWQpOiAgQmVmb3Jl
IGRvd25sb2FkaW5nIHRoZSBtb2R1bGUsIGl0IGlzIGxvb2tlZCB1cCBpbiB0aGUgY2FjaGUuIElm
IGl0J3Mgbm90IGZvdW5kIHRoZXJlLAorICAgICAgICB0aGUgc2NyaXB0IHdpbGwgY29udGludWUg
d2l0aCB0aGUgZG93bmxvYWQsIGFuZCBjYWNoZSB0aGUgbW9kdWxlLgorCiAyMDEzLTEyLTA4ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgMzItYml0IE1pbmlCcm93c2Vy
IGRvZXNuJ3QgYnVpbGQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9hdXRvaW5zdGFsbC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9hdXRvaW5zdGFsbC5weQppbmRleCAyZTE1ODg3Li4yMGZhNzI3IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vYXV0b2luc3RhbGwucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2F1dG9pbnN0YWxsLnB5CkBAIC00
Miw5ICs0MiwxNiBAQCBpbXBvcnQgdGVtcGZpbGUKIGltcG9ydCB1cmxsaWIyCiBpbXBvcnQgdXJs
cGFyc2UKIGltcG9ydCB6aXBmaWxlCitpbXBvcnQgcmUKK2Zyb20gZGlzdHV0aWxzIGltcG9ydCBk
aXJfdXRpbAorZnJvbSBnbG9iIGltcG9ydCBnbG9iCitpbXBvcnQgdXJscGFyc2UKIAogX2xvZyA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCitfbWlycm9yX3JlZ2V4cyA9IHJlLmNvbXBp
bGUoJy4qc291cmNlZm9yZ2UuKicpLCByZS5jb21waWxlKCcuKnB5cGkuKicpCitfcHlwaV9lbnZf
dmFyID0gJ1BZUElfTUlSUk9SUycKK19zb3VyY2Vmb3JnZV9lbnZfdmFyID0gJ1NPVVJDRUZPUkdF
X01JUlJPUlMnCitfY2FjaGVfZW52X3ZhciA9ICdMT0NBTF9BVVRPSU5TVEFMTF9DQUNIRScKIAog
Y2xhc3MgQXV0b0luc3RhbGxlcihvYmplY3QpOgogCkBAIC0yNTksNiArMjY2LDE0IEBAIGNsYXNz
IEF1dG9JbnN0YWxsZXIob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gdGFyZ2V0X3BhdGgKIAor
ICAgIGRlZiBfY29weV91bnBhY2thZ2VkX2ZpbGVzX2Zyb21fbG9jYWxfY2FjaGUoc2VsZiwgcGF0
aCwgc2NyYXRjaF9kaXIpOgorCisgICAgICAgIHRhcmdldF9iYXNlbmFtZSA9IG9zLnBhdGguYmFz
ZW5hbWUocGF0aCkKKyAgICAgICAgdGFyZ2V0X3BhdGggPSBvcy5wYXRoLmpvaW4oc2NyYXRjaF9k
aXIsIHRhcmdldF9iYXNlbmFtZSkKKworICAgICAgICBzaHV0aWwuY29weShwYXRoLCB0YXJnZXRf
cGF0aCkKKyAgICAgICAgcmV0dXJuIHRhcmdldF9wYXRoCisKICAgICBkZWYgX3ByZXBhcmVfcGFj
a2FnZShzZWxmLCBwYXRoLCBzY3JhdGNoX2Rpcik6CiAgICAgICAgICIiIlByZXBhcmUgYSBwYWNr
YWdlIGZvciB1c2UsIGlmIG5lY2Vzc2FyeSwgYW5kIHJldHVybiB0aGUgbmV3IHBhdGguCiAKQEAg
LTI3NywyNSArMjkyLDcwIEBAIGNsYXNzIEF1dG9JbnN0YWxsZXIob2JqZWN0KToKICAgICAgICAg
ICAgIG5ld19wYXRoID0gc2VsZi5fdW56aXAocGF0aCwgc2NyYXRjaF9kaXIpCiAgICAgICAgIGVs
aWYgcGF0aC5lbmRzd2l0aCgiLnRhci5neiIpOgogICAgICAgICAgICAgbmV3X3BhdGggPSBzZWxm
Ll9leHRyYWN0X3Rhcmd6KHBhdGgsIHNjcmF0Y2hfZGlyKQorICAgICAgICBlbGlmIF9jYWNoZV9l
bnZfdmFyIGluIG9zLmVudmlyb246CisgICAgICAgICAgICBuZXdfcGF0aCA9IHBhdGgKKyAgICAg
ICAgICAgIGlmIG9zLnBhdGguZGlybmFtZShwYXRoKSA9PSBvcy5wYXRoLm5vcm1wYXRoKG9zLmVu
dmlyb25bX2NhY2hlX2Vudl92YXJdKToKKyAgICAgICAgICAgICAgICBuZXdfcGF0aCA9IHNlbGYu
X2NvcHlfdW5wYWNrYWdlZF9maWxlc19mcm9tX2xvY2FsX2NhY2hlKHBhdGgsIHNjcmF0Y2hfZGly
KQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgIyBObyBwcmVwYXJhdGlvbiBpcyBuZWVkZWQu
CiAgICAgICAgICAgICBuZXdfcGF0aCA9IHBhdGgKIAogICAgICAgICByZXR1cm4gbmV3X3BhdGgK
IAorICAgIGRlZiBfZ2V0X21pcnJvcnNfZnJvbV9lbnYoc2VsZik6CisgICAgICAgICIiIklmIHRo
ZSBvcmlnaW5hbCBkb3dubG9hZCB1cmwgZmFpbHMsIGl0IGlzIHJlcGxhY2VkIGJ5IGEgbWlycm9y
IHByb3ZpZGVkIGluIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKKyAgICAgICAgVGhlIGVudmly
b25tZW50IHZhcmlhYmxlcyBtdXN0IGNvbnRhaW4gdGhlIHZhbHVlcyBzZXBhcmF0ZWQgYnkgY29s
b25zLgorICAgICAgICBQeXBpIG1pcnJvciBleGFtbGU6IFBZUElfTUlSUk9SUz1weXBpLmh1c3R1
bmlxdWUuY29tOmUucHlwaS5weXRob24ub3JnLi4uCisgICAgICAgIFNvdXJjZWZvcmdlIG1pcnJv
ciBleGFtcGxlOiBTT1VSQ0VGT1JHRV9NSVJST1JTPWFhcm5ldC5kbC5zb3VyY2Vmb3JnZS5uZXQ6
Y2l0eWxhbi5kbC5zb3VyY2Vmb3JnZS5uZXQ6ZGZuLmRsLnNvdXJjZWZvcmdlLm5ldDpmcmVlZnIu
ZGwuc291cmNlZm9yZ2UubmV0Li4uCisgICAgICAgIE1pcnJvciBzb3VyY2VzOiBodHRwOi8vd3d3
LnB5cGktbWlycm9ycy5vcmcvLCBodHRwOi8vc291cmNlZm9yZ2UubmV0L2FwcHMvdHJhYy9zb3Vy
Y2Vmb3JnZS93aWtpL01pcnJvcnMKKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHB5cGlfbWlycm9yc19saXN0ID0gb3MuZW52aXJvbltfcHlwaV9lbnZfdmFyXS5zcGxpdCgn
OicpCisgICAgICAgIGV4Y2VwdChLZXlFcnJvcik6CisgICAgICAgICAgICBweXBpX21pcnJvcnNf
bGlzdCA9ICgpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc291cmNlZm9yZ2VfbWlycm9y
c19saXN0ID0gb3MuZW52aXJvbltfc291cmNlZm9yZ2VfZW52X3Zhcl0uc3BsaXQoJzonKQorICAg
ICAgICBleGNlcHQoS2V5RXJyb3IpOgorICAgICAgICAgICAgc291cmNlZm9yZ2VfbWlycm9yc19s
aXN0ID0gKCkKKworICAgICAgICBtaXJyb3JsaXN0cyA9IHNvdXJjZWZvcmdlX21pcnJvcnNfbGlz
dCwgcHlwaV9taXJyb3JzX2xpc3QKKyAgICAgICAgcmV0dXJuIHppcChfbWlycm9yX3JlZ2V4cywg
bWlycm9ybGlzdHMpCisKKyAgICBkZWYgX3JlcGxhY2VfZG9tYWluX3dpdGhfbmV4dF9taXJyb3Io
c2VsZiwgdXJsLCBtaXJyb3JzLCBtaXJyb3JfaW5kZXgpOgorCisgICAgICAgIHBhcnNlZF91cmwg
PSBsaXN0KHVybHBhcnNlLnVybHBhcnNlKHVybCkpCisgICAgICAgIG5ld191cmwgPSBOb25lCisK
KyAgICAgICAgZm9yIHJlZ2V4LCBhZGRyZXNzZXMgaW4gbWlycm9yczoKKyAgICAgICAgICAgIGlm
IHJlZ2V4Lm1hdGNoKHBhcnNlZF91cmxbMV0pOgorICAgICAgICAgICAgICAgIGlmIG1pcnJvcl9p
bmRleCA8IGxlbihhZGRyZXNzZXMpOgorICAgICAgICAgICAgICAgICAgICBwYXJzZWRfdXJsWzFd
ID0gYWRkcmVzc2VzW21pcnJvcl9pbmRleF0KKyAgICAgICAgICAgICAgICAgICAgbmV3X3VybCA9
IHVybHBhcnNlLnVybHVucGFyc2UocGFyc2VkX3VybCkKKworICAgICAgICByZXR1cm4gbmV3X3Vy
bAorCiAgICAgZGVmIF9kb3dubG9hZF90b19zdHJlYW0oc2VsZiwgdXJsLCBzdHJlYW0pOgorICAg
ICAgICBtaXJyb3JzID0gc2VsZi5fZ2V0X21pcnJvcnNfZnJvbV9lbnYoKQogICAgICAgICBmYWls
dXJlcyA9IDAKKyAgICAgICAgbWlycm9yX2luZGV4ID0gMAogICAgICAgICB3aGlsZSBUcnVlOgog
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG5ldHN0cmVhbSA9IHVybGxpYjIudXJs
b3Blbih1cmwpCisgICAgICAgICAgICAgICAgbmV0c3RyZWFtID0gdXJsbGliMi51cmxvcGVuKHVy
bCwgdGltZW91dD0zMCkKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgZXhjZXB0
IElPRXJyb3IsIGVycjoKICAgICAgICAgICAgICAgICAjIFRyeSBtdWx0aXBsZSB0aW1lcwotICAg
ICAgICAgICAgICAgIGlmIGZhaWx1cmVzIDwgNToKKyAgICAgICAgICAgICAgICBpZiBmYWlsdXJl
cyA8IDI6CiAgICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygiRmFpbGVkIHRvIGRvd25s
b2FkICVzLCAlcyByZXRyeWluZyIgJSAoCiAgICAgICAgICAgICAgICAgICAgICAgICB1cmwsIGVy
cikpCiAgICAgICAgICAgICAgICAgICAgIGZhaWx1cmVzICs9IDEKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB1
cmwgPSBzZWxmLl9yZXBsYWNlX2RvbWFpbl93aXRoX25leHRfbWlycm9yKHVybCwgbWlycm9ycywg
bWlycm9yX2luZGV4KQorICAgICAgICAgICAgICAgICAgICBpZiB1cmw6CisgICAgICAgICAgICAg
ICAgICAgICAgICBmYWlsdXJlcyA9IDAKKyAgICAgICAgICAgICAgICAgICAgICAgIG1pcnJvcl9p
bmRleCArPSAxCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgICAg
ICAgICAgIyBBcHBlbmQgZXhpc3RpbmcgRXJyb3IgbWVzc2FnZSB0byBuZXcgRXJyb3IuCiAgICAg
ICAgICAgICAgICAgbWVzc2FnZSA9ICgnQ291bGQgbm90IGRvd25sb2FkIFB5dGhvbiBtb2R1bGVz
IGZyb20gVVJMICIlcyIuXG4nCkBAIC0zMTksMTUgKzM3OSwzNSBAQCBjbGFzcyBBdXRvSW5zdGFs
bGVyKG9iamVjdCk6CiAgICAgICAgICAgICBzdHJlYW0ud3JpdGUoZGF0YSkKICAgICAgICAgbmV0
c3RyZWFtLmNsb3NlKCkKIAorICAgIGRlZiBfZmluZF9pbl9sb2NhbF9hdXRvaW5zdGFsbF9jYWNo
ZShzZWxmLCBmaWxlbmFtZSk6CisgICAgICAgICNUaGUgY2FjaGUgbXVzdCBjb250YWluIHRoZSBw
YWNrYWdlcyBpbiB0aGVpciBwYWNrZWQgZm9ybXMoQXMgaWYgdGhleSB3ZXJlIGp1c3QgZG93bmxv
YWRlZCBmcm9tIHRoZSB3ZWIpCisKKyAgICAgICAgI1RoZSBwYXRoIG9mIHRoZSBjYWNoZSBpcyBz
dG9yZWQgaW4gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVkIGluIHRoZSBfY2FjaGVfZW52
X3ZhciB2YXJpYWJsZS4KKyAgICAgICAgaWYgX2NhY2hlX2Vudl92YXIgaW4gb3MuZW52aXJvbjoK
KyAgICAgICAgICAgIHBhdGggPSBnbG9iKG9zLnBhdGguam9pbihvcy5lbnZpcm9uW19jYWNoZV9l
bnZfdmFyXSwgZmlsZW5hbWUpICsgJyonKQorICAgICAgICAgICAgaWYgcGF0aDoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcGF0aFswXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisKICAgICBkZWYgX2Rvd25sb2FkKHNlbGYsIHVybCwgc2NyYXRjaF9kaXIpOgogICAg
ICAgICB1cmxfcGF0aCA9IHVybHBhcnNlLnVybHNwbGl0KHVybClbMl0KICAgICAgICAgdXJsX3Bh
dGggPSBvcy5wYXRoLm5vcm1wYXRoKHVybF9wYXRoKSAgIyBSZW1vdmVzIHRyYWlsaW5nIHNsYXNo
LgogICAgICAgICB0YXJnZXRfZmlsZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHVybF9wYXRoKQot
ICAgICAgICB0YXJnZXRfcGF0aCA9IG9zLnBhdGguam9pbihzY3JhdGNoX2RpciwgdGFyZ2V0X2Zp
bGVuYW1lKQogCisgICAgICAgICNUaGUgaW5zdGFsbGVyIGZpcnN0IGxvb2tzIGF0IHRoZSBsb2Nh
bCBjYWNoZSwgYW5kIGlmIHRoZSBwYWNrYWdlIGlzIGZvdW5kIHRoZXJlLCBpdCB3aWxsIGJlIGlu
c3RhbGxlZCBmcm9tIHRoZXJlLgorICAgICAgICBjYWNoZSA9IHNlbGYuX2ZpbmRfaW5fbG9jYWxf
YXV0b2luc3RhbGxfY2FjaGUodGFyZ2V0X2ZpbGVuYW1lKQorICAgICAgICBpZiBjYWNoZToKKyAg
ICAgICAgICAgIHJldHVybiBjYWNoZQorCisgICAgICAgIHRhcmdldF9wYXRoID0gb3MucGF0aC5q
b2luKHNjcmF0Y2hfZGlyLCB0YXJnZXRfZmlsZW5hbWUpCiAgICAgICAgIHdpdGggb3Blbih0YXJn
ZXRfcGF0aCwgIndiIikgYXMgc3RyZWFtOgogICAgICAgICAgICAgc2VsZi5fZG93bmxvYWRfdG9f
c3RyZWFtKHVybCwgc3RyZWFtKQogCisgICAgICAgICMgSWYgdGhpcyBwYXJ0IG9mIHRoZSBjb2Rl
IGlzIHJlYWNoZWQsIHRoZXJlIGlzIG5vIGNvcHkgb2YgdGhlIHBhY2thZ2UgaW4gdGhlIGxvY2Fs
IGNhY2hlLCBzbyBpdCB3aWxsIGJlIGNvcGllZCB0aGVyZS4KKyAgICAgICAgaWYgX2NhY2hlX2Vu
dl92YXIgaW4gb3MuZW52aXJvbjoKKyAgICAgICAgICAgIGRpcl91dGlsLmNvcHlfdHJlZShzY3Jh
dGNoX2Rpciwgb3MuZW52aXJvbltfY2FjaGVfZW52X3Zhcl0pCisKICAgICAgICAgcmV0dXJuIHRh
cmdldF9wYXRoCiAKICAgICBkZWYgX2luc3RhbGwoc2VsZiwgc2NyYXRjaF9kaXIsIHBhY2thZ2Vf
bmFtZSwgdGFyZ2V0X3BhdGgsIHVybCwgdXJsX3N1YnBhdGgsIGZpbGVzX3RvX3JlbW92ZSk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218945</attachid>
            <date>2013-12-11 02:56:31 -0800</date>
            <delta_ts>2014-01-08 07:32:11 -0800</delta_ts>
            <desc>Replaced the mirror lists with iteratos.</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>8353</size>
            <attacher name="Berta József">jberta.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkMTI0
MDk4Li4zMmM0ZGYyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKworMjAxMy0xMi0xMSAgSm96c2VmIEJlcnRhICA8amJl
cnRhLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIG11bHRpcGxlIHNvdXJjZXMgZm9yIEF1dG9JbnN0YWxsZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDg0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBhdXRvaW5zdGFsbGVyIGluIHRoZSB3
ZWJraXRweSBjdXJyZW50bHkgZmFpbHMgaWYgdGhlIGRvd25sb2FkIHNvdXJjZSBvZiBhIHBhY2th
Z2UgaXMgdW5hdmFpbGFibGUuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBt
dWx0aXBsZSBzb3VyY2VzIHRvIHRoZSBzY3JpcHQuIFRoZSBzb3VyY2VzIGFyZSBwcm92aWRlZCBp
biB0aHJlZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCisgICAgICAgIElmIGl0IGV4aXN0cywgdGhl
IHNjcmlwdCB3aWxsIGxvb2sgYXQgYSBsb2NhbCBjYWNoZS4gSWYgbm90LCBpdCB3aWxsIHRyeSB0
byBkb3dubG9hZCB0aGUgcGFja2FnZSBmcm9tIHRoZSBvcmlnaW5hbCB1cmwuCisgICAgICAgIElm
IGl0IGZhaWxzLCBpdCBnZXRzIGEgbWlycm9yIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgZW52aXJv
bm1lbnQgdmFyaWFibGUuKE9uZSBmb3Igc291cmNlZm9yZ2Uub3JnIGFuZCBvbmUgZm9yIHB5cGku
cHl0aG9uLm9yZykKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9h
dXRvaW5zdGFsbC5weToKKyAgICAgICAgKEF1dG9JbnN0YWxsZXIuX2NvcHlfdW5wYWNrYWdlZF9m
aWxlc19mcm9tX2xvY2FsX2NhY2hlKTogSWYgdGhlIHBhY2thZ2UgaXMgbm90IHBhY2thZ2VkIGlu
IGl0cyBvcmlnaW5hbCBmb3JtLAorICAgICAgICB0aGlzIG1ldGhvZCB3aWxsIGNvcHkgaXQgdG8g
dGhlIHNjcmF0Y2ggZGlyZWN0b3J5LiBPdGhlcndpc2UgaXQgd291bGQgYmUgZGVsZXRlZCBmcm9t
IHRoZSBjYWNoZSwgd2hpY2ggd2UgZG8gbm90IHdhbnQuCisgICAgICAgIChBdXRvSW5zdGFsbGVy
Ll9wcmVwYXJlX3BhY2thZ2UpOiBJZiB0aGUgcGFja2FnZSBpcyBub3QgemlwcGVkIG9yIHRhcnJl
ZCwgYW5kIHRoZSBmaWxlIGlzIGluIHRoZSBjYWNoZSwgdGhlCisgICAgICAgIF9jb3B5X3VucGFj
a2FnZWRfZmlsZXNfZnJvbV9sb2NhbF9jYWNoZSBmdW5jdGlvbiBpcyBjYWxsZWQuCisgICAgICAg
IChBdXRvSW5zdGFsbGVyLl9nZXRfbWlycm9yc19mcm9tX2Vudik6IFRoaXMgd2lsbCByZWFkIHRo
ZSBtaXJyb3JzIGZyb20gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBpZiBwb3NzaWJsZSwKKyAg
ICAgICAgYW5kIHByZXBhcmVzIHRoZW0gZm9yIGZ1cnRoZXIgdXNlLgorICAgICAgICAoQXV0b0lu
c3RhbGxlcik6CisgICAgICAgIChBdXRvSW5zdGFsbGVyLl9yZXBsYWNlX2RvbWFpbl93aXRoX25l
eHRfbWlycm9yKTogSWYgdGhlIG9yaWdpbmFsIGRvd25sb2FkIHVybCBmYWlscywgaXQgaXMgcmVw
bGFjZWQgYnkgYSBtaXJyb3IgcHJvdmlkZWQKKyAgICAgICAgaW4gdGhlIGVudmlyb25tZW50IHZh
cmlhYmxlcy4gVGhlIGZ1bmN0aW9uIGlkZW50aWZpZXMgdGhlIG9yaWdpbmFsIHNvdXJjZSwgYW5k
IHJlcGxhY2VzIGl0IHdpdGggYSBtaXJyb3IuIElmIGl0IGNhbid0IGJlIGRvbmUsCisgICAgICAg
IHRoZSByZXR1cm4gdXJsIHdpbGwgYmUgTm9uZSwgaW5kaWNhdGluZyB0aGF0IG5vIG1pcnJvcnMg
YXJlIHByb3ZpZGVkLCBvciBub25lIG9mIHRoZW0gY291bGQgYmUgcmVhY2hlZC4KKyAgICAgICAg
KEF1dG9JbnN0YWxsZXIuX2Rvd25sb2FkX3RvX3N0cmVhbSk6IFRoZSB0aW1lb3V0IGZvciBvbmUg
dHJ5IGlzIG5vdyBsaW1pdGVkIHRvIDMwIHNlY29uZHMuIFdpdGhvdXQgdGhpcywgdGhlIHNjcmlw
dCB3YWl0ZWQgZm9yCisgICAgICAgIHJvdWdobHkgNCBtaW51dGVzIGJlZm9yZSByZXRyeWluZy4g
QWZ0ZXIgdGhyZWUgZmFpbGl1cmVzIHRoZSBzY3JpcHQgd2lsbCB0cnkgdG8gc3dpdGNoIHRvIGEg
bWlycm9yLgorICAgICAgICAoQXV0b0luc3RhbGxlci5fZmluZF9pbl9sb2NhbF9hdXRvaW5zdGFs
bF9jYWNoZSk6IFRoaXMgbWV0aG9kIHNlYXJjaGVzIHRoZSBjYWNoZSBmb3IgdGhlIGN1cnJlbnRs
eSBkb3dubG9hZGVkIG1vZHVsZS4KKyAgICAgICAgSWYgaXQncyBmb3VuZCB0aGVyZSwgaXRzIHBh
dGggaXMgcmV0dXJuZWQuCisgICAgICAgIChBdXRvSW5zdGFsbGVyLl9kb3dubG9hZCk6ICBCZWZv
cmUgZG93bmxvYWRpbmcgdGhlIG1vZHVsZSwgaXQgaXMgbG9va2VkIHVwIGluIHRoZSBjYWNoZS4g
SWYgaXQncyBub3QgZm91bmQgdGhlcmUsCisgICAgICAgIHRoZSBzY3JpcHQgd2lsbCBjb250aW51
ZSB3aXRoIHRoZSBkb3dubG9hZCwgYW5kIGNhY2hlIHRoZSBtb2R1bGUuCisKIDIwMTMtMTItMDMg
IE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTI1MTM5PiBNb2Rlcm5pemUgdGhlIFdlYktpdCBBUEkgaGVhZGVycwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2F1dG9pbnN0YWxsLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2F1dG9pbnN0YWxsLnB5CmluZGV4
IDJlMTU4ODcuLmY4YWM3MTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9hdXRvaW5zdGFsbC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vYXV0b2luc3RhbGwucHkKQEAgLTQyLDkgKzQyLDE2IEBAIGltcG9ydCB0ZW1w
ZmlsZQogaW1wb3J0IHVybGxpYjIKIGltcG9ydCB1cmxwYXJzZQogaW1wb3J0IHppcGZpbGUKK2lt
cG9ydCByZQorZnJvbSBkaXN0dXRpbHMgaW1wb3J0IGRpcl91dGlsCitmcm9tIGdsb2IgaW1wb3J0
IGdsb2IKK2ltcG9ydCB1cmxwYXJzZQogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCi0KK19NSVJST1JfUkVHRVhTID0gcmUuY29tcGlsZSgnLipzb3VyY2Vmb3JnZS4qJyksIHJl
LmNvbXBpbGUoJy4qcHlwaS4qJykKK19QWVBJX0VOVl9WQVIgPSAnUFlQSV9NSVJST1JTJworX1NP
VVJDRUZPUkdFX0VOVl9WQVIgPSAnU09VUkNFRk9SR0VfTUlSUk9SUycKK19DQUNIRV9FTlZfVkFS
ID0gJ0xPQ0FMX0FVVE9JTlNUQUxMX0NBQ0hFJwogCiBjbGFzcyBBdXRvSW5zdGFsbGVyKG9iamVj
dCk6CiAKQEAgLTI1OSw2ICsyNjYsMTQgQEAgY2xhc3MgQXV0b0luc3RhbGxlcihvYmplY3QpOgog
CiAgICAgICAgIHJldHVybiB0YXJnZXRfcGF0aAogCisgICAgZGVmIF9jb3B5X3VucGFja2FnZWRf
ZmlsZXNfZnJvbV9sb2NhbF9jYWNoZShzZWxmLCBwYXRoLCBzY3JhdGNoX2Rpcik6CisKKyAgICAg
ICAgdGFyZ2V0X2Jhc2VuYW1lID0gb3MucGF0aC5iYXNlbmFtZShwYXRoKQorICAgICAgICB0YXJn
ZXRfcGF0aCA9IG9zLnBhdGguam9pbihzY3JhdGNoX2RpciwgdGFyZ2V0X2Jhc2VuYW1lKQorCisg
ICAgICAgIHNodXRpbC5jb3B5KHBhdGgsIHRhcmdldF9wYXRoKQorICAgICAgICByZXR1cm4gdGFy
Z2V0X3BhdGgKKwogICAgIGRlZiBfcHJlcGFyZV9wYWNrYWdlKHNlbGYsIHBhdGgsIHNjcmF0Y2hf
ZGlyKToKICAgICAgICAgIiIiUHJlcGFyZSBhIHBhY2thZ2UgZm9yIHVzZSwgaWYgbmVjZXNzYXJ5
LCBhbmQgcmV0dXJuIHRoZSBuZXcgcGF0aC4KIApAQCAtMjc3LDI1ICsyOTIsNjkgQEAgY2xhc3Mg
QXV0b0luc3RhbGxlcihvYmplY3QpOgogICAgICAgICAgICAgbmV3X3BhdGggPSBzZWxmLl91bnpp
cChwYXRoLCBzY3JhdGNoX2RpcikKICAgICAgICAgZWxpZiBwYXRoLmVuZHN3aXRoKCIudGFyLmd6
Iik6CiAgICAgICAgICAgICBuZXdfcGF0aCA9IHNlbGYuX2V4dHJhY3RfdGFyZ3oocGF0aCwgc2Ny
YXRjaF9kaXIpCisgICAgICAgIGVsaWYgX0NBQ0hFX0VOVl9WQVIgaW4gb3MuZW52aXJvbjoKKyAg
ICAgICAgICAgIG5ld19wYXRoID0gcGF0aAorICAgICAgICAgICAgaWYgb3MucGF0aC5kaXJuYW1l
KHBhdGgpID09IG9zLnBhdGgubm9ybXBhdGgob3MuZW52aXJvbltfQ0FDSEVfRU5WX1ZBUl0pOgor
ICAgICAgICAgICAgICAgIG5ld19wYXRoID0gc2VsZi5fY29weV91bnBhY2thZ2VkX2ZpbGVzX2Zy
b21fbG9jYWxfY2FjaGUocGF0aCwgc2NyYXRjaF9kaXIpCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICAjIE5vIHByZXBhcmF0aW9uIGlzIG5lZWRlZC4KICAgICAgICAgICAgIG5ld19wYXRoID0g
cGF0aAogCiAgICAgICAgIHJldHVybiBuZXdfcGF0aAogCisgICAgZGVmIF9nZXRfbWlycm9yc19m
cm9tX2VudihzZWxmKToKKyAgICAgICAgIiIiSWYgdGhlIG9yaWdpbmFsIGRvd25sb2FkIHVybCBm
YWlscywgaXQgaXMgcmVwbGFjZWQgYnkgYSBtaXJyb3IgcHJvdmlkZWQgaW4gdGhlIGVudmlyb25t
ZW50IHZhcmlhYmxlcworICAgICAgICBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG11c3QgY29u
dGFpbiB0aGUgdmFsdWVzIHNlcGFyYXRlZCBieSBjb2xvbnMuCisgICAgICAgIFB5cGkgbWlycm9y
IGV4YW1sZTogUFlQSV9NSVJST1JTPXB5cGkuaHVzdHVuaXF1ZS5jb206ZS5weXBpLnB5dGhvbi5v
cmcuLi4KKyAgICAgICAgU291cmNlZm9yZ2UgbWlycm9yIGV4YW1wbGU6IFNPVVJDRUZPUkdFX01J
UlJPUlM9YWFybmV0LmRsLnNvdXJjZWZvcmdlLm5ldDpjaXR5bGFuLmRsLnNvdXJjZWZvcmdlLm5l
dDpkZm4uZGwuc291cmNlZm9yZ2UubmV0OmZyZWVmci5kbC5zb3VyY2Vmb3JnZS5uZXQuLi4KKyAg
ICAgICAgTWlycm9yIHNvdXJjZXM6IGh0dHA6Ly93d3cucHlwaS1taXJyb3JzLm9yZy8sIGh0dHA6
Ly9zb3VyY2Vmb3JnZS5uZXQvYXBwcy90cmFjL3NvdXJjZWZvcmdlL3dpa2kvTWlycm9ycworICAg
ICAgICAiIiIKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBweXBpX21pcnJvcnNfbGlzdCA9
IG9zLmVudmlyb25bX1BZUElfRU5WX1ZBUl0uc3BsaXQoJzonKQorICAgICAgICBleGNlcHQoS2V5
RXJyb3IpOgorICAgICAgICAgICAgcHlwaV9taXJyb3JzX2xpc3QgPSAoKQorCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHNvdXJjZWZvcmdlX21pcnJvcnNfbGlzdCA9IG9zLmVudmlyb25bX1NP
VVJDRUZPUkdFX0VOVl9WQVJdLnNwbGl0KCc6JykKKyAgICAgICAgZXhjZXB0KEtleUVycm9yKToK
KyAgICAgICAgICAgIHNvdXJjZWZvcmdlX21pcnJvcnNfbGlzdCA9ICgpCisKKyAgICAgICAgbWly
cm9yaXRlcmF0b3JzID0gaXRlcihzb3VyY2Vmb3JnZV9taXJyb3JzX2xpc3QpLCBpdGVyKHB5cGlf
bWlycm9yc19saXN0KQorICAgICAgICByZXR1cm4gemlwKF9NSVJST1JfUkVHRVhTLCBtaXJyb3Jp
dGVyYXRvcnMpCisKKyAgICBkZWYgX3JlcGxhY2VfZG9tYWluX3dpdGhfbmV4dF9taXJyb3Ioc2Vs
ZiwgdXJsLCBtaXJyb3JzKToKKyAgICAgICAgcGFyc2VkX3VybCA9IGxpc3QodXJscGFyc2UudXJs
cGFyc2UodXJsKSkKKyAgICAgICAgbmV3X3VybCA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgZm9yIHJlZ2V4LCBhZGRyZXNzZXMgaW4gbWlycm9yczoKKyAgICAgICAgICAgICAgICBp
ZiByZWdleC5tYXRjaChwYXJzZWRfdXJsWzFdKToKKyAgICAgICAgICAgICAgICAgICAgcGFyc2Vk
X3VybFsxXSA9IGFkZHJlc3Nlcy5uZXh0KCkKKyAgICAgICAgICAgICAgICAgICAgbmV3X3VybCA9
IHVybHBhcnNlLnVybHVucGFyc2UocGFyc2VkX3VybCkKKyAgICAgICAgZXhjZXB0IFN0b3BJdGVy
YXRpb24sIGU6CisgICAgICAgICAgICBfbG9nLmluZm8oJ1JhbiBvdXQgb2YgbWlycm9ycy4nKQor
CisgICAgICAgIHJldHVybiBuZXdfdXJsCisKICAgICBkZWYgX2Rvd25sb2FkX3RvX3N0cmVhbShz
ZWxmLCB1cmwsIHN0cmVhbSk6CisgICAgICAgIG1pcnJvcnMgPSBzZWxmLl9nZXRfbWlycm9yc19m
cm9tX2VudigpCiAgICAgICAgIGZhaWx1cmVzID0gMAogICAgICAgICB3aGlsZSBUcnVlOgogICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG5ldHN0cmVhbSA9IHVybGxpYjIudXJsb3Bl
bih1cmwpCisgICAgICAgICAgICAgICAgbmV0c3RyZWFtID0gdXJsbGliMi51cmxvcGVuKHVybCwg
dGltZW91dD0zMCkKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgZXhjZXB0IElP
RXJyb3IsIGVycjoKICAgICAgICAgICAgICAgICAjIFRyeSBtdWx0aXBsZSB0aW1lcwotICAgICAg
ICAgICAgICAgIGlmIGZhaWx1cmVzIDwgNToKKyAgICAgICAgICAgICAgICBpZiBmYWlsdXJlcyA8
IDI6CiAgICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygiRmFpbGVkIHRvIGRvd25sb2Fk
ICVzLCAlcyByZXRyeWluZyIgJSAoCiAgICAgICAgICAgICAgICAgICAgICAgICB1cmwsIGVycikp
CiAgICAgICAgICAgICAgICAgICAgIGZhaWx1cmVzICs9IDEKICAgICAgICAgICAgICAgICAgICAg
Y29udGludWUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB1cmwg
PSBzZWxmLl9yZXBsYWNlX2RvbWFpbl93aXRoX25leHRfbWlycm9yKHVybCwgbWlycm9ycykKKyAg
ICAgICAgICAgICAgICAgICAgaWYgdXJsOgorICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVy
ZXMgPSAwCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgICAgICAg
ICAgIyBBcHBlbmQgZXhpc3RpbmcgRXJyb3IgbWVzc2FnZSB0byBuZXcgRXJyb3IuCiAgICAgICAg
ICAgICAgICAgbWVzc2FnZSA9ICgnQ291bGQgbm90IGRvd25sb2FkIFB5dGhvbiBtb2R1bGVzIGZy
b20gVVJMICIlcyIuXG4nCkBAIC0zMTksMTUgKzM3OCwzMyBAQCBjbGFzcyBBdXRvSW5zdGFsbGVy
KG9iamVjdCk6CiAgICAgICAgICAgICBzdHJlYW0ud3JpdGUoZGF0YSkKICAgICAgICAgbmV0c3Ry
ZWFtLmNsb3NlKCkKIAorICAgIGRlZiBfZmluZF9pbl9sb2NhbF9hdXRvaW5zdGFsbF9jYWNoZShz
ZWxmLCBmaWxlbmFtZSk6CisgICAgICAgICMgVGhlIGNhY2hlIG11c3QgY29udGFpbiB0aGUgcGFj
a2FnZXMgaW4gdGhlaXIgcGFja2VkIGZvcm1zLCBhcyBpZiB0aGV5IHdlcmUganVzdCBkb3dubG9h
ZGVkIGZyb20gdGhlIHdlYi4KKworICAgICAgICAjIFRoZSBwYXRoIG9mIHRoZSBjYWNoZSBpcyBz
dG9yZWQgaW4gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVkIGluIHRoZSBfQ0FDSEVfRU5W
X1ZBUiB2YXJpYWJsZS4KKyAgICAgICAgaWYgX0NBQ0hFX0VOVl9WQVIgaW4gb3MuZW52aXJvbjoK
KyAgICAgICAgICAgIHBhdGggPSBnbG9iKG9zLnBhdGguam9pbihvcy5lbnZpcm9uW19DQUNIRV9F
TlZfVkFSXSwgZmlsZW5hbWUpICsgJyonKQorICAgICAgICAgICAgaWYgcGF0aDoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcGF0aFswXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisKICAgICBkZWYgX2Rvd25sb2FkKHNlbGYsIHVybCwgc2NyYXRjaF9kaXIpOgogICAg
ICAgICB1cmxfcGF0aCA9IHVybHBhcnNlLnVybHNwbGl0KHVybClbMl0KICAgICAgICAgdXJsX3Bh
dGggPSBvcy5wYXRoLm5vcm1wYXRoKHVybF9wYXRoKSAgIyBSZW1vdmVzIHRyYWlsaW5nIHNsYXNo
LgogICAgICAgICB0YXJnZXRfZmlsZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHVybF9wYXRoKQot
ICAgICAgICB0YXJnZXRfcGF0aCA9IG9zLnBhdGguam9pbihzY3JhdGNoX2RpciwgdGFyZ2V0X2Zp
bGVuYW1lKQogCisgICAgICAgIGNhY2hlID0gc2VsZi5fZmluZF9pbl9sb2NhbF9hdXRvaW5zdGFs
bF9jYWNoZSh0YXJnZXRfZmlsZW5hbWUpCisgICAgICAgIGlmIGNhY2hlOgorICAgICAgICAgICAg
cmV0dXJuIGNhY2hlCisKKyAgICAgICAgdGFyZ2V0X3BhdGggPSBvcy5wYXRoLmpvaW4oc2NyYXRj
aF9kaXIsIHRhcmdldF9maWxlbmFtZSkKICAgICAgICAgd2l0aCBvcGVuKHRhcmdldF9wYXRoLCAi
d2IiKSBhcyBzdHJlYW06CiAgICAgICAgICAgICBzZWxmLl9kb3dubG9hZF90b19zdHJlYW0odXJs
LCBzdHJlYW0pCiAKKyAgICAgICAgaWYgX0NBQ0hFX0VOVl9WQVIgaW4gb3MuZW52aXJvbjoKKyAg
ICAgICAgICAgIGRpcl91dGlsLmNvcHlfdHJlZShzY3JhdGNoX2Rpciwgb3MuZW52aXJvbltfQ0FD
SEVfRU5WX1ZBUl0pCisKICAgICAgICAgcmV0dXJuIHRhcmdldF9wYXRoCiAKICAgICBkZWYgX2lu
c3RhbGwoc2VsZiwgc2NyYXRjaF9kaXIsIHBhY2thZ2VfbmFtZSwgdGFyZ2V0X3BhdGgsIHVybCwg
dXJsX3N1YnBhdGgsIGZpbGVzX3RvX3JlbW92ZSk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220629</attachid>
            <date>2014-01-08 07:32:11 -0800</date>
            <delta_ts>2014-02-06 15:58:22 -0800</delta_ts>
            <desc>Modifying patch.</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>7974</size>
            <attacher name="Berta József">jberta.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYTQy
M2IwLi4zOWE3ODIzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTQtMDEtMDggIEpvenNlZiBCZXJ0YSAgPGpiZXJ0
YS51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBtdWx0aXBsZSBzb3VyY2VzIGZvciBBdXRvSW5zdGFsbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ4NDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgYXV0b2luc3RhbGxlciBpbiB0aGUgd2Vi
a2l0cHkgY3VycmVudGx5IGZhaWxzIGlmIHRoZSBkb3dubG9hZCBzb3VyY2Ugb2YgYSBwYWNrYWdl
IGlzIHVuYXZhaWxhYmxlLgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbXVs
dGlwbGUgc291cmNlcyB0byB0aGUgc2NyaXB0LiBUaGUgc291cmNlcyBhcmUgcHJvdmlkZWQgaW4g
dGhyZWUgZW52aXJvbm1lbnQgdmFyaWFibGVzLgorICAgICAgICBJZiBpdCBleGlzdHMsIHRoZSBz
Y3JpcHQgd2lsbCBsb29rIGF0IGEgbG9jYWwgY2FjaGUuIElmIG5vdCwgaXQgd2lsbCB0cnkgdG8g
ZG93bmxvYWQgdGhlIHBhY2thZ2UgZnJvbSB0aGUgb3JpZ2luYWwgdXJsLgorICAgICAgICBJZiBp
dCBmYWlscywgaXQgZ2V0cyBhIG1pcnJvciBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGVudmlyb25t
ZW50IHZhcmlhYmxlLihPbmUgZm9yIHNvdXJjZWZvcmdlLm9yZyBhbmQgb25lIGZvciBweXBpLnB5
dGhvbi5vcmcpCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vYXV0
b2luc3RhbGwucHk6CisgICAgICAgIChBdXRvSW5zdGFsbGVyLl9jb3B5X3VucGFja2FnZWRfZmls
ZXNfZnJvbV9sb2NhbF9jYWNoZSk6ICBJZiB0aGUgcGFja2FnZSBpcyBub3QgcGFja2FnZWQgaW4g
aXRzIG9yaWdpbmFsIGZvcm0sCisgICAgICAgIHRoaXMgbWV0aG9kIHdpbGwgY29weSBpdCB0byB0
aGUgc2NyYXRjaCBkaXJlY3RvcnkuIE90aGVyd2lzZSBpdCB3b3VsZCBiZSBkZWxldGVkIGZyb20g
dGhlIGNhY2hlLCB3aGljaCB3ZSBkbyBub3Qgd2FudC4KKyAgICAgICAgKEF1dG9JbnN0YWxsZXIu
X3ByZXBhcmVfcGFja2FnZSk6IElmIHRoZSBwYWNrYWdlIGlzIG5vdCB6aXBwZWQgb3IgdGFycmVk
LCBhbmQgdGhlIGZpbGUgaXMgaW4gdGhlIGNhY2hlLCB0aGUKKyAgICAgICAgX2NvcHlfdW5wYWNr
YWdlZF9maWxlc19mcm9tX2xvY2FsX2NhY2hlIGZ1bmN0aW9uIGlzIGNhbGxlZC4KKyAgICAgICAg
KEF1dG9JbnN0YWxsZXIuX3BhcnNlX2NvbG9uX3NlcGFyYXRlZF9taXJyb3JzX2Zyb21fZW52KTog
VGhpcyB3aWxsIHJlYWQgdGhlIG1pcnJvcnMgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVz
IGlmIHBvc3NpYmxlLAorICAgICAgICBhbmQgcHJlcGFyZXMgdGhlbSBmb3IgZnVydGhlciB1c2Uu
CisgICAgICAgIChBdXRvSW5zdGFsbGVyKToKKyAgICAgICAgKEF1dG9JbnN0YWxsZXIuX3JlcGxh
Y2VfZG9tYWluX3dpdGhfbmV4dF9taXJyb3IpOiBJZiB0aGUgb3JpZ2luYWwgZG93bmxvYWQgdXJs
IGZhaWxzLCBpdCBpcyByZXBsYWNlZCBieSBhIG1pcnJvciBwcm92aWRlZAorICAgICAgICBpbiB0
aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBUaGUgZnVuY3Rpb24gaWRlbnRpZmllcyB0aGUgb3Jp
Z2luYWwgc291cmNlLCBhbmQgcmVwbGFjZXMgaXQgd2l0aCBhIG1pcnJvci4gSWYgaXQgY2FuJ3Qg
YmUgZG9uZSwKKyAgICAgICAgdGhlIHJldHVybiB1cmwgd2lsbCBiZSBOb25lLCBpbmRpY2F0aW5n
IHRoYXQgbm8gbWlycm9ycyBhcmUgcHJvdmlkZWQsIG9yIG5vbmUgb2YgdGhlbSBjb3VsZCBiZSBy
ZWFjaGVkLgorICAgICAgICAoQXV0b0luc3RhbGxlci5fZG93bmxvYWRfdG9fc3RyZWFtKTogVGhl
IHRpbWVvdXQgZm9yIG9uZSB0cnkgaXMgbm93IGxpbWl0ZWQgdG8gMzAgc2Vjb25kcy4gV2l0aG91
dCB0aGlzLCB0aGUgc2NyaXB0IHdhaXRlZCBmb3IKKyAgICAgICAgcm91Z2hseSA0IG1pbnV0ZXMg
YmVmb3JlIHJldHJ5aW5nLiBBZnRlciB0aHJlZSBmYWlsaXVyZXMgdGhlIHNjcmlwdCB3aWxsIHRy
eSB0byBzd2l0Y2ggdG8gYSBtaXJyb3IuCisgICAgICAgIChBdXRvSW5zdGFsbGVyLl9jaGVja19w
YWNrYWdlX2luX2xvY2FsX2F1dG9pbnN0YWxsX2NhY2hlKTogVGhpcyBtZXRob2Qgc2VhcmNoZXMg
dGhlIGNhY2hlIGZvciB0aGUgY3VycmVudGx5IGRvd25sb2FkZWQgbW9kdWxlLgorICAgICAgICBJ
ZiBpdCdzIGZvdW5kIHRoZXJlLCBpdHMgcGF0aCBpcyByZXR1cm5lZC4KKyAgICAgICAgKEF1dG9J
bnN0YWxsZXIuX2Rvd25sb2FkKTogIEJlZm9yZSBkb3dubG9hZGluZyB0aGUgbW9kdWxlLCBpdCBp
cyBsb29rZWQgdXAgaW4gdGhlIGNhY2hlLiBJZiBpdCdzIG5vdCBmb3VuZCB0aGVyZSwKKyAgICAg
ICAgdGhlIHNjcmlwdCB3aWxsIGNvbnRpbnVlIHdpdGggdGhlIGRvd25sb2FkLCBhbmQgY2FjaGUg
dGhlIG1vZHVsZS4KKwogMjAxNC0wMS0wOCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxp
YS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2F1dG9pbnN0YWxsLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2F1dG9pbnN0YWxsLnB5CmluZGV4IDJl
MTU4ODcuLjMyZWM3MmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9hdXRvaW5zdGFsbC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vYXV0b2luc3RhbGwucHkKQEAgLTQyLDkgKzQyLDE2IEBAIGltcG9ydCB0ZW1wZmls
ZQogaW1wb3J0IHVybGxpYjIKIGltcG9ydCB1cmxwYXJzZQogaW1wb3J0IHppcGZpbGUKK2ltcG9y
dCByZQorZnJvbSBkaXN0dXRpbHMgaW1wb3J0IGRpcl91dGlsCitmcm9tIGdsb2IgaW1wb3J0IGds
b2IKK2ltcG9ydCB1cmxwYXJzZQogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18p
Ci0KK19NSVJST1JfUkVHRVhTID0gcmUuY29tcGlsZSgnLipzb3VyY2Vmb3JnZS4qJyksIHJlLmNv
bXBpbGUoJy4qcHlwaS4qJykKK19QWVBJX0VOVl9WQVIgPSAnUFlQSV9NSVJST1JTJworX1NPVVJD
RUZPUkdFX0VOVl9WQVIgPSAnU09VUkNFRk9SR0VfTUlSUk9SUycKK19DQUNIRV9FTlZfVkFSID0g
J0xPQ0FMX0FVVE9JTlNUQUxMX0NBQ0hFJwogCiBjbGFzcyBBdXRvSW5zdGFsbGVyKG9iamVjdCk6
CiAKQEAgLTI1OSw2ICsyNjYsMTQgQEAgY2xhc3MgQXV0b0luc3RhbGxlcihvYmplY3QpOgogCiAg
ICAgICAgIHJldHVybiB0YXJnZXRfcGF0aAogCisgICAgZGVmIF9jb3B5X3VucGFja2FnZWRfZmls
ZXNfZnJvbV9sb2NhbF9jYWNoZShzZWxmLCBwYXRoLCBzY3JhdGNoX2Rpcik6CisKKyAgICAgICAg
dGFyZ2V0X2Jhc2VuYW1lID0gb3MucGF0aC5iYXNlbmFtZShwYXRoKQorICAgICAgICB0YXJnZXRf
cGF0aCA9IG9zLnBhdGguam9pbihzY3JhdGNoX2RpciwgdGFyZ2V0X2Jhc2VuYW1lKQorCisgICAg
ICAgIHNodXRpbC5jb3B5KHBhdGgsIHRhcmdldF9wYXRoKQorICAgICAgICByZXR1cm4gdGFyZ2V0
X3BhdGgKKwogICAgIGRlZiBfcHJlcGFyZV9wYWNrYWdlKHNlbGYsIHBhdGgsIHNjcmF0Y2hfZGly
KToKICAgICAgICAgIiIiUHJlcGFyZSBhIHBhY2thZ2UgZm9yIHVzZSwgaWYgbmVjZXNzYXJ5LCBh
bmQgcmV0dXJuIHRoZSBuZXcgcGF0aC4KIApAQCAtMjc3LDI2ICsyOTIsNjggQEAgY2xhc3MgQXV0
b0luc3RhbGxlcihvYmplY3QpOgogICAgICAgICAgICAgbmV3X3BhdGggPSBzZWxmLl91bnppcChw
YXRoLCBzY3JhdGNoX2RpcikKICAgICAgICAgZWxpZiBwYXRoLmVuZHN3aXRoKCIudGFyLmd6Iik6
CiAgICAgICAgICAgICBuZXdfcGF0aCA9IHNlbGYuX2V4dHJhY3RfdGFyZ3oocGF0aCwgc2NyYXRj
aF9kaXIpCisgICAgICAgIGVsaWYgX0NBQ0hFX0VOVl9WQVIgaW4gb3MuZW52aXJvbjoKKyAgICAg
ICAgICAgIG5ld19wYXRoID0gcGF0aAorICAgICAgICAgICAgaWYgb3MucGF0aC5kaXJuYW1lKHBh
dGgpID09IG9zLnBhdGgubm9ybXBhdGgob3MuZW52aXJvbltfQ0FDSEVfRU5WX1ZBUl0pOgorICAg
ICAgICAgICAgICAgIG5ld19wYXRoID0gc2VsZi5fY29weV91bnBhY2thZ2VkX2ZpbGVzX2Zyb21f
bG9jYWxfY2FjaGUocGF0aCwgc2NyYXRjaF9kaXIpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICAjIE5vIHByZXBhcmF0aW9uIGlzIG5lZWRlZC4KICAgICAgICAgICAgIG5ld19wYXRoID0gcGF0
aAogCiAgICAgICAgIHJldHVybiBuZXdfcGF0aAogCisgICAgZGVmIF9wYXJzZV9jb2xvbl9zZXBh
cmF0ZWRfbWlycm9yc19mcm9tX2VudihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFB5cGkg
bWlycm9yIGV4YW1sZTogUFlQSV9NSVJST1JTPXB5cGkuaHVzdHVuaXF1ZS5jb20uLi4KKyAgICAg
ICAgU291cmNlZm9yZ2UgbWlycm9yIGV4YW1wbGU6IFNPVVJDRUZPUkdFX01JUlJPUlM9YWFybmV0
LmRsLnNvdXJjZWZvcmdlLm5ldDpjaXR5bGFuLmRsLnNvdXJjZWZvcmdlLm5ldC4uLgorICAgICAg
ICBNaXJyb3Igc291cmNlczogaHR0cDovL3d3dy5weXBpLW1pcnJvcnMub3JnLywgaHR0cDovL3Nv
dXJjZWZvcmdlLm5ldC9hcHBzL3RyYWMvc291cmNlZm9yZ2Uvd2lraS9NaXJyb3JzCisgICAgICAg
ICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBweXBpX21pcnJvcnNfbGlzdCA9IG9zLmVu
dmlyb25bX1BZUElfRU5WX1ZBUl0uc3BsaXQoJzonKQorICAgICAgICBleGNlcHQoS2V5RXJyb3Ip
OgorICAgICAgICAgICAgcHlwaV9taXJyb3JzX2xpc3QgPSAoKQorCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHNvdXJjZWZvcmdlX21pcnJvcnNfbGlzdCA9IG9zLmVudmlyb25bX1NPVVJDRUZP
UkdFX0VOVl9WQVJdLnNwbGl0KCc6JykKKyAgICAgICAgZXhjZXB0KEtleUVycm9yKToKKyAgICAg
ICAgICAgIHNvdXJjZWZvcmdlX21pcnJvcnNfbGlzdCA9ICgpCisKKyAgICAgICAgbWlycm9yaXRl
cmF0b3JzID0gaXRlcihzb3VyY2Vmb3JnZV9taXJyb3JzX2xpc3QpLCBpdGVyKHB5cGlfbWlycm9y
c19saXN0KQorICAgICAgICByZXR1cm4gemlwKF9NSVJST1JfUkVHRVhTLCBtaXJyb3JpdGVyYXRv
cnMpCisKKyAgICBkZWYgX3JlcGxhY2VfZG9tYWluX3dpdGhfbmV4dF9taXJyb3Ioc2VsZiwgdXJs
LCBtaXJyb3JzKToKKyAgICAgICAgcGFyc2VkX3VybCA9IGxpc3QodXJscGFyc2UudXJscGFyc2Uo
dXJsKSkKKyAgICAgICAgbmV3X3VybCA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
Zm9yIHJlZ2V4LCBhZGRyZXNzZXMgaW4gbWlycm9yczoKKyAgICAgICAgICAgICAgICBpZiByZWdl
eC5tYXRjaChwYXJzZWRfdXJsWzFdKToKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VkX3VybFsx
XSA9IGFkZHJlc3Nlcy5uZXh0KCkKKyAgICAgICAgICAgICAgICAgICAgbmV3X3VybCA9IHVybHBh
cnNlLnVybHVucGFyc2UocGFyc2VkX3VybCkKKyAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb24s
IGU6CisgICAgICAgICAgICBfbG9nLmluZm8oJ1JhbiBvdXQgb2YgbWlycm9ycy4nKQorCisgICAg
ICAgIHJldHVybiBuZXdfdXJsCisKICAgICBkZWYgX2Rvd25sb2FkX3RvX3N0cmVhbShzZWxmLCB1
cmwsIHN0cmVhbSk6CisgICAgICAgIG1pcnJvcnMgPSBzZWxmLl9wYXJzZV9jb2xvbl9zZXBhcmF0
ZWRfbWlycm9yc19mcm9tX2VudigpCiAgICAgICAgIGZhaWx1cmVzID0gMAogICAgICAgICB3aGls
ZSBUcnVlOgogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG5ldHN0cmVhbSA9IHVy
bGxpYjIudXJsb3Blbih1cmwpCisgICAgICAgICAgICAgICAgbmV0c3RyZWFtID0gdXJsbGliMi51
cmxvcGVuKHVybCwgdGltZW91dD0zMCkKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAg
ICAgZXhjZXB0IElPRXJyb3IsIGVycjoKICAgICAgICAgICAgICAgICAjIFRyeSBtdWx0aXBsZSB0
aW1lcwotICAgICAgICAgICAgICAgIGlmIGZhaWx1cmVzIDwgNToKKyAgICAgICAgICAgICAgICBp
ZiBmYWlsdXJlcyA8IDI6CiAgICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygiRmFpbGVk
IHRvIGRvd25sb2FkICVzLCAlcyByZXRyeWluZyIgJSAoCiAgICAgICAgICAgICAgICAgICAgICAg
ICB1cmwsIGVycikpCiAgICAgICAgICAgICAgICAgICAgIGZhaWx1cmVzICs9IDEKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWUKIAorICAgICAgICAgICAgICAgIHVybCA9IHNlbGYuX3JlcGxh
Y2VfZG9tYWluX3dpdGhfbmV4dF9taXJyb3IodXJsLCBtaXJyb3JzKQorICAgICAgICAgICAgICAg
IGlmIHVybDoKKyAgICAgICAgICAgICAgICAgICAgZmFpbHVyZXMgPSAwCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisKICAgICAgICAgICAgICAgICAjIEFwcGVuZCBleGlzdGluZyBFcnJv
ciBtZXNzYWdlIHRvIG5ldyBFcnJvci4KICAgICAgICAgICAgICAgICBtZXNzYWdlID0gKCdDb3Vs
ZCBub3QgZG93bmxvYWQgUHl0aG9uIG1vZHVsZXMgZnJvbSBVUkwgIiVzIi5cbicKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIgTWFrZSBzdXJlIHlvdSBhcmUgY29ubmVjdGVkIHRvIHRoZSBp
bnRlcm5ldC5cbiIKQEAgLTMxOSwxNSArMzc2LDMxIEBAIGNsYXNzIEF1dG9JbnN0YWxsZXIob2Jq
ZWN0KToKICAgICAgICAgICAgIHN0cmVhbS53cml0ZShkYXRhKQogICAgICAgICBuZXRzdHJlYW0u
Y2xvc2UoKQogCisgICAgZGVmIF9jaGVja19wYWNrYWdlX2luX2xvY2FsX2F1dG9pbnN0YWxsX2Nh
Y2hlKHNlbGYsIGZpbGVuYW1lKToKKyAgICAgICAgaWYgX0NBQ0hFX0VOVl9WQVIgbm90IGluIG9z
LmVudmlyb246CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcGF0aCA9IGdsb2Io
b3MucGF0aC5qb2luKG9zLmVudmlyb25bX0NBQ0hFX0VOVl9WQVJdLCBmaWxlbmFtZSkgKyAnKicp
CisgICAgICAgIGlmIG5vdCBwYXRoOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAg
ICAgcmV0dXJuIHBhdGhbMF0KKwogICAgIGRlZiBfZG93bmxvYWQoc2VsZiwgdXJsLCBzY3JhdGNo
X2Rpcik6CiAgICAgICAgIHVybF9wYXRoID0gdXJscGFyc2UudXJsc3BsaXQodXJsKVsyXQogICAg
ICAgICB1cmxfcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgodXJsX3BhdGgpICAjIFJlbW92ZXMgdHJh
aWxpbmcgc2xhc2guCiAgICAgICAgIHRhcmdldF9maWxlbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUo
dXJsX3BhdGgpCi0gICAgICAgIHRhcmdldF9wYXRoID0gb3MucGF0aC5qb2luKHNjcmF0Y2hfZGly
LCB0YXJnZXRfZmlsZW5hbWUpCiAKKyAgICAgICAgY2FjaGUgPSBzZWxmLl9jaGVja19wYWNrYWdl
X2luX2xvY2FsX2F1dG9pbnN0YWxsX2NhY2hlKHRhcmdldF9maWxlbmFtZSkKKyAgICAgICAgaWYg
Y2FjaGU6CisgICAgICAgICAgICByZXR1cm4gY2FjaGUKKworICAgICAgICB0YXJnZXRfcGF0aCA9
IG9zLnBhdGguam9pbihzY3JhdGNoX2RpciwgdGFyZ2V0X2ZpbGVuYW1lKQogICAgICAgICB3aXRo
IG9wZW4odGFyZ2V0X3BhdGgsICJ3YiIpIGFzIHN0cmVhbToKICAgICAgICAgICAgIHNlbGYuX2Rv
d25sb2FkX3RvX3N0cmVhbSh1cmwsIHN0cmVhbSkKIAorICAgICAgICBpZiBfQ0FDSEVfRU5WX1ZB
UiBpbiBvcy5lbnZpcm9uOgorICAgICAgICAgICAgZGlyX3V0aWwuY29weV90cmVlKHNjcmF0Y2hf
ZGlyLCBvcy5lbnZpcm9uW19DQUNIRV9FTlZfVkFSXSkKKwogICAgICAgICByZXR1cm4gdGFyZ2V0
X3BhdGgKIAogICAgIGRlZiBfaW5zdGFsbChzZWxmLCBzY3JhdGNoX2RpciwgcGFja2FnZV9uYW1l
LCB0YXJnZXRfcGF0aCwgdXJsLCB1cmxfc3VicGF0aCwgZmlsZXNfdG9fcmVtb3ZlKToK
</data>

          </attachment>
      

    </bug>

</bugzilla>