chiark / gitweb /
Rework build into a class
authorDaniel Martí <mvdan@mvdan.cc>
Sat, 28 Nov 2015 16:55:27 +0000 (17:55 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Wed, 2 Dec 2015 19:03:11 +0000 (20:03 +0100)
This simplifies usage, goes from

    build['flag']
to
    build.flag

Also makes static analyzers able to detect invalid attributes as the set
is now limited in the class definition.

As a bonus, setting of the default field values is now done in the
constructor, not separately and manually.

While at it, unify "build", "thisbuild", "info", "thisinfo", etc into
just "build".

15 files changed:
fdroidserver/build.py
fdroidserver/checkupdates.py
fdroidserver/common.py
fdroidserver/import.py
fdroidserver/lint.py
fdroidserver/metadata.py
fdroidserver/scanner.py
fdroidserver/update.py
tests/common.TestCase
tests/metadata.TestCase
tests/metadata/net.osmand.plus.pickle
tests/metadata/org.adaway.pickle
tests/metadata/org.smssecure.smssecure.pickle
tests/metadata/org.videolan.vlc.pickle
tests/metadata/update-pickle.py [deleted file]

index 5e8054dabaa4fc298f6bc97a4b6f0dffa14246d9..44d48bba93e3888e4bfa2617070830b1168dbb7c 100644 (file)
@@ -245,7 +245,7 @@ def release_vm():
 
 
 # Note that 'force' here also implies test mode.
 
 
 # Note that 'force' here also implies test mode.
-def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
+def build_server(app, build, vcs, build_dir, output_dir, force):
     """Do a build on the build server."""
 
     try:
     """Do a build on the build server."""
 
     try:
@@ -333,9 +333,9 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
         ftp.mkdir('extlib')
         ftp.mkdir('srclib')
         # Copy any extlibs that are required...
         ftp.mkdir('extlib')
         ftp.mkdir('srclib')
         # Copy any extlibs that are required...
-        if thisbuild['extlibs']:
+        if build.extlibs:
             ftp.chdir(homedir + '/build/extlib')
             ftp.chdir(homedir + '/build/extlib')
-            for lib in thisbuild['extlibs']:
+            for lib in build.extlibs:
                 lib = lib.strip()
                 libsrc = os.path.join('build/extlib', lib)
                 if not os.path.exists(libsrc):
                 lib = lib.strip()
                 libsrc = os.path.join('build/extlib', lib)
                 if not os.path.exists(libsrc):
@@ -350,8 +350,8 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
                     ftp.chdir('..')
         # Copy any srclibs that are required...
         srclibpaths = []
                     ftp.chdir('..')
         # Copy any srclibs that are required...
         srclibpaths = []
-        if thisbuild['srclibs']:
-            for lib in thisbuild['srclibs']:
+        if build.srclibs:
+            for lib in build.srclibs:
                 srclibpaths.append(
                     common.getsrclib(lib, 'build/srclib', basepath=True, prepare=False))
 
                 srclibpaths.append(
                     common.getsrclib(lib, 'build/srclib', basepath=True, prepare=False))
 
@@ -389,7 +389,7 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
             cmdline += ' --force --test'
         if options.verbose:
             cmdline += ' --verbose'
             cmdline += ' --force --test'
         if options.verbose:
             cmdline += ' --verbose'
-        cmdline += " %s:%s" % (app.id, thisbuild['vercode'])
+        cmdline += " %s:%s" % (app.id, build.vercode)
         chan.exec_command('bash -c ". ~/.bsenv && ' + cmdline + '"')
         output = ''
         while not chan.exit_status_ready():
         chan.exec_command('bash -c ". ~/.bsenv && ' + cmdline + '"')
         output = ''
         while not chan.exit_status_ready():
@@ -406,7 +406,7 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
         if returncode != 0:
             raise BuildException(
                 "Build.py failed on server for {0}:{1}".format(
         if returncode != 0:
             raise BuildException(
                 "Build.py failed on server for {0}:{1}".format(
-                    app.id, thisbuild['version']), output)
+                    app.id, build.version), output)
 
         # Retrieve the built files...
         logging.info("Retrieving build output...")
 
         # Retrieve the built files...
         logging.info("Retrieving build output...")
@@ -414,8 +414,8 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
             ftp.chdir(homedir + '/tmp')
         else:
             ftp.chdir(homedir + '/unsigned')
             ftp.chdir(homedir + '/tmp')
         else:
             ftp.chdir(homedir + '/unsigned')
-        apkfile = common.getapkname(app, thisbuild)
-        tarball = common.getsrcname(app, thisbuild)
+        apkfile = common.getapkname(app, build)
+        tarball = common.getsrcname(app, build)
         try:
             ftp.get(apkfile, os.path.join(output_dir, apkfile))
             if not options.notarball:
         try:
             ftp.get(apkfile, os.path.join(output_dir, apkfile))
             if not options.notarball:
@@ -423,7 +423,7 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
         except:
             raise BuildException(
                 "Build failed for %s:%s - missing output files".format(
         except:
             raise BuildException(
                 "Build failed for %s:%s - missing output files".format(
-                    app.id, thisbuild['version']), output)
+                    app.id, build.version), output)
         ftp.close()
 
     finally:
         ftp.close()
 
     finally:
@@ -457,32 +457,33 @@ def capitalize_intact(string):
     return string[0].upper() + string[1:]
 
 
     return string[0].upper() + string[1:]
 
 
-def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh):
+def build_local(app, build, vcs, build_dir, output_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh):
     """Do a build locally."""
 
     """Do a build locally."""
 
-    if thisbuild['buildjni'] and thisbuild['buildjni'] != ['no']:
-        if not thisbuild['ndk_path']:
-            logging.critical("Android NDK version '%s' could not be found!" % thisbuild['ndk'])
+    ndk_path = build.ndk_path()
+    if build.buildjni and build.buildjni != ['no']:
+        if not ndk_path:
+            logging.critical("Android NDK version '%s' could not be found!" % build.ndk or 'r10e')
             logging.critical("Configured versions:")
             for k, v in config['ndk_paths'].iteritems():
                 if k.endswith("_orig"):
                     continue
                 logging.critical("  %s: %s" % (k, v))
             sys.exit(3)
             logging.critical("Configured versions:")
             for k, v in config['ndk_paths'].iteritems():
                 if k.endswith("_orig"):
                     continue
                 logging.critical("  %s: %s" % (k, v))
             sys.exit(3)
-        elif not os.path.isdir(thisbuild['ndk_path']):
-            logging.critical("Android NDK '%s' is not a directory!" % thisbuild['ndk_path'])
+        elif not os.path.isdir(ndk_path):
+            logging.critical("Android NDK '%s' is not a directory!" % ndk_path)
             sys.exit(3)
 
     # Set up environment vars that depend on each build
     for n in ['ANDROID_NDK', 'NDK', 'ANDROID_NDK_HOME']:
             sys.exit(3)
 
     # Set up environment vars that depend on each build
     for n in ['ANDROID_NDK', 'NDK', 'ANDROID_NDK_HOME']:
-        common.env[n] = thisbuild['ndk_path']
+        common.env[n] = ndk_path
 
     common.reset_env_path()
     # Set up the current NDK to the PATH
 
     common.reset_env_path()
     # Set up the current NDK to the PATH
-    common.add_to_env_path(thisbuild['ndk_path'])
+    common.add_to_env_path(ndk_path)
 
     # Prepare the source code...
 
     # Prepare the source code...
-    root_dir, srclibpaths = common.prepare_source(vcs, app, thisbuild,
+    root_dir, srclibpaths = common.prepare_source(vcs, app, build,
                                                   build_dir, srclib_dir,
                                                   extlib_dir, onserver, refresh)
 
                                                   build_dir, srclib_dir,
                                                   extlib_dir, onserver, refresh)
 
@@ -490,26 +491,27 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
     # different from the default ones
     p = None
     gradletasks = []
     # different from the default ones
     p = None
     gradletasks = []
-    if thisbuild['type'] == 'maven':
+    method = build.method()
+    if method == 'maven':
         logging.info("Cleaning Maven project...")
         cmd = [config['mvn3'], 'clean', '-Dandroid.sdk.path=' + config['sdk_path']]
 
         logging.info("Cleaning Maven project...")
         cmd = [config['mvn3'], 'clean', '-Dandroid.sdk.path=' + config['sdk_path']]
 
-        if '@' in thisbuild['maven']:
-            maven_dir = os.path.join(root_dir, thisbuild['maven'].split('@', 1)[1])
+        if '@' in build.maven:
+            maven_dir = os.path.join(root_dir, build.maven.split('@', 1)[1])
             maven_dir = os.path.normpath(maven_dir)
         else:
             maven_dir = root_dir
 
         p = FDroidPopen(cmd, cwd=maven_dir)
 
             maven_dir = os.path.normpath(maven_dir)
         else:
             maven_dir = root_dir
 
         p = FDroidPopen(cmd, cwd=maven_dir)
 
-    elif thisbuild['type'] == 'gradle':
+    elif method == 'gradle':
 
         logging.info("Cleaning Gradle project...")
 
 
         logging.info("Cleaning Gradle project...")
 
-        if thisbuild['preassemble']:
-            gradletasks += thisbuild['preassemble']
+        if build.preassemble:
+            gradletasks += build.preassemble
 
 
-        flavours = thisbuild['gradle']
+        flavours = build.gradle
         if flavours == ['yes']:
             flavours = []
 
         if flavours == ['yes']:
             flavours = []
 
@@ -522,8 +524,8 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
             adapt_gradle(libpath)
 
         cmd = [config['gradle']]
             adapt_gradle(libpath)
 
         cmd = [config['gradle']]
-        if thisbuild['gradleprops']:
-            cmd += ['-P'+kv for kv in thisbuild['gradleprops']]
+        if build.gradleprops:
+            cmd += ['-P'+kv for kv in build.gradleprops]
 
         for task in gradletasks:
             parts = task.split(':')
 
         for task in gradletasks:
             parts = task.split(':')
@@ -534,16 +536,16 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
 
         p = FDroidPopen(cmd, cwd=root_dir)
 
 
         p = FDroidPopen(cmd, cwd=root_dir)
 
-    elif thisbuild['type'] == 'kivy':
+    elif method == 'kivy':
         pass
 
         pass
 
-    elif thisbuild['type'] == 'ant':
+    elif method == 'ant':
         logging.info("Cleaning Ant project...")
         p = FDroidPopen(['ant', 'clean'], cwd=root_dir)
 
     if p is not None and p.returncode != 0:
         raise BuildException("Error cleaning %s:%s" %
         logging.info("Cleaning Ant project...")
         p = FDroidPopen(['ant', 'clean'], cwd=root_dir)
 
     if p is not None and p.returncode != 0:
         raise BuildException("Error cleaning %s:%s" %
-                             (app.id, thisbuild['version']), p.output)
+                             (app.id, build.version), p.output)
 
     for root, dirs, files in os.walk(build_dir):
 
 
     for root, dirs, files in os.walk(build_dir):
 
@@ -575,12 +577,12 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
             del_dirs(['obj'])
 
     if options.skipscan:
             del_dirs(['obj'])
 
     if options.skipscan:
-        if thisbuild['scandelete']:
+        if build.scandelete:
             raise BuildException("Refusing to skip source scan since scandelete is present")
     else:
         # Scan before building...
         logging.info("Scanning source for common problems...")
             raise BuildException("Refusing to skip source scan since scandelete is present")
     else:
         # Scan before building...
         logging.info("Scanning source for common problems...")
-        count = scanner.scan_source(build_dir, root_dir, thisbuild)
+        count = scanner.scan_source(build_dir, root_dir, build)
         if count > 0:
             if force:
                 logging.warn('Scanner found %d problems' % count)
         if count > 0:
             if force:
                 logging.warn('Scanner found %d problems' % count)
@@ -590,7 +592,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
     if not options.notarball:
         # Build the source tarball right before we build the release...
         logging.info("Creating source tarball...")
     if not options.notarball:
         # Build the source tarball right before we build the release...
         logging.info("Creating source tarball...")
-        tarname = common.getsrcname(app, thisbuild)
+        tarname = common.getsrcname(app, build)
         tarball = tarfile.open(os.path.join(tmp_dir, tarname), "w:gz")
 
         def tarexc(f):
         tarball = tarfile.open(os.path.join(tmp_dir, tarname), "w:gz")
 
         def tarexc(f):
@@ -599,9 +601,9 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         tarball.close()
 
     # Run a build command if one is required...
         tarball.close()
 
     # Run a build command if one is required...
-    if thisbuild['build']:
+    if build.build:
         logging.info("Running 'build' commands in %s" % root_dir)
         logging.info("Running 'build' commands in %s" % root_dir)
-        cmd = common.replace_config_vars(thisbuild['build'], thisbuild)
+        cmd = common.replace_config_vars(build.build, build)
 
         # Substitute source library paths into commands...
         for name, number, libpath in srclibpaths:
 
         # Substitute source library paths into commands...
         for name, number, libpath in srclibpaths:
@@ -612,16 +614,16 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
 
         if p.returncode != 0:
             raise BuildException("Error running build command for %s:%s" %
 
         if p.returncode != 0:
             raise BuildException("Error running build command for %s:%s" %
-                                 (app.id, thisbuild['version']), p.output)
+                                 (app.id, build.version), p.output)
 
     # Build native stuff if required...
 
     # Build native stuff if required...
-    if thisbuild['buildjni'] and thisbuild['buildjni'] != ['no']:
+    if build.buildjni and build.buildjni != ['no']:
         logging.info("Building the native code")
         logging.info("Building the native code")
-        jni_components = thisbuild['buildjni']
+        jni_components = build.buildjni
 
         if jni_components == ['yes']:
             jni_components = ['']
 
         if jni_components == ['yes']:
             jni_components = ['']
-        cmd = [os.path.join(thisbuild['ndk_path'], "ndk-build"), "-j1"]
+        cmd = [os.path.join(ndk_path, "ndk-build"), "-j1"]
         for d in jni_components:
             if d:
                 logging.info("Building native code in '%s'" % d)
         for d in jni_components:
             if d:
                 logging.info("Building native code in '%s'" % d)
@@ -640,15 +642,15 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
                 del manifest_text
             p = FDroidPopen(cmd, cwd=os.path.join(root_dir, d))
             if p.returncode != 0:
                 del manifest_text
             p = FDroidPopen(cmd, cwd=os.path.join(root_dir, d))
             if p.returncode != 0:
-                raise BuildException("NDK build failed for %s:%s" % (app.id, thisbuild['version']), p.output)
+                raise BuildException("NDK build failed for %s:%s" % (app.id, build.version), p.output)
 
     p = None
     # Build the release...
 
     p = None
     # Build the release...
-    if thisbuild['type'] == 'maven':
+    if method == 'maven':
         logging.info("Building Maven project...")
 
         logging.info("Building Maven project...")
 
-        if '@' in thisbuild['maven']:
-            maven_dir = os.path.join(root_dir, thisbuild['maven'].split('@', 1)[1])
+        if '@' in build.maven:
+            maven_dir = os.path.join(root_dir, build.maven.split('@', 1)[1])
         else:
             maven_dir = root_dir
 
         else:
             maven_dir = root_dir
 
@@ -656,12 +658,12 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
                   '-Dmaven.jar.sign.skip=true', '-Dmaven.test.skip=true',
                   '-Dandroid.sign.debug=false', '-Dandroid.release=true',
                   'package']
                   '-Dmaven.jar.sign.skip=true', '-Dmaven.test.skip=true',
                   '-Dandroid.sign.debug=false', '-Dandroid.release=true',
                   'package']
-        if thisbuild['target']:
-            target = thisbuild["target"].split('-')[1]
+        if build.target:
+            target = build.target.split('-')[1]
             common.regsub_file(r'<platform>[0-9]*</platform>',
                                r'<platform>%s</platform>' % target,
                                os.path.join(root_dir, 'pom.xml'))
             common.regsub_file(r'<platform>[0-9]*</platform>',
                                r'<platform>%s</platform>' % target,
                                os.path.join(root_dir, 'pom.xml'))
-            if '@' in thisbuild['maven']:
+            if '@' in build.maven:
                 common.regsub_file(r'<platform>[0-9]*</platform>',
                                    r'<platform>%s</platform>' % target,
                                    os.path.join(maven_dir, 'pom.xml'))
                 common.regsub_file(r'<platform>[0-9]*</platform>',
                                    r'<platform>%s</platform>' % target,
                                    os.path.join(maven_dir, 'pom.xml'))
@@ -670,7 +672,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
 
         bindir = os.path.join(root_dir, 'target')
 
 
         bindir = os.path.join(root_dir, 'target')
 
-    elif thisbuild['type'] == 'kivy':
+    elif method == 'kivy':
         logging.info("Building Kivy project...")
 
         spec = os.path.join(root_dir, 'buildozer.spec')
         logging.info("Building Kivy project...")
 
         spec = os.path.join(root_dir, 'buildozer.spec')
@@ -690,8 +692,8 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         modules = bconfig.get('app', 'requirements').split(',')
 
         cmd = 'ANDROIDSDK=' + config['sdk_path']
         modules = bconfig.get('app', 'requirements').split(',')
 
         cmd = 'ANDROIDSDK=' + config['sdk_path']
-        cmd += ' ANDROIDNDK=' + thisbuild['ndk_path']
-        cmd += ' ANDROIDNDKVER=' + thisbuild['ndk']
+        cmd += ' ANDROIDNDK=' + ndk_path
+        cmd += ' ANDROIDNDKVER=' + build.ndk
         cmd += ' ANDROIDAPI=' + str(bconfig.get('app', 'android.api'))
         cmd += ' VIRTUALENV=virtualenv'
         cmd += ' ./distribute.sh'
         cmd += ' ANDROIDAPI=' + str(bconfig.get('app', 'android.api'))
         cmd += ' VIRTUALENV=virtualenv'
         cmd += ' ./distribute.sh'
@@ -731,27 +733,27 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         cmd.append('release')
         p = FDroidPopen(cmd, cwd=distdir)
 
         cmd.append('release')
         p = FDroidPopen(cmd, cwd=distdir)
 
-    elif thisbuild['type'] == 'gradle':
+    elif method == 'gradle':
         logging.info("Building Gradle project...")
 
         # Avoid having to use lintOptions.abortOnError false
         logging.info("Building Gradle project...")
 
         # Avoid having to use lintOptions.abortOnError false
-        if thisbuild['gradlepluginver'] >= LooseVersion('0.7'):
+        if build.gradlepluginver >= LooseVersion('0.7'):
             with open(os.path.join(root_dir, 'build.gradle'), "a") as f:
                 f.write("\nandroid { lintOptions { checkReleaseBuilds false } }\n")
 
         cmd = [config['gradle']]
             with open(os.path.join(root_dir, 'build.gradle'), "a") as f:
                 f.write("\nandroid { lintOptions { checkReleaseBuilds false } }\n")
 
         cmd = [config['gradle']]
-        if thisbuild['gradleprops']:
-            cmd += ['-P'+kv for kv in thisbuild['gradleprops']]
+        if build.gradleprops:
+            cmd += ['-P'+kv for kv in build.gradleprops]
 
         cmd += gradletasks
 
         p = FDroidPopen(cmd, cwd=root_dir)
 
 
         cmd += gradletasks
 
         p = FDroidPopen(cmd, cwd=root_dir)
 
-    elif thisbuild['type'] == 'ant':
+    elif method == 'ant':
         logging.info("Building Ant project...")
         cmd = ['ant']
         logging.info("Building Ant project...")
         cmd = ['ant']
-        if thisbuild['antcommands']:
-            cmd += thisbuild['antcommands']
+        if build.antcommands:
+            cmd += build.antcommands
         else:
             cmd += ['release']
         p = FDroidPopen(cmd, cwd=root_dir)
         else:
             cmd += ['release']
         p = FDroidPopen(cmd, cwd=root_dir)
@@ -759,10 +761,10 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         bindir = os.path.join(root_dir, 'bin')
 
     if p is not None and p.returncode != 0:
         bindir = os.path.join(root_dir, 'bin')
 
     if p is not None and p.returncode != 0:
-        raise BuildException("Build failed for %s:%s" % (app.id, thisbuild['version']), p.output)
-    logging.info("Successfully built version " + thisbuild['version'] + ' of ' + app.id)
+        raise BuildException("Build failed for %s:%s" % (app.id, build.version), p.output)
+    logging.info("Successfully built version " + build.version + ' of ' + app.id)
 
 
-    if thisbuild['type'] == 'maven':
+    if method == 'maven':
         stdout_apk = '\n'.join([
             line for line in p.output.splitlines() if any(
                 a in line for a in ('.apk', '.ap_', '.jar'))])
         stdout_apk = '\n'.join([
             line for line in p.output.splitlines() if any(
                 a in line for a in ('.apk', '.ap_', '.jar'))])
@@ -782,14 +784,14 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
             raise BuildException('Failed to find output')
         src = m.group(1)
         src = os.path.join(bindir, src) + '.apk'
             raise BuildException('Failed to find output')
         src = m.group(1)
         src = os.path.join(bindir, src) + '.apk'
-    elif thisbuild['type'] == 'kivy':
+    elif method == 'kivy':
         src = os.path.join('python-for-android', 'dist', 'default', 'bin',
                            '{0}-{1}-release.apk'.format(
                                bconfig.get('app', 'title'),
                                bconfig.get('app', 'version')))
         src = os.path.join('python-for-android', 'dist', 'default', 'bin',
                            '{0}-{1}-release.apk'.format(
                                bconfig.get('app', 'title'),
                                bconfig.get('app', 'version')))
-    elif thisbuild['type'] == 'gradle':
+    elif method == 'gradle':
 
 
-        if thisbuild['gradlepluginver'] >= LooseVersion('0.11'):
+        if build.gradlepluginver >= LooseVersion('0.11'):
             apks_dir = os.path.join(root_dir, 'build', 'outputs', 'apk')
         else:
             apks_dir = os.path.join(root_dir, 'build', 'apk')
             apks_dir = os.path.join(root_dir, 'build', 'outputs', 'apk')
         else:
             apks_dir = os.path.join(root_dir, 'build', 'apk')
@@ -801,14 +803,14 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         if len(apks) < 1:
             raise BuildException('Failed to find gradle output in %s' % apks_dir)
         src = apks[0]
         if len(apks) < 1:
             raise BuildException('Failed to find gradle output in %s' % apks_dir)
         src = apks[0]
-    elif thisbuild['type'] == 'ant':
+    elif method == 'ant':
         stdout_apk = '\n'.join([
             line for line in p.output.splitlines() if '.apk' in line])
         src = re.match(r".*^.*Creating (.+) for release.*$.*", stdout_apk,
                        re.S | re.M).group(1)
         src = os.path.join(bindir, src)
         stdout_apk = '\n'.join([
             line for line in p.output.splitlines() if '.apk' in line])
         src = re.match(r".*^.*Creating (.+) for release.*$.*", stdout_apk,
                        re.S | re.M).group(1)
         src = os.path.join(bindir, src)
-    elif thisbuild['type'] == 'raw':
-        src = os.path.join(root_dir, thisbuild['output'])
+    elif method == 'raw':
+        src = os.path.join(root_dir, build.output)
         src = os.path.normpath(src)
 
     # Make sure it's not debuggable...
         src = os.path.normpath(src)
 
     # Make sure it's not debuggable...
@@ -850,12 +852,12 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         nativecode = nativecode.strip()
         nativecode = None if not nativecode else nativecode
 
         nativecode = nativecode.strip()
         nativecode = None if not nativecode else nativecode
 
-    if thisbuild['buildjni'] and thisbuild['buildjni'] != ['no']:
+    if build.buildjni and build.buildjni != ['no']:
         if nativecode is None:
             raise BuildException("Native code should have been built but none was packaged")
         if nativecode is None:
             raise BuildException("Native code should have been built but none was packaged")
-    if thisbuild['novcheck']:
-        vercode = thisbuild['vercode']
-        version = thisbuild['version']
+    if build.novcheck:
+        vercode = build.vercode
+        version = build.version
     if not version or not vercode:
         raise BuildException("Could not find version information in build in output")
     if not foundid:
     if not version or not vercode:
         raise BuildException("Could not find version information in build in output")
     if not foundid:
@@ -871,13 +873,13 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
     if index != -1:
         version = version[:index]
 
     if index != -1:
         version = version[:index]
 
-    if (version != thisbuild['version'] or
-            vercode != thisbuild['vercode']):
+    if (version != build.version or
+            vercode != build.vercode):
         raise BuildException(("Unexpected version/version code in output;"
                               " APK: '%s' / '%s', "
                               " Expected: '%s' / '%s'")
         raise BuildException(("Unexpected version/version code in output;"
                               " APK: '%s' / '%s', "
                               " Expected: '%s' / '%s'")
-                             % (version, str(vercode), thisbuild['version'],
-                                str(thisbuild['vercode']))
+                             % (version, str(vercode), build.version,
+                                str(build.vercode))
                              )
 
     # Add information for 'fdroid verify' to be able to reproduce the build
                              )
 
     # Add information for 'fdroid verify' to be able to reproduce the build
@@ -895,7 +897,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
 
     # Copy the unsigned apk to our destination directory for further
     # processing (by publish.py)...
 
     # Copy the unsigned apk to our destination directory for further
     # processing (by publish.py)...
-    dest = os.path.join(output_dir, common.getapkname(app, thisbuild))
+    dest = os.path.join(output_dir, common.getapkname(app, build))
     shutil.copyfile(src, dest)
 
     # Move the source tarball into the output directory...
     shutil.copyfile(src, dest)
 
     # Move the source tarball into the output directory...
@@ -904,7 +906,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
                     os.path.join(output_dir, tarname))
 
 
                     os.path.join(output_dir, tarname))
 
 
-def trybuild(app, thisbuild, build_dir, output_dir, also_check_dir, srclib_dir, extlib_dir,
+def trybuild(app, build, build_dir, output_dir, also_check_dir, srclib_dir, extlib_dir,
              tmp_dir, repo_dir, vcs, test, server, force, onserver, refresh):
     """
     Build a particular version of an application, if it needs building.
              tmp_dir, repo_dir, vcs, test, server, force, onserver, refresh):
     """
     Build a particular version of an application, if it needs building.
@@ -923,7 +925,7 @@ def trybuild(app, thisbuild, build_dir, output_dir, also_check_dir, srclib_dir,
     :returns: True if the build was done, False if it wasn't necessary.
     """
 
     :returns: True if the build was done, False if it wasn't necessary.
     """
 
-    dest_apk = common.getapkname(app, thisbuild)
+    dest_apk = common.getapkname(app, build)
 
     dest = os.path.join(output_dir, dest_apk)
     dest_repo = os.path.join(repo_dir, dest_apk)
 
     dest = os.path.join(output_dir, dest_apk)
     dest_repo = os.path.join(repo_dir, dest_apk)
@@ -937,20 +939,20 @@ def trybuild(app, thisbuild, build_dir, output_dir, also_check_dir, srclib_dir,
             if os.path.exists(dest_also):
                 return False
 
             if os.path.exists(dest_also):
                 return False
 
-    if thisbuild['disable'] and not options.force:
+    if build.disable and not options.force:
         return False
 
     logging.info("Building version %s (%s) of %s" % (
         return False
 
     logging.info("Building version %s (%s) of %s" % (
-        thisbuild['version'], thisbuild['vercode'], app.id))
+        build.version, build.vercode, app.id))
 
     if server:
         # When using server mode, still keep a local cache of the repo, by
         # grabbing the source now.
 
     if server:
         # When using server mode, still keep a local cache of the repo, by
         # grabbing the source now.
-        vcs.gotorevision(thisbuild['commit'])
+        vcs.gotorevision(build.commit)
 
 
-        build_server(app, thisbuild, vcs, build_dir, output_dir, force)
+        build_server(app, build, vcs, build_dir, output_dir, force)
     else:
     else:
-        build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh)
+        build_local(app, build, vcs, build_dir, output_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh)
     return True
 
 
     return True
 
 
@@ -1060,7 +1062,7 @@ def main():
     if options.latest:
         for app in apps.itervalues():
             for build in reversed(app.builds):
     if options.latest:
         for app in apps.itervalues():
             for build in reversed(app.builds):
-                if build['disable'] and not options.force:
+                if build.disable and not options.force:
                     continue
                 app.builds = [build]
                 break
                     continue
                 app.builds = [build]
                 break
@@ -1078,7 +1080,7 @@ def main():
 
         first = True
 
 
         first = True
 
-        for thisbuild in app.builds:
+        for build in app.builds:
             wikilog = None
             try:
 
             wikilog = None
             try:
 
@@ -1098,8 +1100,8 @@ def main():
 
                     first = False
 
 
                     first = False
 
-                logging.debug("Checking " + thisbuild['version'])
-                if trybuild(app, thisbuild, build_dir, output_dir,
+                logging.debug("Checking " + build.version)
+                if trybuild(app, build, build_dir, output_dir,
                             also_check_dir, srclib_dir, extlib_dir,
                             tmp_dir, repo_dir, vcs, options.test,
                             options.server, options.force,
                             also_check_dir, srclib_dir, extlib_dir,
                             tmp_dir, repo_dir, vcs, options.test,
                             options.server, options.force,
@@ -1112,10 +1114,10 @@ def main():
                         # alongside our built one in the 'unsigend'
                         # directory.
                         url = app.Binaries
                         # alongside our built one in the 'unsigend'
                         # directory.
                         url = app.Binaries
-                        url = url.replace('%v', thisbuild['version'])
-                        url = url.replace('%c', str(thisbuild['vercode']))
+                        url = url.replace('%v', build.version)
+                        url = url.replace('%c', str(build.vercode))
                         logging.info("...retrieving " + url)
                         logging.info("...retrieving " + url)
-                        of = "{0}_{1}.apk.binary".format(app.id, thisbuild['vercode'])
+                        of = "{0}_{1}.apk.binary".format(app.id, build.vercode)
                         of = os.path.join(output_dir, of)
                         net.download_file(url, local_filename=of)
 
                         of = os.path.join(output_dir, of)
                         net.download_file(url, local_filename=of)
 
@@ -1148,7 +1150,7 @@ def main():
             if options.wiki and wikilog:
                 try:
                     # Write a page with the last build log for this version code
             if options.wiki and wikilog:
                 try:
                     # Write a page with the last build log for this version code
-                    lastbuildpage = appid + '/lastbuild_' + thisbuild['vercode']
+                    lastbuildpage = appid + '/lastbuild_' + build.vercode
                     newpage = site.Pages[lastbuildpage]
                     txt = "Build completed at " + time.strftime("%Y-%m-%d %H:%M:%SZ", time.gmtime()) + "\n\n" + wikilog
                     newpage.save(txt, summary='Build log')
                     newpage = site.Pages[lastbuildpage]
                     txt = "Build completed at " + time.strftime("%Y-%m-%d %H:%M:%SZ", time.gmtime()) + "\n\n" + wikilog
                     newpage.save(txt, summary='Build log')
index 685d59fe0e684f0012831b575601867774f44e5a..b7aaae5c5473c97872226bd48aad838556173916 100644 (file)
@@ -108,10 +108,12 @@ def check_tags(app, pattern):
 
         vcs.gotorevision(None)
 
 
         vcs.gotorevision(None)
 
-        flavours = []
+        last_build = metadata.Build()
         if len(app.builds) > 0:
         if len(app.builds) > 0:
-            if app.builds[-1]['gradle']:
-                flavours = app.builds[-1]['gradle']
+            last_build = app.builds[-1]
+
+        if last_build.submodules:
+            vcs.initsubmodules()
 
         hpak = None
         htag = None
 
         hpak = None
         htag = None
@@ -143,7 +145,7 @@ def check_tags(app, pattern):
                     root_dir = build_dir
                 else:
                     root_dir = os.path.join(build_dir, subdir)
                     root_dir = build_dir
                 else:
                     root_dir = os.path.join(build_dir, subdir)
-                paths = common.manifest_paths(root_dir, flavours)
+                paths = common.manifest_paths(root_dir, last_build.gradle)
                 version, vercode, package = common.parse_androidmanifests(paths, app)
                 if vercode:
                     logging.debug("Manifest exists in subdir '{0}'. Found version {1} ({2})"
                 version, vercode, package = common.parse_androidmanifests(paths, app)
                 if vercode:
                     logging.debug("Manifest exists in subdir '{0}'. Found version {1} ({2})"
@@ -199,10 +201,12 @@ def check_repomanifest(app, branch=None):
         elif repotype == 'bzr':
             vcs.gotorevision(None)
 
         elif repotype == 'bzr':
             vcs.gotorevision(None)
 
-        flavours = []
+        last_build = metadata.Build()
         if len(app.builds) > 0:
         if len(app.builds) > 0:
-            if app.builds[-1]['gradle']:
-                flavours = app.builds[-1]['gradle']
+            last_build = app.builds[-1]
+
+        if last_build.submodules:
+            vcs.initsubmodules()
 
         hpak = None
         hver = None
 
         hpak = None
         hver = None
@@ -212,7 +216,7 @@ def check_repomanifest(app, branch=None):
                 root_dir = build_dir
             else:
                 root_dir = os.path.join(build_dir, subdir)
                 root_dir = build_dir
             else:
                 root_dir = os.path.join(build_dir, subdir)
-            paths = common.manifest_paths(root_dir, flavours)
+            paths = common.manifest_paths(root_dir, last_build.gradle)
             version, vercode, package = common.parse_androidmanifests(paths, app)
             if vercode:
                 logging.debug("Manifest exists in subdir '{0}'. Found version {1} ({2})"
             version, vercode, package = common.parse_androidmanifests(paths, app)
             if vercode:
                 logging.debug("Manifest exists in subdir '{0}'. Found version {1} ({2})"
@@ -313,14 +317,12 @@ def possible_subdirs(app):
     else:
         build_dir = os.path.join('build', app.id)
 
     else:
         build_dir = os.path.join('build', app.id)
 
-    flavours = []
+    last_build = metadata.Build()
     if len(app.builds) > 0:
     if len(app.builds) > 0:
-        build = app.builds[-1]
-        if build['gradle']:
-            flavours = build['gradle']
+        last_build = app.builds[-1]
 
     for d in dirs_with_manifest(build_dir):
 
     for d in dirs_with_manifest(build_dir):
-        m_paths = common.manifest_paths(d, flavours)
+        m_paths = common.manifest_paths(d, last_build.gradle)
         package = common.parse_androidmanifests(m_paths, app)[2]
         if package is not None:
             subdir = os.path.relpath(d, build_dir)
         package = common.parse_androidmanifests(m_paths, app)[2]
         if package is not None:
             subdir = os.path.relpath(d, build_dir)
@@ -344,10 +346,9 @@ def fetch_autoname(app, tag):
     except VCSException:
         return None
 
     except VCSException:
         return None
 
-    flavours = []
+    last_build = metadata.Build()
     if len(app.builds) > 0:
     if len(app.builds) > 0:
-        if app.builds[-1]['gradle']:
-            flavours = app.builds[-1]['gradle']
+        last_build = app.builds[-1]
 
     logging.debug("...fetch auto name from " + build_dir)
     new_name = None
 
     logging.debug("...fetch auto name from " + build_dir)
     new_name = None
@@ -356,7 +357,7 @@ def fetch_autoname(app, tag):
             root_dir = build_dir
         else:
             root_dir = os.path.join(build_dir, subdir)
             root_dir = build_dir
         else:
             root_dir = os.path.join(build_dir, subdir)
-        new_name = common.fetch_real_name(root_dir, flavours)
+        new_name = common.fetch_real_name(root_dir, last_build.gradle)
         if new_name is not None:
             break
     commitmsg = None
         if new_name is not None:
             break
     commitmsg = None
@@ -458,25 +459,25 @@ def checkupdates_app(app, first=True):
             gotcur = False
             latest = None
             for build in app.builds:
             gotcur = False
             latest = None
             for build in app.builds:
-                if int(build['vercode']) >= int(app.CurrentVersionCode):
+                if int(build.vercode) >= int(app.CurrentVersionCode):
                     gotcur = True
                     gotcur = True
-                if not latest or int(build['vercode']) > int(latest['vercode']):
+                if not latest or int(build.vercode) > int(latest.vercode):
                     latest = build
 
                     latest = build
 
-            if int(latest['vercode']) > int(app.CurrentVersionCode):
+            if int(latest.vercode) > int(app.CurrentVersionCode):
                 logging.info("Refusing to auto update, since the latest build is newer")
 
             if not gotcur:
                 newbuild = latest.copy()
                 logging.info("Refusing to auto update, since the latest build is newer")
 
             if not gotcur:
                 newbuild = latest.copy()
-                if 'origlines' in newbuild:
-                    del newbuild['origlines']
-                newbuild['disable'] = False
-                newbuild['vercode'] = app.CurrentVersionCode
-                newbuild['version'] = app.CurrentVersion + suffix
-                logging.info("...auto-generating build for " + newbuild['version'])
-                commit = pattern.replace('%v', newbuild['version'])
-                commit = commit.replace('%c', newbuild['vercode'])
-                newbuild['commit'] = commit
+                if newbuild.origlines:
+                    del newbuild.origlines[:]
+                newbuild.disable = False
+                newbuild.vercode = app.CurrentVersionCode
+                newbuild.version = app.CurrentVersion + suffix
+                logging.info("...auto-generating build for " + newbuild.version)
+                commit = pattern.replace('%v', newbuild.version)
+                commit = commit.replace('%c', newbuild.vercode)
+                newbuild.commit = commit
                 app.builds.append(newbuild)
                 name = common.getappname(app)
                 ver = common.getcvname(app)
                 app.builds.append(newbuild)
                 name = common.getappname(app)
                 ver = common.getcvname(app)
index 87fd3c28d5c5c4f49c378d469fecdc8319950acd..f20b0b5fc2cf7a34cec3e055aac91faefbccfd2e 100644 (file)
@@ -221,15 +221,6 @@ def read_config(opts, config_file='config.py'):
     return config
 
 
     return config
 
 
-def get_ndk_path(version):
-    if version is None:
-        version = 'r10e'  # falls back to latest
-    paths = config['ndk_paths']
-    if version not in paths:
-        return ''
-    return paths[version] or ''
-
-
 def find_sdk_tools_cmd(cmd):
     '''find a working path to a tool from the Android SDK'''
 
 def find_sdk_tools_cmd(cmd):
     '''find a working path to a tool from the Android SDK'''
 
@@ -363,10 +354,10 @@ def read_app_args(args, allapps, allow_vercodes=False):
         vc = vercodes[appid]
         if not vc:
             continue
         vc = vercodes[appid]
         if not vc:
             continue
-        app.builds = [b for b in app.builds if b['vercode'] in vc]
+        app.builds = [b for b in app.builds if b.vercode in vc]
         if len(app.builds) != len(vercodes[appid]):
             error = True
         if len(app.builds) != len(vercodes[appid]):
             error = True
-            allvcs = [b['vercode'] for b in app.builds]
+            allvcs = [b.vercode for b in app.builds]
             for v in vercodes[appid]:
                 if v not in allvcs:
                     logging.critical("No such vercode %s for app %s" % (v, appid))
             for v in vercodes[appid]:
                 if v not in allvcs:
                     logging.critical("No such vercode %s for app %s" % (v, appid))
@@ -419,11 +410,11 @@ def apknameinfo(filename):
 
 
 def getapkname(app, build):
 
 
 def getapkname(app, build):
-    return "%s_%s.apk" % (app.id, build['vercode'])
+    return "%s_%s.apk" % (app.id, build.vercode)
 
 
 def getsrcname(app, build):
 
 
 def getsrcname(app, build):
-    return "%s_%s_src.tar.gz" % (app.id, build['vercode'])
+    return "%s_%s_src.tar.gz" % (app.id, build.vercode)
 
 
 def getappname(app):
 
 
 def getappname(app):
@@ -1250,17 +1241,17 @@ gradle_version_regex = re.compile(r"[^/]*'com\.android\.tools\.build:gradle:([^\
 def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=False, refresh=True):
 
     # Optionally, the actual app source can be in a subdirectory
 def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=False, refresh=True):
 
     # Optionally, the actual app source can be in a subdirectory
-    if build['subdir']:
-        root_dir = os.path.join(build_dir, build['subdir'])
+    if build.subdir:
+        root_dir = os.path.join(build_dir, build.subdir)
     else:
         root_dir = build_dir
 
     # Get a working copy of the right revision
     else:
         root_dir = build_dir
 
     # Get a working copy of the right revision
-    logging.info("Getting source for revision " + build['commit'])
-    vcs.gotorevision(build['commit'], refresh)
+    logging.info("Getting source for revision " + build.commit)
+    vcs.gotorevision(build.commit, refresh)
 
     # Initialise submodules if required
 
     # Initialise submodules if required
-    if build['submodules']:
+    if build.submodules:
         logging.info("Initialising submodules")
         vcs.initsubmodules()
 
         logging.info("Initialising submodules")
         vcs.initsubmodules()
 
@@ -1270,19 +1261,19 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
         raise BuildException('Missing subdir ' + root_dir)
 
     # Run an init command if one is required
         raise BuildException('Missing subdir ' + root_dir)
 
     # Run an init command if one is required
-    if build['init']:
-        cmd = replace_config_vars(build['init'], build)
+    if build.init:
+        cmd = replace_config_vars(build.init, build)
         logging.info("Running 'init' commands in %s" % root_dir)
 
         p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=root_dir)
         if p.returncode != 0:
             raise BuildException("Error running init command for %s:%s" %
         logging.info("Running 'init' commands in %s" % root_dir)
 
         p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=root_dir)
         if p.returncode != 0:
             raise BuildException("Error running init command for %s:%s" %
-                                 (app.id, build['version']), p.output)
+                                 (app.id, build.version), p.output)
 
     # Apply patches if any
 
     # Apply patches if any
-    if build['patch']:
+    if build.patch:
         logging.info("Applying patches")
         logging.info("Applying patches")
-        for patch in build['patch']:
+        for patch in build.patch:
             patch = patch.strip()
             logging.info("Applying " + patch)
             patch_path = os.path.join('metadata', app.id, patch)
             patch = patch.strip()
             logging.info("Applying " + patch)
             patch_path = os.path.join('metadata', app.id, patch)
@@ -1292,9 +1283,9 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
 
     # Get required source libraries
     srclibpaths = []
 
     # Get required source libraries
     srclibpaths = []
-    if build['srclibs']:
+    if build.srclibs:
         logging.info("Collecting source libraries")
         logging.info("Collecting source libraries")
-        for lib in build['srclibs']:
+        for lib in build.srclibs:
             srclibpaths.append(getsrclib(lib, srclib_dir, build, preponly=onserver, refresh=refresh))
 
     for name, number, libpath in srclibpaths:
             srclibpaths.append(getsrclib(lib, srclib_dir, build, preponly=onserver, refresh=refresh))
 
     for name, number, libpath in srclibpaths:
@@ -1307,8 +1298,8 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
 
     # Update the local.properties file
     localprops = [os.path.join(build_dir, 'local.properties')]
 
     # Update the local.properties file
     localprops = [os.path.join(build_dir, 'local.properties')]
-    if build['subdir']:
-        parts = build['subdir'].split(os.sep)
+    if build.subdir:
+        parts = build.subdir.split(os.sep)
         cur = build_dir
         for d in parts:
             cur = os.path.join(cur, d)
         cur = build_dir
         for d in parts:
             cur = os.path.join(cur, d)
@@ -1324,26 +1315,27 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
             logging.info("Creating local.properties file at %s" % path)
         # Fix old-fashioned 'sdk-location' by copying
         # from sdk.dir, if necessary
             logging.info("Creating local.properties file at %s" % path)
         # Fix old-fashioned 'sdk-location' by copying
         # from sdk.dir, if necessary
-        if build['oldsdkloc']:
+        if build.oldsdkloc:
             sdkloc = re.match(r".*^sdk.dir=(\S+)$.*", props,
                               re.S | re.M).group(1)
             props += "sdk-location=%s\n" % sdkloc
         else:
             props += "sdk.dir=%s\n" % config['sdk_path']
             props += "sdk-location=%s\n" % config['sdk_path']
             sdkloc = re.match(r".*^sdk.dir=(\S+)$.*", props,
                               re.S | re.M).group(1)
             props += "sdk-location=%s\n" % sdkloc
         else:
             props += "sdk.dir=%s\n" % config['sdk_path']
             props += "sdk-location=%s\n" % config['sdk_path']
-        if build['ndk_path']:
+        ndk_path = build.ndk_path()
+        if ndk_path:
             # Add ndk location
             # Add ndk location
-            props += "ndk.dir=%s\n" % build['ndk_path']
-            props += "ndk-location=%s\n" % build['ndk_path']
+            props += "ndk.dir=%s\n" % ndk_path
+            props += "ndk-location=%s\n" % ndk_path
         # Add java.encoding if necessary
         # Add java.encoding if necessary
-        if build['encoding']:
-            props += "java.encoding=%s\n" % build['encoding']
+        if build.encoding:
+            props += "java.encoding=%s\n" % build.encoding
         with open(path, 'w') as f:
             f.write(props)
 
     flavours = []
         with open(path, 'w') as f:
             f.write(props)
 
     flavours = []
-    if build['type'] == 'gradle':
-        flavours = build['gradle']
+    if build.method() == 'gradle':
+        flavours = build.gradle
 
         gradlepluginver = None
 
 
         gradlepluginver = None
 
@@ -1372,13 +1364,13 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
                         break
 
         if gradlepluginver:
                         break
 
         if gradlepluginver:
-            build['gradlepluginver'] = LooseVersion(gradlepluginver)
+            build.gradlepluginver = LooseVersion(gradlepluginver)
         else:
             logging.warn("Could not fetch the gradle plugin version, defaulting to 0.11")
         else:
             logging.warn("Could not fetch the gradle plugin version, defaulting to 0.11")
-            build['gradlepluginver'] = LooseVersion('0.11')
+            build.gradlepluginver = LooseVersion('0.11')
 
 
-        if build['target']:
-            n = build["target"].split('-')[1]
+        if build.target:
+            n = build.target.split('-')[1]
             regsub_file(r'compileSdkVersion[ =]+[0-9]+',
                         r'compileSdkVersion %s' % n,
                         os.path.join(root_dir, 'build.gradle'))
             regsub_file(r'compileSdkVersion[ =]+[0-9]+',
                         r'compileSdkVersion %s' % n,
                         os.path.join(root_dir, 'build.gradle'))
@@ -1387,38 +1379,38 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
     remove_debuggable_flags(root_dir)
 
     # Insert version code and number into the manifest if necessary
     remove_debuggable_flags(root_dir)
 
     # Insert version code and number into the manifest if necessary
-    if build['forceversion']:
+    if build.forceversion:
         logging.info("Changing the version name")
         for path in manifest_paths(root_dir, flavours):
             if not os.path.isfile(path):
                 continue
             if has_extension(path, 'xml'):
                 regsub_file(r'android:versionName="[^"]*"',
         logging.info("Changing the version name")
         for path in manifest_paths(root_dir, flavours):
             if not os.path.isfile(path):
                 continue
             if has_extension(path, 'xml'):
                 regsub_file(r'android:versionName="[^"]*"',
-                            r'android:versionName="%s"' % build['version'],
+                            r'android:versionName="%s"' % build.version,
                             path)
             elif has_extension(path, 'gradle'):
                 regsub_file(r"""(\s*)versionName[\s'"=]+.*""",
                             path)
             elif has_extension(path, 'gradle'):
                 regsub_file(r"""(\s*)versionName[\s'"=]+.*""",
-                            r"""\1versionName '%s'""" % build['version'],
+                            r"""\1versionName '%s'""" % build.version,
                             path)
 
                             path)
 
-    if build['forcevercode']:
+    if build.forcevercode:
         logging.info("Changing the version code")
         for path in manifest_paths(root_dir, flavours):
             if not os.path.isfile(path):
                 continue
             if has_extension(path, 'xml'):
                 regsub_file(r'android:versionCode="[^"]*"',
         logging.info("Changing the version code")
         for path in manifest_paths(root_dir, flavours):
             if not os.path.isfile(path):
                 continue
             if has_extension(path, 'xml'):
                 regsub_file(r'android:versionCode="[^"]*"',
-                            r'android:versionCode="%s"' % build['vercode'],
+                            r'android:versionCode="%s"' % build.vercode,
                             path)
             elif has_extension(path, 'gradle'):
                 regsub_file(r'versionCode[ =]+[0-9]+',
                             path)
             elif has_extension(path, 'gradle'):
                 regsub_file(r'versionCode[ =]+[0-9]+',
-                            r'versionCode %s' % build['vercode'],
+                            r'versionCode %s' % build.vercode,
                             path)
 
     # Delete unwanted files
                             path)
 
     # Delete unwanted files
-    if build['rm']:
+    if build.rm:
         logging.info("Removing specified files")
         logging.info("Removing specified files")
-        for part in getpaths(build_dir, build['rm']):
+        for part in getpaths(build_dir, build.rm):
             dest = os.path.join(build_dir, part)
             logging.info("Removing {0}".format(part))
             if os.path.lexists(dest):
             dest = os.path.join(build_dir, part)
             logging.info("Removing {0}".format(part))
             if os.path.lexists(dest):
@@ -1432,12 +1424,12 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
     remove_signing_keys(build_dir)
 
     # Add required external libraries
     remove_signing_keys(build_dir)
 
     # Add required external libraries
-    if build['extlibs']:
+    if build.extlibs:
         logging.info("Collecting prebuilt libraries")
         libsdir = os.path.join(root_dir, 'libs')
         if not os.path.exists(libsdir):
             os.mkdir(libsdir)
         logging.info("Collecting prebuilt libraries")
         libsdir = os.path.join(root_dir, 'libs')
         if not os.path.exists(libsdir):
             os.mkdir(libsdir)
-        for lib in build['extlibs']:
+        for lib in build.extlibs:
             lib = lib.strip()
             logging.info("...installing extlib {0}".format(lib))
             libf = os.path.basename(lib)
             lib = lib.strip()
             logging.info("...installing extlib {0}".format(lib))
             libf = os.path.basename(lib)
@@ -1447,10 +1439,10 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
             shutil.copyfile(libsrc, os.path.join(libsdir, libf))
 
     # Run a pre-build command if one is required
             shutil.copyfile(libsrc, os.path.join(libsdir, libf))
 
     # Run a pre-build command if one is required
-    if build['prebuild']:
+    if build.prebuild:
         logging.info("Running 'prebuild' commands in %s" % root_dir)
 
         logging.info("Running 'prebuild' commands in %s" % root_dir)
 
-        cmd = replace_config_vars(build['prebuild'], build)
+        cmd = replace_config_vars(build.prebuild, build)
 
         # Substitute source library paths into prebuild commands
         for name, number, libpath in srclibpaths:
 
         # Substitute source library paths into prebuild commands
         for name, number, libpath in srclibpaths:
@@ -1460,20 +1452,20 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
         p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=root_dir)
         if p.returncode != 0:
             raise BuildException("Error running prebuild command for %s:%s" %
         p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=root_dir)
         if p.returncode != 0:
             raise BuildException("Error running prebuild command for %s:%s" %
-                                 (app.id, build['version']), p.output)
+                                 (app.id, build.version), p.output)
 
     # Generate (or update) the ant build file, build.xml...
 
     # Generate (or update) the ant build file, build.xml...
-    if build['update'] and build['update'] != ['no'] and build['type'] == 'ant':
+    if build.update and build.update != ['no'] and build.method() == 'ant':
         parms = ['android', 'update', 'lib-project']
         lparms = ['android', 'update', 'project']
 
         parms = ['android', 'update', 'lib-project']
         lparms = ['android', 'update', 'project']
 
-        if build['target']:
-            parms += ['-t', build['target']]
-            lparms += ['-t', build['target']]
-        if build['update'] == ['auto']:
-            update_dirs = ant_subprojects(root_dir) + ['.']
+        if build.target:
+            parms += ['-t', build.target]
+            lparms += ['-t', build.target]
+        if build.update:
+            update_dirs = build.update
         else:
         else:
-            update_dirs = build['update']
+            update_dirs = ant_subprojects(root_dir) + ['.']
 
         for d in update_dirs:
             subdir = os.path.join(root_dir, d)
 
         for d in update_dirs:
             subdir = os.path.join(root_dir, d)
@@ -1770,9 +1762,9 @@ def replace_config_vars(cmd, build):
     cmd = cmd.replace('$$NDK$$', env['ANDROID_NDK'])
     cmd = cmd.replace('$$MVN3$$', config['mvn3'])
     if build is not None:
     cmd = cmd.replace('$$NDK$$', env['ANDROID_NDK'])
     cmd = cmd.replace('$$MVN3$$', config['mvn3'])
     if build is not None:
-        cmd = cmd.replace('$$COMMIT$$', build['commit'])
-        cmd = cmd.replace('$$VERSION$$', build['version'])
-        cmd = cmd.replace('$$VERCODE$$', build['vercode'])
+        cmd = cmd.replace('$$COMMIT$$', build.commit)
+        cmd = cmd.replace('$$VERSION$$', build.version)
+        cmd = cmd.replace('$$VERCODE$$', build.vercode)
     return cmd
 
 
     return cmd
 
 
index 4ead1547442d3cd3e7fab8c6289207014ca03858..f729207a82f0b9eba5bdba0680c1fc4f2bba0ecc 100644 (file)
@@ -223,20 +223,15 @@ def main():
         sys.exit(1)
 
     # Create a build line...
         sys.exit(1)
 
     # Create a build line...
-    build = {}
-    build['version'] = version or '?'
-    build['vercode'] = vercode or '?'
-    build['commit'] = '?'
-    build['disable'] = 'Generated by import.py - check/set version fields and commit id'
+    build = metadata.Build()
+    build.version = version or '?'
+    build.vercode = vercode or '?'
+    build.commit = '?'
+    build.disable = 'Generated by import.py - check/set version fields and commit id'
     if options.subdir:
     if options.subdir:
-        build['subdir'] = options.subdir
+        build.subdir = options.subdir
     if os.path.exists(os.path.join(root_dir, 'jni')):
     if os.path.exists(os.path.join(root_dir, 'jni')):
-        build['buildjni'] = ['yes']
-
-    for flag, value in metadata.flag_defaults.iteritems():
-        if flag in build:
-            continue
-        build[flag] = value
+        build.buildjni = ['yes']
 
     app.builds.append(build)
 
 
     app.builds.append(build)
 
index fae800e8fa1666ba0c13b4a4159b6f7c9f718fe5..e3ca9ea3b812b4b7406f932b9a74b4d585d6dba1 100644 (file)
@@ -122,11 +122,11 @@ def get_lastbuild(builds):
     lowest_vercode = -1
     lastbuild = None
     for build in builds:
     lowest_vercode = -1
     lastbuild = None
     for build in builds:
-        if not build['disable']:
-            vercode = int(build['vercode'])
+        if not build.disable:
+            vercode = int(build.vercode)
             if lowest_vercode == -1 or vercode < lowest_vercode:
                 lowest_vercode = vercode
             if lowest_vercode == -1 or vercode < lowest_vercode:
                 lowest_vercode = vercode
-        if not lastbuild or int(build['vercode']) > int(lastbuild['vercode']):
+        if not lastbuild or int(build.vercode) > int(lastbuild.vercode):
             lastbuild = build
     return lastbuild
 
             lastbuild = build
     return lastbuild
 
@@ -134,14 +134,14 @@ def get_lastbuild(builds):
 def check_ucm_tags(app):
     lastbuild = get_lastbuild(app.builds)
     if (lastbuild is not None
 def check_ucm_tags(app):
     lastbuild = get_lastbuild(app.builds)
     if (lastbuild is not None
-            and lastbuild['commit']
+            and lastbuild.commit
             and app.UpdateCheckMode == 'RepoManifest'
             and app.UpdateCheckMode == 'RepoManifest'
-            and not lastbuild['commit'].startswith('unknown')
-            and lastbuild['vercode'] == app.CurrentVersionCode
-            and not lastbuild['forcevercode']
-            and any(s in lastbuild['commit'] for s in '.,_-/')):
+            and not lastbuild.commit.startswith('unknown')
+            and lastbuild.vercode == app.CurrentVersionCode
+            and not lastbuild.forcevercode
+            and any(s in lastbuild.commit for s in '.,_-/')):
         yield "Last used commit '%s' looks like a tag, but Update Check Mode is '%s'" % (
         yield "Last used commit '%s' looks like a tag, but Update Check Mode is '%s'" % (
-            lastbuild['commit'], app.UpdateCheckMode)
+            lastbuild.commit, app.UpdateCheckMode)
 
 
 def check_char_limits(app):
 
 
 def check_char_limits(app):
@@ -285,12 +285,12 @@ def check_bulleted_lists(app):
 
 def check_builds(app):
     for build in app.builds:
 
 def check_builds(app):
     for build in app.builds:
-        if build['disable']:
+        if build.disable:
             continue
         for s in ['master', 'origin', 'HEAD', 'default', 'trunk']:
             continue
         for s in ['master', 'origin', 'HEAD', 'default', 'trunk']:
-            if build['commit'] and build['commit'].startswith(s):
-                yield "Branch '%s' used as commit in build '%s'" % (s, build['version'])
-            for srclib in build['srclibs']:
+            if build.commit and build.commit.startswith(s):
+                yield "Branch '%s' used as commit in build '%s'" % (s, build.version)
+            for srclib in build.srclibs:
                 ref = srclib.split('@')[1].split('/')[0]
                 if ref.startswith(s):
                     yield "Branch '%s' used as commit in srclib '%s'" % (s, srclib)
                 ref = srclib.split('@')[1].split('/')[0]
                 if ref.startswith(s):
                     yield "Branch '%s' used as commit in srclib '%s'" % (s, srclib)
index c23f798d89834e502a066983b676db84a4e8cf7b..a06d190537e6a960fd96e38eff5ed349cc3750b0 100644 (file)
@@ -38,8 +38,6 @@ except ImportError:
 # use the C implementation when available
 import xml.etree.cElementTree as ElementTree
 
 # use the C implementation when available
 import xml.etree.cElementTree as ElementTree
 
-from collections import OrderedDict
-
 import common
 
 srclibs = None
 import common
 
 srclibs = None
@@ -155,7 +153,16 @@ class App():
     # Constructs an old-fashioned dict with the human-readable field
     # names. Should only be used for tests.
     def field_dict(self):
     # Constructs an old-fashioned dict with the human-readable field
     # names. Should only be used for tests.
     def field_dict(self):
-        return {App.attr_to_field(k): v for k, v in self.__dict__.iteritems()}
+        d = {}
+        for k, v in self.__dict__.iteritems():
+            if k == 'builds':
+                d['builds'] = []
+                for build in v:
+                    d['builds'].append(build.__dict__)
+            else:
+                k = App.attr_to_field(k)
+                d[k] = v
+        return d
 
     # Gets the value associated to a field name, e.g. 'Auto Name'
     def get_field(self, f):
 
     # Gets the value associated to a field name, e.g. 'Auto Name'
     def get_field(self, f):
@@ -184,44 +191,156 @@ class App():
     # Like dict.update(), but using human-readable field names
     def update_fields(self, d):
         for f, v in d.iteritems():
     # Like dict.update(), but using human-readable field names
     def update_fields(self, d):
         for f, v in d.iteritems():
-            self.set_field(f, v)
+            if f == 'builds':
+                for b in v:
+                    build = Build()
+                    build.update_flags(b)
+                    self.builds.append(build)
+            else:
+                self.set_field(f, v)
+
+
+def metafieldtype(name):
+    if name in ['Description', 'Maintainer Notes']:
+        return 'multiline'
+    if name in ['Categories', 'AntiFeatures']:
+        return 'list'
+    if name == 'Build Version':
+        return 'build'
+    if name == 'Build':
+        return 'buildv2'
+    if name == 'Use Built':
+        return 'obsolete'
+    if name not in app_fields:
+        return 'unknown'
+    return 'string'
 
 
 # In the order in which they are laid out on files
 
 
 # In the order in which they are laid out on files
-# Sorted by their action and their place in the build timeline
-# These variables can have varying datatypes. For example, anything with
-# flagtype(v) == 'list' is inited as False, then set as a list of strings.
-flag_defaults = OrderedDict([
-    ('disable', False),
-    ('commit', None),
-    ('subdir', None),
-    ('submodules', False),
-    ('init', ''),
-    ('patch', []),
-    ('gradle', False),
-    ('maven', False),
-    ('kivy', False),
-    ('output', None),
-    ('srclibs', []),
-    ('oldsdkloc', False),
-    ('encoding', None),
-    ('forceversion', False),
-    ('forcevercode', False),
-    ('rm', []),
-    ('extlibs', []),
-    ('prebuild', ''),
-    ('update', ['auto']),
-    ('target', None),
-    ('scanignore', []),
-    ('scandelete', []),
-    ('build', ''),
-    ('buildjni', []),
-    ('ndk', 'r10e'),  # defaults to latest
-    ('preassemble', []),
-    ('gradleprops', []),
-    ('antcommands', None),
-    ('novcheck', False),
-])
+build_flags_order = [
+    'disable',
+    'commit',
+    'subdir',
+    'submodules',
+    'init',
+    'patch',
+    'gradle',
+    'maven',
+    'kivy',
+    'output',
+    'srclibs',
+    'oldsdkloc',
+    'encoding',
+    'forceversion',
+    'forcevercode',
+    'rm',
+    'extlibs',
+    'prebuild',
+    'update',
+    'target',
+    'scanignore',
+    'scandelete',
+    'build',
+    'buildjni',
+    'ndk',
+    'preassemble',
+    'gradleprops',
+    'antcommands',
+    'novcheck',
+]
+
+
+build_flags = set(build_flags_order + ['version', 'vercode'])
+
+
+class Build():
+
+    def __init__(self):
+        self.disable = False
+        self.commit = None
+        self.subdir = None
+        self.submodules = False
+        self.init = ''
+        self.patch = []
+        self.gradle = False
+        self.maven = False
+        self.kivy = False
+        self.output = None
+        self.srclibs = []
+        self.oldsdkloc = False
+        self.encoding = None
+        self.forceversion = False
+        self.forcevercode = False
+        self.rm = []
+        self.extlibs = []
+        self.prebuild = ''
+        self.update = None
+        self.target = None
+        self.scanignore = []
+        self.scandelete = []
+        self.build = ''
+        self.buildjni = []
+        self.ndk = None
+        self.preassemble = []
+        self.gradleprops = []
+        self.antcommands = None
+        self.novcheck = False
+
+    def get_flag(self, f):
+        if f not in build_flags:
+            raise MetaDataException('Unrecognised build flag: ' + f)
+        return getattr(self, f)
+
+    def set_flag(self, f, v):
+        if f == 'versionName':
+            f = 'version'
+        if f == 'versionCode':
+            f = 'vercode'
+        if f not in build_flags:
+            raise MetaDataException('Unrecognised build flag: ' + f)
+        setattr(self, f, v)
+
+    def append_flag(self, f, v):
+        if f not in build_flags:
+            raise MetaDataException('Unrecognised build flag: ' + f)
+        if f not in self.__dict__:
+            self.__dict__[f] = [v]
+        else:
+            self.__dict__[f].append(v)
+
+    def method(self):
+        for f in ['maven', 'gradle', 'kivy']:
+            if self.get_flag(f):
+                return f
+        if build.output:
+            return 'raw'
+        return 'ant'
+
+    def ndk_path(self):
+        version = self.ndk
+        if not version:
+            version = 'r10e'  # falls back to latest
+        paths = common.config['ndk_paths']
+        if version not in paths:
+            return ''
+        return paths[version]
+
+    def update_flags(self, d):
+        for f, v in d.iteritems():
+            self.set_flag(f, v)
+
+
+def flagtype(name):
+    if name in ['extlibs', 'srclibs', 'patch', 'rm', 'buildjni', 'preassemble',
+                'update', 'scanignore', 'scandelete', 'gradle', 'antcommands',
+                'gradleprops']:
+        return 'list'
+    if name in ['init', 'prebuild', 'build']:
+        return 'script'
+    if name in ['submodules', 'oldsdkloc', 'forceversion', 'forcevercode',
+                'novcheck']:
+        return 'bool'
+    return 'string'
 
 
 # Designates a metadata field type and checks that it matches
 
 
 # Designates a metadata field type and checks that it matches
@@ -230,18 +349,18 @@ flag_defaults = OrderedDict([
 # 'matching' - List of possible values or regex expression
 # 'sep'      - Separator to use if value may be a list
 # 'fields'   - Metadata fields (Field:Value) of this type
 # 'matching' - List of possible values or regex expression
 # 'sep'      - Separator to use if value may be a list
 # 'fields'   - Metadata fields (Field:Value) of this type
-# 'attrs'    - Build attributes (attr=value) of this type
+# 'flags'    - Build flags (flag=value) of this type
 #
 class FieldValidator():
 
 #
 class FieldValidator():
 
-    def __init__(self, name, matching, sep, fields, attrs):
+    def __init__(self, name, matching, sep, fields, flags):
         self.name = name
         self.matching = matching
         if type(matching) is str:
             self.compiled = re.compile(matching)
         self.sep = sep
         self.fields = fields
         self.name = name
         self.matching = matching
         if type(matching) is str:
             self.compiled = re.compile(matching)
         self.sep = sep
         self.fields = fields
-        self.attrs = attrs
+        self.flags = flags
 
     def _assert_regex(self, values, appid):
         for v in values:
 
     def _assert_regex(self, values, appid):
         for v in values:
@@ -257,13 +376,13 @@ class FieldValidator():
                                         % (v, self.name, appid) +
                                         "Possible values: %s" % (", ".join(self.matching)))
 
                                         % (v, self.name, appid) +
                                         "Possible values: %s" % (", ".join(self.matching)))
 
-    def check(self, value, appid):
-        if type(value) is not str or not value:
+    def check(self, v, appid):
+        if type(v) is not str or not v:
             return
         if self.sep is not None:
             return
         if self.sep is not None:
-            values = value.split(self.sep)
+            values = v.split(self.sep)
         else:
         else:
-            values = [value]
+            values = [v]
         if type(self.matching) is list:
             self._assert_list(values, appid)
         else:
         if type(self.matching) is list:
             self._assert_list(values, appid)
         else:
@@ -337,11 +456,11 @@ valuetypes = {
 # Check an app's metadata information for integrity errors
 def check_metadata(app):
     for v in valuetypes:
 # Check an app's metadata information for integrity errors
 def check_metadata(app):
     for v in valuetypes:
-        for field in v.fields:
-            v.check(app.get_field(field), app.id)
+        for f in v.fields:
+            v.check(app.get_field(f), app.id)
         for build in app.builds:
         for build in app.builds:
-            for attr in v.attrs:
-                v.check(build[attr], app.id)
+            for f in v.flags:
+                v.check(build.get_flag(f), app.id)
 
 
 # Formatter for descriptions. Create an instance, and call parseline() with
 
 
 # Formatter for descriptions. Create an instance, and call parseline() with
@@ -554,14 +673,14 @@ def parse_srclib(metadatapath):
             continue
 
         try:
             continue
 
         try:
-            field, value = line.split(':', 1)
+            f, v = line.split(':', 1)
         except ValueError:
             raise MetaDataException("Invalid metadata in %s:%d" % (line, n))
 
         except ValueError:
             raise MetaDataException("Invalid metadata in %s:%d" % (line, n))
 
-        if field == "Subdir":
-            thisinfo[field] = value.split(',')
+        if f == "Subdir":
+            thisinfo[f] = v.split(',')
         else:
         else:
-            thisinfo[field] = value
+            thisinfo[f] = v
 
     return thisinfo
 
 
     return thisinfo
 
@@ -640,54 +759,6 @@ def read_metadata(xref=True):
     return apps
 
 
     return apps
 
 
-# Get the type expected for a given metadata field.
-def metafieldtype(name):
-    if name in ['Description', 'Maintainer Notes']:
-        return 'multiline'
-    if name in ['Categories', 'AntiFeatures']:
-        return 'list'
-    if name == 'Build Version':
-        return 'build'
-    if name == 'Build':
-        return 'buildv2'
-    if name == 'Use Built':
-        return 'obsolete'
-    if name not in app_fields:
-        return 'unknown'
-    return 'string'
-
-
-def flagtype(name):
-    if name in ['extlibs', 'srclibs', 'patch', 'rm', 'buildjni', 'preassemble',
-                'update', 'scanignore', 'scandelete', 'gradle', 'antcommands',
-                'gradleprops']:
-        return 'list'
-    if name in ['init', 'prebuild', 'build']:
-        return 'script'
-    if name in ['submodules', 'oldsdkloc', 'forceversion', 'forcevercode',
-                'novcheck']:
-        return 'bool'
-    return 'string'
-
-
-def fill_build_defaults(build):
-
-    def get_build_type():
-        for t in ['maven', 'gradle', 'kivy']:
-            if build[t]:
-                return t
-        if build['output']:
-            return 'raw'
-        return 'ant'
-
-    for flag, value in flag_defaults.iteritems():
-        if flag in build:
-            continue
-        build[flag] = value
-    build['type'] = get_build_type()
-    build['ndk_path'] = common.get_ndk_path(build['ndk'])
-
-
 def split_list_values(s):
     # Port legacy ';' separators
     l = [v.strip() for v in s.replace(';', ',').split(',')]
 def split_list_values(s):
     # Port legacy ';' separators
     l = [v.strip() for v in s.replace(';', ',').split(',')]
@@ -709,7 +780,7 @@ def get_default_app_info(metadatapath=None):
 
 
 def sorted_builds(builds):
 
 
 def sorted_builds(builds):
-    return sorted(builds, key=lambda build: int(build['vercode']))
+    return sorted(builds, key=lambda build: int(build.vercode))
 
 
 def post_metadata_parse(app):
 
 
 def post_metadata_parse(app):
@@ -726,60 +797,30 @@ def post_metadata_parse(app):
             text = v.rstrip().lstrip()
             app.set_field(f, text.split('\n'))
 
             text = v.rstrip().lstrip()
             app.set_field(f, text.split('\n'))
 
-    supported_flags = (flag_defaults.keys()
-                       + ['vercode', 'version', 'versionCode', 'versionName',
-                          'type', 'ndk_path'])
     esc_newlines = re.compile('\\\\( |\\n)')
 
     for build in app.builds:
     esc_newlines = re.compile('\\\\( |\\n)')
 
     for build in app.builds:
-        for k, v in build.items():
-            if k not in supported_flags:
-                raise MetaDataException("Unrecognised build flag: {0}={1}"
-                                        .format(k, v))
-
-            if k == 'versionCode':
-                build['vercode'] = str(v)
-                del build['versionCode']
-            elif k == 'versionName':
-                build['version'] = str(v)
-                del build['versionName']
-            elif type(v) in (float, int):
-                build[k] = str(v)
+        for k in build_flags:
+            v = build.get_flag(k)
+
+            if type(v) in (float, int):
+                build.set_flag(k, v)
             else:
                 keyflagtype = flagtype(k)
             else:
                 keyflagtype = flagtype(k)
-                if keyflagtype == 'list':
-                    # these can be bools, strings or lists, but ultimately are lists
-                    if isinstance(v, basestring):
-                        build[k] = [v]
-                    elif isinstance(v, bool):
-                        build[k] = ['yes' if v else 'no']
-                    elif isinstance(v, list):
-                        build[k] = []
-                        for e in v:
-                            if isinstance(e, bool):
-                                build[k].append('yes' if v else 'no')
-                            else:
-                                build[k].append(e)
-
-                elif keyflagtype == 'script':
-                    build[k] = re.sub(esc_newlines, '', v).lstrip().rstrip()
+
+                if keyflagtype == 'script':
+                    build.set_flag(k, re.sub(esc_newlines, '', v).lstrip().rstrip())
                 elif keyflagtype == 'bool':
                     # TODO handle this using <xsd:element type="xsd:boolean> in a schema
                 elif keyflagtype == 'bool':
                     # TODO handle this using <xsd:element type="xsd:boolean> in a schema
-                    if isinstance(v, basestring):
-                        if v == 'true':
-                            build[k] = True
-                        else:
-                            build[k] = False
+                    if isinstance(v, basestring) and v == 'true':
+                        build.set_flag(k, 'true')
                 elif keyflagtype == 'string':
                 elif keyflagtype == 'string':
-                    if isinstance(v, bool):
-                        build[k] = 'yes' if v else 'no'
+                    if isinstance(v, bool) and v:
+                        build.set_flag(k, 'yes')
 
     if not app.Description:
         app.Description = ['No description available']
 
 
     if not app.Description:
         app.Description = ['No description available']
 
-    for build in app.builds:
-        fill_build_defaults(build)
-
     app.builds = sorted_builds(app.builds)
 
 
     app.builds = sorted_builds(app.builds)
 
 
@@ -826,16 +867,16 @@ def _decode_list(data):
 def _decode_dict(data):
     '''convert items in a dict from unicode to basestring'''
     rv = {}
 def _decode_dict(data):
     '''convert items in a dict from unicode to basestring'''
     rv = {}
-    for key, value in data.iteritems():
-        if isinstance(key, unicode):
-            key = key.encode('utf-8')
-        if isinstance(value, unicode):
-            value = value.encode('utf-8')
-        elif isinstance(value, list):
-            value = _decode_list(value)
-        elif isinstance(value, dict):
-            value = _decode_dict(value)
-        rv[key] = value
+    for k, v in data.iteritems():
+        if isinstance(k, unicode):
+            k = k.encode('utf-8')
+        if isinstance(v, unicode):
+            v = v.encode('utf-8')
+        elif isinstance(v, list):
+            v = _decode_list(v)
+        elif isinstance(v, dict):
+            v = _decode_dict(v)
+        rv[k] = v
     return rv
 
 
     return rv
 
 
@@ -897,16 +938,14 @@ def parse_xml_metadata(metadatapath):
         if child.tag == 'string':
             app.set_field(name, child.text)
         elif child.tag == 'string-array':
         if child.tag == 'string':
             app.set_field(name, child.text)
         elif child.tag == 'string-array':
-            items = []
             for item in child:
             for item in child:
-                items.append(item.text)
-            app.set_field(name, items)
+                app.append_field(name, item.text)
         elif child.tag == 'builds':
         elif child.tag == 'builds':
-            for build in child:
-                builddict = dict()
-                for key in build:
-                    builddict[key.tag] = key.text
-                app.builds.append(builddict)
+            for b in child:
+                build = Build()
+                for key in b:
+                    build.set_flag(key.tag, key.text)
+                app.builds.append(build)
 
     # TODO handle this using <xsd:element type="xsd:boolean> in a schema
     if not isinstance(app.RequiresRoot, bool):
 
     # TODO handle this using <xsd:element type="xsd:boolean> in a schema
     if not isinstance(app.RequiresRoot, bool):
@@ -935,7 +974,7 @@ def parse_txt_metadata(metadatapath):
 
     linedesc = None
 
 
     linedesc = None
 
-    def add_buildflag(p, thisbuild):
+    def add_buildflag(p, build):
         if not p.strip():
             raise MetaDataException("Empty build flag at {1}"
                                     .format(buildlines[0], linedesc))
         if not p.strip():
             raise MetaDataException("Empty build flag at {1}"
                                     .format(buildlines[0], linedesc))
@@ -943,13 +982,10 @@ def parse_txt_metadata(metadatapath):
         if len(bv) != 2:
             raise MetaDataException("Invalid build flag at {0} in {1}"
                                     .format(buildlines[0], linedesc))
         if len(bv) != 2:
             raise MetaDataException("Invalid build flag at {0} in {1}"
                                     .format(buildlines[0], linedesc))
-        pk, pv = bv
-        if pk in thisbuild:
-            raise MetaDataException("Duplicate definition on {0} in version {1} of {2}"
-                                    .format(pk, thisbuild['version'], linedesc))
 
 
+        pk, pv = bv
         pk = pk.lstrip()
         pk = pk.lstrip()
-        if pk not in flag_defaults:
+        if pk not in build_flags:
             raise MetaDataException("Unrecognised build flag at {0} in {1}"
                                     .format(p, linedesc))
         t = flagtype(pk)
             raise MetaDataException("Unrecognised build flag at {0} in {1}"
                                     .format(p, linedesc))
         t = flagtype(pk)
@@ -958,45 +994,45 @@ def parse_txt_metadata(metadatapath):
             if pk == 'gradle':
                 if len(pv) == 1 and pv[0] in ['main', 'yes']:
                     pv = ['yes']
             if pk == 'gradle':
                 if len(pv) == 1 and pv[0] in ['main', 'yes']:
                     pv = ['yes']
-            thisbuild[pk] = pv
+            build.set_flag(pk, pv)
         elif t == 'string' or t == 'script':
         elif t == 'string' or t == 'script':
-            thisbuild[pk] = pv
+            build.set_flag(pk, pv)
         elif t == 'bool':
         elif t == 'bool':
-            value = pv == 'yes'
-            if value:
-                thisbuild[pk] = True
+            v = pv == 'yes'
+            if v:
+                build.set_flag(pk, True)
 
         else:
             raise MetaDataException("Unrecognised build flag type '%s' at %s in %s"
                                     % (t, p, linedesc))
 
     def parse_buildline(lines):
 
         else:
             raise MetaDataException("Unrecognised build flag type '%s' at %s in %s"
                                     % (t, p, linedesc))
 
     def parse_buildline(lines):
-        value = "".join(lines)
+        v = "".join(lines)
         parts = [p.replace("\\,", ",")
         parts = [p.replace("\\,", ",")
-                 for p in re.split(r"(?<!\\),", value)]
+                 for p in re.split(r"(?<!\\),", v)]
         if len(parts) < 3:
         if len(parts) < 3:
-            raise MetaDataException("Invalid build format: " + value + " in " + metafile.name)
-        thisbuild = {}
-        thisbuild['origlines'] = lines
-        thisbuild['version'] = parts[0]
-        thisbuild['vercode'] = parts[1]
+            raise MetaDataException("Invalid build format: " + v + " in " + metafile.name)
+        build = Build()
+        build.origlines = lines
+        build.version = parts[0]
+        build.vercode = parts[1]
         if parts[2].startswith('!'):
             # For backwards compatibility, handle old-style disabling,
             # including attempting to extract the commit from the message
         if parts[2].startswith('!'):
             # For backwards compatibility, handle old-style disabling,
             # including attempting to extract the commit from the message
-            thisbuild['disable'] = parts[2][1:]
+            build.disable = parts[2][1:]
             commit = 'unknown - see disabled'
             index = parts[2].rfind('at ')
             if index != -1:
                 commit = parts[2][index + 3:]
                 if commit.endswith(')'):
                     commit = commit[:-1]
             commit = 'unknown - see disabled'
             index = parts[2].rfind('at ')
             if index != -1:
                 commit = parts[2][index + 3:]
                 if commit.endswith(')'):
                     commit = commit[:-1]
-            thisbuild['commit'] = commit
+            build.commit = commit
         else:
         else:
-            thisbuild['commit'] = parts[2]
+            build.commit = parts[2]
         for p in parts[3:]:
         for p in parts[3:]:
-            add_buildflag(p, thisbuild)
+            add_buildflag(p, build)
 
 
-        return thisbuild
+        return build
 
     def add_comments(key):
         if not curcomments:
 
     def add_comments(key):
         if not curcomments:
@@ -1010,7 +1046,7 @@ def parse_txt_metadata(metadatapath):
     mode = 0
     buildlines = []
     curcomments = []
     mode = 0
     buildlines = []
     curcomments = []
-    curbuild = None
+    build = None
     vc_seen = {}
 
     c = 0
     vc_seen = {}
 
     c = 0
@@ -1020,13 +1056,12 @@ def parse_txt_metadata(metadatapath):
         line = line.rstrip('\r\n')
         if mode == 3:
             if not any(line.startswith(s) for s in (' ', '\t')):
         line = line.rstrip('\r\n')
         if mode == 3:
             if not any(line.startswith(s) for s in (' ', '\t')):
-                commit = curbuild['commit'] if 'commit' in curbuild else None
-                if not commit and 'disable' not in curbuild:
+                if not build.commit and not build.disable:
                     raise MetaDataException("No commit specified for {0} in {1}"
                     raise MetaDataException("No commit specified for {0} in {1}"
-                                            .format(curbuild['version'], linedesc))
+                                            .format(build.version, linedesc))
 
 
-                app.builds.append(curbuild)
-                add_comments('build:' + curbuild['vercode'])
+                app.builds.append(build)
+                add_comments('build:' + build.vercode)
                 mode = 0
             else:
                 if line.endswith('\\'):
                 mode = 0
             else:
                 if line.endswith('\\'):
@@ -1034,7 +1069,7 @@ def parse_txt_metadata(metadatapath):
                 else:
                     buildlines.append(line.lstrip())
                     bl = ''.join(buildlines)
                 else:
                     buildlines.append(line.lstrip())
                     bl = ''.join(buildlines)
-                    add_buildflag(bl, curbuild)
+                    add_buildflag(bl, build)
                     buildlines = []
 
         if mode == 0:
                     buildlines = []
 
         if mode == 0:
@@ -1044,74 +1079,74 @@ def parse_txt_metadata(metadatapath):
                 curcomments.append(line[1:].strip())
                 continue
             try:
                 curcomments.append(line[1:].strip())
                 continue
             try:
-                field, value = line.split(':', 1)
+                f, v = line.split(':', 1)
             except ValueError:
                 raise MetaDataException("Invalid metadata in " + linedesc)
             except ValueError:
                 raise MetaDataException("Invalid metadata in " + linedesc)
-            if field != field.strip() or value != value.strip():
+            if f != f.strip() or v != v.strip():
                 raise MetaDataException("Extra spacing found in " + linedesc)
 
             # Translate obsolete fields...
                 raise MetaDataException("Extra spacing found in " + linedesc)
 
             # Translate obsolete fields...
-            if field == 'Market Version':
-                field = 'Current Version'
-            if field == 'Market Version Code':
-                field = 'Current Version Code'
+            if f == 'Market Version':
+                f = 'Current Version'
+            if f == 'Market Version Code':
+                f = 'Current Version Code'
 
 
-            fieldtype = metafieldtype(field)
+            fieldtype = metafieldtype(f)
             if fieldtype not in ['build', 'buildv2']:
             if fieldtype not in ['build', 'buildv2']:
-                add_comments(field)
+                add_comments(f)
             if fieldtype == 'multiline':
                 mode = 1
             if fieldtype == 'multiline':
                 mode = 1
-                if value:
-                    raise MetaDataException("Unexpected text on same line as " + field + " in " + linedesc)
+                if v:
+                    raise MetaDataException("Unexpected text on same line as " + f + " in " + linedesc)
             elif fieldtype == 'string':
             elif fieldtype == 'string':
-                app.set_field(field, value)
+                app.set_field(f, v)
             elif fieldtype == 'list':
             elif fieldtype == 'list':
-                app.set_field(field, split_list_values(value))
+                app.set_field(f, split_list_values(v))
             elif fieldtype == 'build':
             elif fieldtype == 'build':
-                if value.endswith("\\"):
+                if v.endswith("\\"):
                     mode = 2
                     mode = 2
-                    buildlines = [value[:-1]]
+                    buildlines = [v[:-1]]
                 else:
                 else:
-                    curbuild = parse_buildline([value])
-                    app.builds.append(curbuild)
-                    add_comments('build:' + app.builds[-1]['vercode'])
+                    build = parse_buildline([v])
+                    app.builds.append(build)
+                    add_comments('build:' + app.builds[-1].vercode)
             elif fieldtype == 'buildv2':
             elif fieldtype == 'buildv2':
-                curbuild = {}
-                vv = value.split(',')
+                build = Build()
+                vv = v.split(',')
                 if len(vv) != 2:
                     raise MetaDataException('Build should have comma-separated version and vercode, not "{0}", in {1}'
                 if len(vv) != 2:
                     raise MetaDataException('Build should have comma-separated version and vercode, not "{0}", in {1}'
-                                            .format(value, linedesc))
-                curbuild['version'] = vv[0]
-                curbuild['vercode'] = vv[1]
-                if curbuild['vercode'] in vc_seen:
+                                            .format(v, linedesc))
+                build.version = vv[0]
+                build.vercode = vv[1]
+                if build.vercode in vc_seen:
                     raise MetaDataException('Duplicate build recipe found for vercode %s in %s' % (
                     raise MetaDataException('Duplicate build recipe found for vercode %s in %s' % (
-                                            curbuild['vercode'], linedesc))
-                vc_seen[curbuild['vercode']] = True
+                                            build.vercode, linedesc))
+                vc_seen[build.vercode] = True
                 buildlines = []
                 mode = 3
             elif fieldtype == 'obsolete':
                 pass        # Just throw it away!
             else:
                 buildlines = []
                 mode = 3
             elif fieldtype == 'obsolete':
                 pass        # Just throw it away!
             else:
-                raise MetaDataException("Unrecognised field type for " + field + " in " + linedesc)
+                raise MetaDataException("Unrecognised field type for " + f + " in " + linedesc)
         elif mode == 1:     # Multiline field
             if line == '.':
                 mode = 0
             else:
         elif mode == 1:     # Multiline field
             if line == '.':
                 mode = 0
             else:
-                app.append_field(field, line)
+                app.append_field(f, line)
         elif mode == 2:     # Line continuation mode in Build Version
             if line.endswith("\\"):
                 buildlines.append(line[:-1])
             else:
                 buildlines.append(line)
         elif mode == 2:     # Line continuation mode in Build Version
             if line.endswith("\\"):
                 buildlines.append(line[:-1])
             else:
                 buildlines.append(line)
-                curbuild = parse_buildline(buildlines)
-                app.builds.append(curbuild)
-                add_comments('build:' + app.builds[-1]['vercode'])
+                build = parse_buildline(buildlines)
+                app.builds.append(build)
+                add_comments('build:' + app.builds[-1].vercode)
                 mode = 0
     add_comments(None)
 
     # Mode at end of file should always be 0...
     if mode == 1:
                 mode = 0
     add_comments(None)
 
     # Mode at end of file should always be 0...
     if mode == 1:
-        raise MetaDataException(field + " not terminated in " + metafile.name)
+        raise MetaDataException(f + " not terminated in " + metafile.name)
     elif mode == 2:
         raise MetaDataException("Unterminated continuation in " + metafile.name)
     elif mode == 3:
     elif mode == 2:
         raise MetaDataException("Unterminated continuation in " + metafile.name)
     elif mode == 3:
@@ -1130,18 +1165,18 @@ def write_plaintext_metadata(mf, app, w_comment, w_field, w_build):
         for line in app.comments[key]:
             w_comment(line)
 
         for line in app.comments[key]:
             w_comment(line)
 
-    def w_field_always(field, value=None):
-        if value is None:
-            value = app.get_field(field)
-        w_comments(field)
-        w_field(field, value)
+    def w_field_always(f, v=None):
+        if v is None:
+            v = app.get_field(f)
+        w_comments(f)
+        w_field(f, v)
 
 
-    def w_field_nonempty(field, value=None):
-        if value is None:
-            value = app.get_field(field)
-        w_comments(field)
-        if value:
-            w_field(field, value)
+    def w_field_nonempty(f, v=None):
+        if v is None:
+            v = app.get_field(f)
+        w_comments(f)
+        if v:
+            w_field(f, v)
 
     w_field_nonempty('Disabled')
     if app.AntiFeatures:
 
     w_field_nonempty('Disabled')
     if app.AntiFeatures:
@@ -1175,10 +1210,10 @@ def write_plaintext_metadata(mf, app, w_comment, w_field, w_build):
 
     for build in sorted_builds(app.builds):
 
 
     for build in sorted_builds(app.builds):
 
-        if build['version'] == "Ignore":
+        if build.version == "Ignore":
             continue
 
             continue
 
-        w_comments('build:' + build['vercode'])
+        w_comments('build:' + build.vercode)
         w_build(build)
         mf.write('\n')
 
         w_build(build)
         mf.write('\n')
 
@@ -1211,39 +1246,37 @@ def write_txt_metadata(mf, app):
     def w_comment(line):
         mf.write("# %s\n" % line)
 
     def w_comment(line):
         mf.write("# %s\n" % line)
 
-    def w_field(field, value):
-        t = metafieldtype(field)
+    def w_field(f, v):
+        t = metafieldtype(f)
         if t == 'list':
         if t == 'list':
-            value = ','.join(value)
+            v = ','.join(v)
         elif t == 'multiline':
         elif t == 'multiline':
-            if type(value) == list:
-                value = '\n' + '\n'.join(value) + '\n.'
+            if type(v) == list:
+                v = '\n' + '\n'.join(v) + '\n.'
             else:
             else:
-                value = '\n' + value + '\n.'
-        mf.write("%s:%s\n" % (field, value))
+                v = '\n' + v + '\n.'
+        mf.write("%s:%s\n" % (f, v))
 
     def w_build(build):
 
     def w_build(build):
-        mf.write("Build:%s,%s\n" % (build['version'], build['vercode']))
+        mf.write("Build:%s,%s\n" % (build.version, build.vercode))
 
 
-        for key in flag_defaults:
-            value = build[key]
-            if not value:
-                continue
-            if value == flag_defaults[key]:
+        for f in build_flags_order:
+            v = build.get_flag(f)
+            if not v:
                 continue
 
                 continue
 
-            t = flagtype(key)
-            v = '    %s=' % key
+            t = flagtype(f)
+            out = '    %s=' % f
             if t == 'string':
             if t == 'string':
-                v += value
+                out += v
             elif t == 'bool':
             elif t == 'bool':
-                v += 'yes'
+                out += 'yes'
             elif t == 'script':
             elif t == 'script':
-                v += '&& \\\n        '.join([s.lstrip() for s in value.split('&& ')])
+                out += '&& \\\n        '.join([s.lstrip() for s in v.split('&& ')])
             elif t == 'list':
             elif t == 'list':
-                v += ','.join(value) if type(value) == list else value
+                out += ','.join(v) if type(v) == list else v
 
 
-            mf.write(v)
+            mf.write(out)
             mf.write('\n')
 
     write_plaintext_metadata(mf, app, w_comment, w_field, w_build)
             mf.write('\n')
 
     write_plaintext_metadata(mf, app, w_comment, w_field, w_build)
@@ -1254,26 +1287,26 @@ def write_yaml_metadata(mf, app):
     def w_comment(line):
         mf.write("# %s\n" % line)
 
     def w_comment(line):
         mf.write("# %s\n" % line)
 
-    def escape(value):
-        if not value:
+    def escape(v):
+        if not v:
             return ''
             return ''
-        if any(c in value for c in [': ', '%', '@', '*']):
-            return "'" + value.replace("'", "''") + "'"
-        return value
+        if any(c in v for c in [': ', '%', '@', '*']):
+            return "'" + v.replace("'", "''") + "'"
+        return v
 
 
-    def w_field(field, value, prefix='', t=None):
+    def w_field(f, v, prefix='', t=None):
         if t is None:
         if t is None:
-            t = metafieldtype(field)
+            t = metafieldtype(f)
         v = ''
         if t == 'list':
             v = '\n'
         v = ''
         if t == 'list':
             v = '\n'
-            for e in value:
+            for e in v:
                 v += prefix + ' - ' + escape(e) + '\n'
         elif t == 'multiline':
             v = ' |\n'
                 v += prefix + ' - ' + escape(e) + '\n'
         elif t == 'multiline':
             v = ' |\n'
-            lines = value
-            if type(value) == str:
-                lines = value.splitlines()
+            lines = v
+            if type(v) == str:
+                lines = v.splitlines()
             for l in lines:
                 if l:
                     v += prefix + '  ' + l + '\n'
             for l in lines:
                 if l:
                     v += prefix + '  ' + l + '\n'
@@ -1282,16 +1315,16 @@ def write_yaml_metadata(mf, app):
         elif t == 'bool':
             v = ' yes\n'
         elif t == 'script':
         elif t == 'bool':
             v = ' yes\n'
         elif t == 'script':
-            cmds = [s + '&& \\' for s in value.split('&& ')]
+            cmds = [s + '&& \\' for s in v.split('&& ')]
             if len(cmds) > 0:
                 cmds[-1] = cmds[-1][:-len('&& \\')]
             if len(cmds) > 0:
                 cmds[-1] = cmds[-1][:-len('&& \\')]
-            w_field(field, cmds, prefix, 'multiline')
+            w_field(f, cmds, prefix, 'multiline')
             return
         else:
             return
         else:
-            v = ' ' + escape(value) + '\n'
+            v = ' ' + escape(v) + '\n'
 
         mf.write(prefix)
 
         mf.write(prefix)
-        mf.write(field)
+        mf.write(f)
         mf.write(":")
         mf.write(v)
 
         mf.write(":")
         mf.write(v)
 
@@ -1304,16 +1337,14 @@ def write_yaml_metadata(mf, app):
             mf.write("builds:\n")
             first_build = False
 
             mf.write("builds:\n")
             first_build = False
 
-        w_field('versionName', build['version'], '  - ', 'string')
-        w_field('versionCode', build['vercode'], '    ', 'strsng')
-        for key in flag_defaults:
-            value = build[key]
-            if not value:
-                continue
-            if value == flag_defaults[key]:
+        w_field('versionName', build.version, '  - ', 'string')
+        w_field('versionCode', build.vercode, '    ', 'strsng')
+        for f in build_flags_order:
+            v = build.get_flag(f)
+            if not v:
                 continue
 
                 continue
 
-            w_field(key, value, '    ', flagtype(key))
+            w_field(f, v, '    ', flagtype(f))
 
     write_plaintext_metadata(mf, app, w_comment, w_field, w_build)
 
 
     write_plaintext_metadata(mf, app, w_comment, w_field, w_build)
 
index d6dc56b2b048e340c9e22a0837c98dd16729ac1a..4ac6276ddaa3abe3d858d00244e7a3036239e809 100644 (file)
@@ -31,18 +31,18 @@ config = None
 options = None
 
 
 options = None
 
 
-def get_gradle_compile_commands(thisbuild):
+def get_gradle_compile_commands(build):
     compileCommands = ['compile', 'releaseCompile']
     compileCommands = ['compile', 'releaseCompile']
-    if thisbuild['gradle'] and thisbuild['gradle'] != ['yes']:
-        compileCommands += [flavor + 'Compile' for flavor in thisbuild['gradle']]
-        compileCommands += [flavor + 'ReleaseCompile' for flavor in thisbuild['gradle']]
+    if build.gradle and build.gradle != ['yes']:
+        compileCommands += [flavor + 'Compile' for flavor in build.gradle]
+        compileCommands += [flavor + 'ReleaseCompile' for flavor in build.gradle]
 
     return [re.compile(r'\s*' + c, re.IGNORECASE) for c in compileCommands]
 
 
 # Scan the source code in the given directory (and all subdirectories)
 # and return the number of fatal problems encountered
 
     return [re.compile(r'\s*' + c, re.IGNORECASE) for c in compileCommands]
 
 
 # Scan the source code in the given directory (and all subdirectories)
 # and return the number of fatal problems encountered
-def scan_source(build_dir, root_dir, thisbuild):
+def scan_source(build_dir, root_dir, build):
 
     count = 0
 
 
     count = 0
 
@@ -85,8 +85,8 @@ def scan_source(build_dir, root_dir, thisbuild):
         ]
     ]
 
         ]
     ]
 
-    scanignore = common.getpaths_map(build_dir, thisbuild['scanignore'])
-    scandelete = common.getpaths_map(build_dir, thisbuild['scandelete'])
+    scanignore = common.getpaths_map(build_dir, build.scanignore)
+    scandelete = common.getpaths_map(build_dir, build.scandelete)
 
     scanignore_worked = set()
     scandelete_worked = set()
 
     scanignore_worked = set()
     scandelete_worked = set()
@@ -153,7 +153,7 @@ def scan_source(build_dir, root_dir, thisbuild):
                 return True
         return False
 
                 return True
         return False
 
-    gradle_compile_commands = get_gradle_compile_commands(thisbuild)
+    gradle_compile_commands = get_gradle_compile_commands(build)
 
     def is_used_by_gradle(line):
         return any(command.match(line) for command in gradle_compile_commands)
 
     def is_used_by_gradle(line):
         return any(command.match(line) for command in gradle_compile_commands)
@@ -240,7 +240,7 @@ def scan_source(build_dir, root_dir, thisbuild):
     # indicate a problem (if it's not a problem, explicitly use
     # buildjni=no to bypass this check)
     if (os.path.exists(os.path.join(root_dir, 'jni')) and
     # indicate a problem (if it's not a problem, explicitly use
     # buildjni=no to bypass this check)
     if (os.path.exists(os.path.join(root_dir, 'jni')) and
-            not thisbuild['buildjni']):
+            not build.buildjni):
         logging.error('Found jni directory, but buildjni is not enabled. Set it to \'no\' to ignore.')
         count += 1
 
         logging.error('Found jni directory, but buildjni is not enabled. Set it to \'no\' to ignore.')
         count += 1
 
@@ -293,24 +293,24 @@ def main():
             # Set up vcs interface and make sure we have the latest code...
             vcs = common.getvcs(app.RepoType, app.Repo, build_dir)
 
             # Set up vcs interface and make sure we have the latest code...
             vcs = common.getvcs(app.RepoType, app.Repo, build_dir)
 
-            for thisbuild in app.builds:
+            for build in app.builds:
 
 
-                if thisbuild['disable']:
+                if build.disable:
                     logging.info("...skipping version %s - %s" % (
                     logging.info("...skipping version %s - %s" % (
-                        thisbuild['version'], thisbuild.get('disable', thisbuild['commit'][1:])))
+                        build.version, build.get('disable', build.commit[1:])))
                 else:
                 else:
-                    logging.info("...scanning version " + thisbuild['version'])
+                    logging.info("...scanning version " + build.version)
 
                     # Prepare the source code...
 
                     # Prepare the source code...
-                    root_dir, _ = common.prepare_source(vcs, app, thisbuild,
+                    root_dir, _ = common.prepare_source(vcs, app, build,
                                                         build_dir, srclib_dir,
                                                         extlib_dir, False)
 
                     # Do the scan...
                                                         build_dir, srclib_dir,
                                                         extlib_dir, False)
 
                     # Do the scan...
-                    count = scan_source(build_dir, root_dir, thisbuild)
+                    count = scan_source(build_dir, root_dir, build)
                     if count > 0:
                         logging.warn('Scanner found %d problems in %s (%s)' % (
                     if count > 0:
                         logging.warn('Scanner found %d problems in %s (%s)' % (
-                            count, appid, thisbuild['vercode']))
+                            count, appid, build.vercode))
                         probcount += count
 
         except BuildException as be:
                         probcount += count
 
         except BuildException as be:
index 63083d205d82074735c951220cd72a609a5238e9..3a01a7c21cb2db097621d45eca9fd828053c4fbf 100644 (file)
@@ -144,26 +144,26 @@ def update_wiki(apps, sortedids, apks):
                     gotcurrentver = True
                 apklist.append(apk)
         # Include ones we can't build, as a special case...
                     gotcurrentver = True
                 apklist.append(apk)
         # Include ones we can't build, as a special case...
-        for thisbuild in app.builds:
-            if thisbuild['disable']:
-                if thisbuild['vercode'] == app.CurrentVersionCode:
+        for build in app.builds:
+            if build.disable:
+                if build.vercode == app.CurrentVersionCode:
                     cantupdate = True
                 # TODO: Nasty: vercode is a string in the build, and an int elsewhere
                     cantupdate = True
                 # TODO: Nasty: vercode is a string in the build, and an int elsewhere
-                apklist.append({'versioncode': int(thisbuild['vercode']),
-                                'version': thisbuild['version'],
-                                'buildproblem': "The build for this version was manually disabled. Reason: {0}".format(thisbuild['disable']),
+                apklist.append({'versioncode': int(build.vercode),
+                                'version': build.version,
+                                'buildproblem': "The build for this version was manually disabled. Reason: {0}".format(build.disable),
                                 })
             else:
                 builtit = False
                 for apk in apklist:
                                 })
             else:
                 builtit = False
                 for apk in apklist:
-                    if apk['versioncode'] == int(thisbuild['vercode']):
+                    if apk['versioncode'] == int(build.vercode):
                         builtit = True
                         break
                 if not builtit:
                     buildfails = True
                         builtit = True
                         break
                 if not builtit:
                     buildfails = True
-                    apklist.append({'versioncode': int(thisbuild['vercode']),
-                                    'version': thisbuild['version'],
-                                    'buildproblem': "The build for this version appears to have failed. Check the [[{0}/lastbuild_{1}|build log]].".format(appid, thisbuild['vercode']),
+                    apklist.append({'versioncode': int(build.vercode),
+                                    'version': build.version,
+                                    'buildproblem': "The build for this version appears to have failed. Check the [[{0}/lastbuild_{1}|build log]].".format(appid, build.vercode),
                                     })
         if app.CurrentVersionCode == '0':
             cantupdate = True
                                     })
         if app.CurrentVersionCode == '0':
             cantupdate = True
@@ -291,12 +291,12 @@ def delete_disabled_builds(apps, apkcache, repodirs):
     """
     for appid, app in apps.iteritems():
         for build in app.builds:
     """
     for appid, app in apps.iteritems():
         for build in app.builds:
-            if not build['disable']:
+            if not build.disable:
                 continue
                 continue
-            apkfilename = appid + '_' + str(build['vercode']) + '.apk'
+            apkfilename = appid + '_' + str(build.vercode) + '.apk'
             iconfilename = "%s.%s.png" % (
                 appid,
             iconfilename = "%s.%s.png" % (
                 appid,
-                build['vercode'])
+                build.vercode)
             for repodir in repodirs:
                 files = [
                     os.path.join(repodir, apkfilename),
             for repodir in repodirs:
                 files = [
                     os.path.join(repodir, apkfilename),
@@ -453,8 +453,8 @@ def scan_apks(apps, apkcache, repodir, knownapks):
 
         usecache = False
         if apkfilename in apkcache:
 
         usecache = False
         if apkfilename in apkcache:
-            thisinfo = apkcache[apkfilename]
-            if thisinfo['sha256'] == shasum:
+            apk = apkcache[apkfilename]
+            if apk['sha256'] == shasum:
                 logging.debug("Reading " + apkfilename + " from cache")
                 usecache = True
             else:
                 logging.debug("Reading " + apkfilename + " from cache")
                 usecache = True
             else:
@@ -462,17 +462,17 @@ def scan_apks(apps, apkcache, repodir, knownapks):
 
         if not usecache:
             logging.debug("Processing " + apkfilename)
 
         if not usecache:
             logging.debug("Processing " + apkfilename)
-            thisinfo = {}
-            thisinfo['apkname'] = apkfilename
-            thisinfo['sha256'] = shasum
+            apk = {}
+            apk['apkname'] = apkfilename
+            apk['sha256'] = shasum
             srcfilename = apkfilename[:-4] + "_src.tar.gz"
             if os.path.exists(os.path.join(repodir, srcfilename)):
             srcfilename = apkfilename[:-4] + "_src.tar.gz"
             if os.path.exists(os.path.join(repodir, srcfilename)):
-                thisinfo['srcname'] = srcfilename
-            thisinfo['size'] = os.path.getsize(apkfile)
-            thisinfo['permissions'] = set()
-            thisinfo['features'] = set()
-            thisinfo['icons_src'] = {}
-            thisinfo['icons'] = {}
+                apk['srcname'] = srcfilename
+            apk['size'] = os.path.getsize(apkfile)
+            apk['permissions'] = set()
+            apk['features'] = set()
+            apk['icons_src'] = {}
+            apk['icons'] = {}
             p = SdkToolsPopen(['aapt', 'dump', 'badging', apkfile], output=False)
             if p.returncode != 0:
                 if options.delete_unknown:
             p = SdkToolsPopen(['aapt', 'dump', 'badging', apkfile], output=False)
             if p.returncode != 0:
                 if options.delete_unknown:
@@ -487,51 +487,51 @@ def scan_apks(apps, apkcache, repodir, knownapks):
             for line in p.output.splitlines():
                 if line.startswith("package:"):
                     try:
             for line in p.output.splitlines():
                 if line.startswith("package:"):
                     try:
-                        thisinfo['id'] = re.match(name_pat, line).group(1)
-                        thisinfo['versioncode'] = int(re.match(vercode_pat, line).group(1))
-                        thisinfo['version'] = re.match(vername_pat, line).group(1)
+                        apk['id'] = re.match(name_pat, line).group(1)
+                        apk['versioncode'] = int(re.match(vercode_pat, line).group(1))
+                        apk['version'] = re.match(vername_pat, line).group(1)
                     except Exception, e:
                         logging.error("Package matching failed: " + str(e))
                         logging.info("Line was: " + line)
                         sys.exit(1)
                 elif line.startswith("application:"):
                     except Exception, e:
                         logging.error("Package matching failed: " + str(e))
                         logging.info("Line was: " + line)
                         sys.exit(1)
                 elif line.startswith("application:"):
-                    thisinfo['name'] = re.match(label_pat, line).group(1)
+                    apk['name'] = re.match(label_pat, line).group(1)
                     # Keep path to non-dpi icon in case we need it
                     match = re.match(icon_pat_nodpi, line)
                     if match:
                     # Keep path to non-dpi icon in case we need it
                     match = re.match(icon_pat_nodpi, line)
                     if match:
-                        thisinfo['icons_src']['-1'] = match.group(1)
+                        apk['icons_src']['-1'] = match.group(1)
                 elif line.startswith("launchable-activity:"):
                     # Only use launchable-activity as fallback to application
                 elif line.startswith("launchable-activity:"):
                     # Only use launchable-activity as fallback to application
-                    if not thisinfo['name']:
-                        thisinfo['name'] = re.match(label_pat, line).group(1)
-                    if '-1' not in thisinfo['icons_src']:
+                    if not apk['name']:
+                        apk['name'] = re.match(label_pat, line).group(1)
+                    if '-1' not in apk['icons_src']:
                         match = re.match(icon_pat_nodpi, line)
                         if match:
                         match = re.match(icon_pat_nodpi, line)
                         if match:
-                            thisinfo['icons_src']['-1'] = match.group(1)
+                            apk['icons_src']['-1'] = match.group(1)
                 elif line.startswith("application-icon-"):
                     match = re.match(icon_pat, line)
                     if match:
                         density = match.group(1)
                         path = match.group(2)
                 elif line.startswith("application-icon-"):
                     match = re.match(icon_pat, line)
                     if match:
                         density = match.group(1)
                         path = match.group(2)
-                        thisinfo['icons_src'][density] = path
+                        apk['icons_src'][density] = path
                 elif line.startswith("sdkVersion:"):
                     m = re.match(sdkversion_pat, line)
                     if m is None:
                         logging.error(line.replace('sdkVersion:', '')
                                       + ' is not a valid minSdkVersion!')
                     else:
                 elif line.startswith("sdkVersion:"):
                     m = re.match(sdkversion_pat, line)
                     if m is None:
                         logging.error(line.replace('sdkVersion:', '')
                                       + ' is not a valid minSdkVersion!')
                     else:
-                        thisinfo['sdkversion'] = m.group(1)
+                        apk['sdkversion'] = m.group(1)
                 elif line.startswith("maxSdkVersion:"):
                 elif line.startswith("maxSdkVersion:"):
-                    thisinfo['maxsdkversion'] = re.match(sdkversion_pat, line).group(1)
+                    apk['maxsdkversion'] = re.match(sdkversion_pat, line).group(1)
                 elif line.startswith("native-code:"):
                 elif line.startswith("native-code:"):
-                    thisinfo['nativecode'] = []
+                    apk['nativecode'] = []
                     for arch in line[13:].split(' '):
                     for arch in line[13:].split(' '):
-                        thisinfo['nativecode'].append(arch[1:-1])
+                        apk['nativecode'].append(arch[1:-1])
                 elif line.startswith("uses-permission:"):
                     perm = re.match(string_pat, line).group(1)
                     if perm.startswith("android.permission."):
                         perm = perm[19:]
                 elif line.startswith("uses-permission:"):
                     perm = re.match(string_pat, line).group(1)
                     if perm.startswith("android.permission."):
                         perm = perm[19:]
-                    thisinfo['permissions'].add(perm)
+                    apk['permissions'].add(perm)
                 elif line.startswith("uses-feature:"):
                     perm = re.match(string_pat, line).group(1)
                     # Filter out this, it's only added with the latest SDK tools and
                 elif line.startswith("uses-feature:"):
                     perm = re.match(string_pat, line).group(1)
                     # Filter out this, it's only added with the latest SDK tools and
@@ -540,11 +540,11 @@ def scan_apks(apps, apkcache, repodir, knownapks):
                             and perm != "android.hardware.screen.landscape":
                         if perm.startswith("android.feature."):
                             perm = perm[16:]
                             and perm != "android.hardware.screen.landscape":
                         if perm.startswith("android.feature."):
                             perm = perm[16:]
-                        thisinfo['features'].add(perm)
+                        apk['features'].add(perm)
 
 
-            if 'sdkversion' not in thisinfo:
+            if 'sdkversion' not in apk:
                 logging.warn("No SDK version information found in {0}".format(apkfile))
                 logging.warn("No SDK version information found in {0}".format(apkfile))
-                thisinfo['sdkversion'] = 0
+                apk['sdkversion'] = 0
 
             # Check for debuggable apks...
             if common.isApkDebuggable(apkfile, config):
 
             # Check for debuggable apks...
             if common.isApkDebuggable(apkfile, config):
@@ -552,20 +552,20 @@ def scan_apks(apps, apkcache, repodir, knownapks):
 
             # Get the signature (or md5 of, to be precise)...
             logging.debug('Getting signature of {0}'.format(apkfile))
 
             # Get the signature (or md5 of, to be precise)...
             logging.debug('Getting signature of {0}'.format(apkfile))
-            thisinfo['sig'] = getsig(os.path.join(os.getcwd(), apkfile))
-            if not thisinfo['sig']:
+            apk['sig'] = getsig(os.path.join(os.getcwd(), apkfile))
+            if not apk['sig']:
                 logging.critical("Failed to get apk signature")
                 sys.exit(1)
 
                 logging.critical("Failed to get apk signature")
                 sys.exit(1)
 
-            apk = zipfile.ZipFile(apkfile, 'r')
+            apkzip = zipfile.ZipFile(apkfile, 'r')
 
             # if an APK has files newer than the system time, suggest updating
             # the system clock.  This is useful for offline systems, used for
             # signing, which do not have another source of clock sync info. It
             # has to be more than 24 hours newer because ZIP/APK files do not
             # store timezone info
 
             # if an APK has files newer than the system time, suggest updating
             # the system clock.  This is useful for offline systems, used for
             # signing, which do not have another source of clock sync info. It
             # has to be more than 24 hours newer because ZIP/APK files do not
             # store timezone info
-            info = apk.getinfo('AndroidManifest.xml')
-            dt_obj = datetime(*info.date_time)
+            manifest = apkzip.getinfo('AndroidManifest.xml')
+            dt_obj = datetime(*manifest.date_time)
             checkdt = dt_obj - timedelta(1)
             if datetime.today() < checkdt:
                 logging.warn('System clock is older than manifest in: '
             checkdt = dt_obj - timedelta(1)
             if datetime.today() < checkdt:
                 logging.warn('System clock is older than manifest in: '
@@ -573,44 +573,44 @@ def scan_apks(apps, apkcache, repodir, knownapks):
                              + 'sudo date -s "' + str(dt_obj) + '"')
 
             iconfilename = "%s.%s.png" % (
                              + 'sudo date -s "' + str(dt_obj) + '"')
 
             iconfilename = "%s.%s.png" % (
-                thisinfo['id'],
-                thisinfo['versioncode'])
+                apk['id'],
+                apk['versioncode'])
 
             # Extract the icon file...
             empty_densities = []
             for density in screen_densities:
 
             # Extract the icon file...
             empty_densities = []
             for density in screen_densities:
-                if density not in thisinfo['icons_src']:
+                if density not in apk['icons_src']:
                     empty_densities.append(density)
                     continue
                     empty_densities.append(density)
                     continue
-                iconsrc = thisinfo['icons_src'][density]
+                iconsrc = apk['icons_src'][density]
                 icon_dir = get_icon_dir(repodir, density)
                 icondest = os.path.join(icon_dir, iconfilename)
 
                 try:
                     with open(icondest, 'wb') as f:
                 icon_dir = get_icon_dir(repodir, density)
                 icondest = os.path.join(icon_dir, iconfilename)
 
                 try:
                     with open(icondest, 'wb') as f:
-                        f.write(apk.read(iconsrc))
-                    thisinfo['icons'][density] = iconfilename
+                        f.write(apkzip.read(iconsrc))
+                    apk['icons'][density] = iconfilename
 
                 except:
                     logging.warn("Error retrieving icon file")
 
                 except:
                     logging.warn("Error retrieving icon file")
-                    del thisinfo['icons'][density]
-                    del thisinfo['icons_src'][density]
+                    del apk['icons'][density]
+                    del apk['icons_src'][density]
                     empty_densities.append(density)
 
                     empty_densities.append(density)
 
-            if '-1' in thisinfo['icons_src']:
-                iconsrc = thisinfo['icons_src']['-1']
+            if '-1' in apk['icons_src']:
+                iconsrc = apk['icons_src']['-1']
                 iconpath = os.path.join(
                     get_icon_dir(repodir, '0'), iconfilename)
                 with open(iconpath, 'wb') as f:
                 iconpath = os.path.join(
                     get_icon_dir(repodir, '0'), iconfilename)
                 with open(iconpath, 'wb') as f:
-                    f.write(apk.read(iconsrc))
+                    f.write(apkzip.read(iconsrc))
                 try:
                     im = Image.open(iconpath)
                     dpi = px_to_dpi(im.size[0])
                     for density in screen_densities:
                 try:
                     im = Image.open(iconpath)
                     dpi = px_to_dpi(im.size[0])
                     for density in screen_densities:
-                        if density in thisinfo['icons']:
+                        if density in apk['icons']:
                             break
                         if density == screen_densities[-1] or dpi >= int(density):
                             break
                         if density == screen_densities[-1] or dpi >= int(density):
-                            thisinfo['icons'][density] = iconfilename
+                            apk['icons'][density] = iconfilename
                             shutil.move(iconpath,
                                         os.path.join(get_icon_dir(repodir, density), iconfilename))
                             empty_densities.remove(density)
                             shutil.move(iconpath,
                                         os.path.join(get_icon_dir(repodir, density), iconfilename))
                             empty_densities.remove(density)
@@ -618,10 +618,10 @@ def scan_apks(apps, apkcache, repodir, knownapks):
                 except Exception, e:
                     logging.warn("Failed reading {0} - {1}".format(iconpath, e))
 
                 except Exception, e:
                     logging.warn("Failed reading {0} - {1}".format(iconpath, e))
 
-            if thisinfo['icons']:
-                thisinfo['icon'] = iconfilename
+            if apk['icons']:
+                apk['icon'] = iconfilename
 
 
-            apk.close()
+            apkzip.close()
 
             # First try resizing down to not lose quality
             last_density = None
 
             # First try resizing down to not lose quality
             last_density = None
@@ -675,19 +675,19 @@ def scan_apks(apps, apkcache, repodir, knownapks):
             # Copy from icons-mdpi to icons since mdpi is the baseline density
             baseline = os.path.join(get_icon_dir(repodir, '160'), iconfilename)
             if os.path.isfile(baseline):
             # Copy from icons-mdpi to icons since mdpi is the baseline density
             baseline = os.path.join(get_icon_dir(repodir, '160'), iconfilename)
             if os.path.isfile(baseline):
-                thisinfo['icons']['0'] = iconfilename
+                apk['icons']['0'] = iconfilename
                 shutil.copyfile(baseline,
                                 os.path.join(get_icon_dir(repodir, '0'), iconfilename))
 
             # Record in known apks, getting the added date at the same time..
                 shutil.copyfile(baseline,
                                 os.path.join(get_icon_dir(repodir, '0'), iconfilename))
 
             # Record in known apks, getting the added date at the same time..
-            added = knownapks.recordapk(thisinfo['apkname'], thisinfo['id'])
+            added = knownapks.recordapk(apk['apkname'], apk['id'])
             if added:
             if added:
-                thisinfo['added'] = added
+                apk['added'] = added
 
 
-            apkcache[apkfilename] = thisinfo
+            apkcache[apkfilename] = apk
             cachechanged = True
 
             cachechanged = True
 
-        apks.append(thisinfo)
+        apks.append(apk)
 
     return apks, cachechanged
 
 
     return apks, cachechanged
 
index d2aec276894902dab651210fdb08d7a3226828e0..d34569995509c1024dbfd269a9e3178dbc3dd50b 100755 (executable)
@@ -114,20 +114,19 @@ class CommonTest(unittest.TestCase):
 
         config = dict()
         config['sdk_path'] = os.getenv('ANDROID_HOME')
 
         config = dict()
         config['sdk_path'] = os.getenv('ANDROID_HOME')
+        config['ndk_paths'] = {'r10d': os.getenv('ANDROID_NDK_HOME')}
         config['build_tools'] = 'FAKE_BUILD_TOOLS_VERSION'
         fdroidserver.common.config = config
         app = fdroidserver.metadata.App()
         app.id = 'org.fdroid.froid'
         config['build_tools'] = 'FAKE_BUILD_TOOLS_VERSION'
         fdroidserver.common.config = config
         app = fdroidserver.metadata.App()
         app.id = 'org.fdroid.froid'
-        build = dict(fdroidserver.metadata.flag_defaults)
-        build['commit'] = 'master'
-        build['forceversion'] = True
-        build['forcevercode'] = True
-        build['gradle'] = ['yes']
-        build['ndk_path'] = os.getenv('ANDROID_NDK_HOME')
-        build['target'] = 'android-' + str(testint)
-        build['type'] = 'gradle'
-        build['version'] = teststr
-        build['vercode'] = testint
+        build = fdroidserver.metadata.Build()
+        build.commit = 'master'
+        build.forceversion = True
+        build.forcevercode = True
+        build.gradle = ['yes']
+        build.target = 'android-' + str(testint)
+        build.version = teststr
+        build.vercode = testint
 
         class FakeVcs():
             # no need to change to the correct commit here
 
         class FakeVcs():
             # no need to change to the correct commit here
@@ -147,8 +146,8 @@ class CommonTest(unittest.TestCase):
         with open(os.path.join(testdir, 'AndroidManifest.xml')) as f:
             filedata = f.read()
         self.assertIsNone(re.search('android:debuggable', filedata))
         with open(os.path.join(testdir, 'AndroidManifest.xml')) as f:
             filedata = f.read()
         self.assertIsNone(re.search('android:debuggable', filedata))
-        self.assertIsNotNone(re.search('android:versionName="%s"' % build['version'], filedata))
-        self.assertIsNotNone(re.search('android:versionCode="%s"' % build['vercode'], filedata))
+        self.assertIsNotNone(re.search('android:versionName="%s"' % build.version, filedata))
+        self.assertIsNotNone(re.search('android:versionCode="%s"' % build.vercode, filedata))
 
 
 if __name__ == "__main__":
 
 
 if __name__ == "__main__":
index 1dc77cc49ff4c778aa6b1f163e97709cb0b091ef..a0ba77413f6a1968210d1c027907b85dba92ae19 100755 (executable)
@@ -46,8 +46,9 @@ class MetadataTest(unittest.TestCase):
                 frompickle = pickle.load(f)
             frommeta = app.field_dict()
             self.assertEquals(frommeta, frompickle)
                 frompickle = pickle.load(f)
             frommeta = app.field_dict()
             self.assertEquals(frommeta, frompickle)
+            # Uncomment to overwrite
             # with open(savepath, 'wb') as f:
             # with open(savepath, 'wb') as f:
-            #     pickle.dump(app, f)
+            #     pickle.dump(frommeta, f)
 
 
 if __name__ == "__main__":
 
 
 if __name__ == "__main__":
index 5bc7edd3165474409c2f433c5c0f932a9a9c7a8d..8629e83b5276da9ea38161daf4438b507b683b64 100644 (file)
@@ -10,87 +10,87 @@ S'Tracking'
 p5
 aS'NonFreeNet'
 p6
 p5
 aS'NonFreeNet'
 p6
-asS'Web Site'
+asS'Litecoin'
 p7
 p7
-S'http://osmand.net'
+NsS'comments'
 p8
 p8
-sS'Auto Update Mode'
-p9
-S'None'
-p10
+(dp9
 sS'Provides'
 sS'Provides'
-p11
+p10
 NsS'Issue Tracker'
 NsS'Issue Tracker'
-p12
+p11
 S'https://github.com/osmandapp/Osmand/issues'
 S'https://github.com/osmandapp/Osmand/issues'
-p13
+p12
 sS'Donate'
 sS'Donate'
-p14
+p13
 S'https://code.google.com/p/osmand/#Please_support_the_project'
 S'https://code.google.com/p/osmand/#Please_support_the_project'
+p14
+sS'Archive Policy'
 p15
 p15
-sS'id'
+NsS'Description'
 p16
 p16
-S'net.osmand.plus'
-p17
-sS'Description'
-p18
-(lp19
+(lp17
 S"Osmand~'s features can be extended by enabling the plugins via the settings,"
 S"Osmand~'s features can be extended by enabling the plugins via the settings,"
-p20
+p18
 aS'which include online maps from many sources, tracking, OpenStreetMap (OSM) editing and'
 aS'which include online maps from many sources, tracking, OpenStreetMap (OSM) editing and'
-p21
+p19
 aS'accessibility enhancements.'
 aS'accessibility enhancements.'
-p22
+p20
 aS''
 aS''
-p23
+p21
 aS'Map data of both vector and raster types can be stored on the phone memory'
 aS'Map data of both vector and raster types can be stored on the phone memory'
-p24
+p22
 aS'card for offline usage, and navigation by default uses offline methods. Map'
 aS'card for offline usage, and navigation by default uses offline methods. Map'
-p25
+p23
 aS'data packages for many territories can be downloaded from within the app and'
 aS'data packages for many territories can be downloaded from within the app and'
-p26
+p24
 aS'there is a desktop program available on the website as well for creating your'
 aS'there is a desktop program available on the website as well for creating your'
-p27
+p25
 aS'own.'
 aS'own.'
-p28
-ag23
+p26
+ag21
 aS'Anti-Features: Tracking - It will send your device and application specs to an'
 aS'Anti-Features: Tracking - It will send your device and application specs to an'
-p29
+p27
 aS'Analytics server upon downloading the list of maps you can download.'
 aS'Analytics server upon downloading the list of maps you can download.'
-p30
-ag23
+p28
+ag21
 aS'[https://osmandapp.github.io/changes.html Changelog]'
 aS'[https://osmandapp.github.io/changes.html Changelog]'
-p31
+p29
 asS'Requires Root'
 asS'Requires Root'
-p32
+p30
 I00
 I00
-sS'comments'
+sS'lastupdated'
+p31
+NsS'id'
+p32
+S'net.osmand.plus'
 p33
 p33
-(dp34
-sS'Repo Type'
+sS'Repo'
+p34
+S'https://github.com/mvdan/OsmAnd-submodules'
 p35
 p35
-S'git'
+sS'No Source Since'
 p36
 p36
-sS'Repo'
+g21
+sS'Repo Type'
 p37
 p37
-S'https://github.com/mvdan/OsmAnd-submodules'
+S'git'
 p38
 p38
-sS'No Source Since'
-p39
-g23
 sS'Auto Name'
 sS'Auto Name'
-p40
-g23
+p39
+g21
 sS'Categories'
 sS'Categories'
-p41
-(lp42
-S'Navigation'
+p40
+(lp41
+S'None'
+p42
+aS'Navigation'
 p43
 asS'Source Code'
 p44
 S'https://github.com/osmandapp/Osmand'
 p45
 p43
 asS'Source Code'
 p44
 S'https://github.com/osmandapp/Osmand'
 p45
-sS'Litecoin'
+sS'added'
 p46
 NsS'Update Check Ignore'
 p47
 p46
 NsS'Update Check Ignore'
 p47
@@ -104,7 +104,7 @@ S'GPLv3'
 p51
 sS'Changelog'
 p52
 p51
 sS'Changelog'
 p52
-g23
+g21
 sS'Update Check Mode'
 p53
 S'None'
 sS'Update Check Mode'
 p53
 S'None'
@@ -113,394 +113,344 @@ sS'Summary'
 p55
 S'Offline/online maps and navigation'
 p56
 p55
 S'Offline/online maps and navigation'
 p56
-sS'Maintainer Notes'
+sS'Current Version'
 p57
 p57
-(lp58
-S'No UCMs apply because git never contains actual releases, only pre-releses.'
+S'1.9.5'
+p58
+sS'Maintainer Notes'
 p59
 p59
-ag23
-aS'The build instructions have been moved to a script in the root of the repo,'
-p60
-aS"'build'. This way it can be updated along with the submodules."
+(lp60
+S'No UCMs apply because git never contains actual releases, only pre-releses.'
 p61
 p61
-asS'Current Version Code'
+ag21
+aS'The build instructions have been moved to a script in the root of the repo,'
 p62
 p62
-S'197'
+aS"'build'. This way it can be updated along with the submodules."
 p63
 p63
-sS'Binaries'
+asS'Current Version Code'
 p64
 p64
-NsS'Archive Policy'
+S'197'
 p65
 p65
-NsS'builds'
+sS'Binaries'
 p66
 p66
-(lp67
-(dp68
+NsS'builds'
+p67
+(lp68
+(dp69
 S'submodules'
 S'submodules'
-p69
-I01
-sS'vercode'
 p70
 p70
-S'182'
+S'true'
 p71
 p71
-sS'forceversion'
+sS'kivy'
 p72
 I00
 p72
 I00
-sS'oldsdkloc'
+sS'forceversion'
 p73
 I00
 p73
 I00
-sS'gradleprops'
+sS'oldsdkloc'
 p74
 p74
-(lp75
-sS'scanignore'
+I00
+sS'antcommands'
+p75
+NsS'scanignore'
 p76
 (lp77
 p76
 (lp77
-sS'patch'
+sS'gradle'
 p78
 p78
-(lp79
+I00
 sS'srclibs'
 sS'srclibs'
-p80
-(lp81
-sS'output'
-p82
-S'bin/OsmAnd-release-unsigned.apk'
-p83
+p79
+(lp80
 sS'encoding'
 sS'encoding'
-p84
+p81
 NsS'extlibs'
 NsS'extlibs'
-p85
-(lp86
+p82
+(lp83
 sS'init'
 sS'init'
-p87
-g23
+p84
+g21
 sS'version'
 sS'version'
-p88
+p85
 S'1.8.2'
 S'1.8.2'
+p86
+sS'subdir'
+p87
+S'android/OsmAnd'
+p88
+sS'rm'
 p89
 p89
+(lp90
 sS'build'
 sS'build'
-p90
-S'./old-ndk-build.sh && ant -Dsdk.dir="$ANDROID_SDK" -Dndk.dir="$ANDROID_NDK" -DBLACKBERRY_BUILD=false -DBUILD_SUFFIX= -DAPK_NUMBER_VERSION=182 "-DFEATURES=+play_market +gps_status -parking_plugin -blackberry -amazon -route_nav" -DCLEAN_CPP=false -DPACKAGE_TO_BUILT=net.osmand.plus -DAPK_VERSION=1.8.2 -Dnet.osmand.plus= -Dbuild.version=1.8.2 -Dbuild.version.code=182 -Dnativeoff=false "-DversionFeatures=+play_market +gps_status -parking_plugin -blackberry -amazon -route_nav" clean release'
 p91
 p91
-sS'rm'
+S'./old-ndk-build.sh && ant -Dsdk.dir="$ANDROID_SDK" -Dndk.dir="$ANDROID_NDK" -DBLACKBERRY_BUILD=false -DBUILD_SUFFIX= -DAPK_NUMBER_VERSION=182 "-DFEATURES=+play_market +gps_status -parking_plugin -blackberry -amazon -route_nav" -DCLEAN_CPP=false -DPACKAGE_TO_BUILT=net.osmand.plus -DAPK_VERSION=1.8.2 -Dnet.osmand.plus= -Dbuild.version=1.8.2 -Dbuild.version.code=182 -Dnativeoff=false "-DversionFeatures=+play_market +gps_status -parking_plugin -blackberry -amazon -route_nav" clean release'
 p92
 p92
-(lp93
-sS'kivy'
+sS'vercode'
+p93
+S'182'
 p94
 p94
-I00
-sS'subdir'
-p95
-S'android/OsmAnd'
-p96
 sS'forcevercode'
 sS'forcevercode'
-p97
+p95
 I00
 sS'preassemble'
 I00
 sS'preassemble'
-p98
-(lp99
+p96
+(lp97
 sS'update'
 sS'update'
-p100
-(lp101
-S'auto'
-p102
-asS'maven'
-p103
+p98
+NsS'maven'
+p99
 I00
 sS'disable'
 I00
 sS'disable'
-p104
+p100
 I00
 I00
-sS'ndk_path'
-p105
-g23
+sS'commit'
+p101
+S'76ada6c8a08afe69acb755503373ac36328ef665'
+p102
 sS'scandelete'
 sS'scandelete'
-p106
-(lp107
+p103
+(lp104
 sS'buildjni'
 sS'buildjni'
-p108
-(lp109
+p105
 S'no'
 S'no'
-p110
-asS'ndk'
+p106
+sS'ndk'
+p107
+NsS'target'
+p108
+NsS'gradleprops'
+p109
+(lp110
+sS'patch'
 p111
 p111
-S'r10e'
-p112
-sS'target'
+(lp112
+sS'prebuild'
 p113
 p113
-NsS'type'
+S'sed -i \'s/"OsmAnd+"/"OsmAnd~"/g\' build.xml'
 p114
 p114
-S'raw'
+sS'novcheck'
 p115
 p115
-sS'antcommands'
+I00
+sS'output'
 p116
 p116
-NsS'gradle'
+S'bin/OsmAnd-release-unsigned.apk'
 p117
 p117
-I00
-sS'prebuild'
-p118
-S'sed -i \'s/"OsmAnd+"/"OsmAnd~"/g\' build.xml'
-p119
-sS'novcheck'
-p120
-I00
-sS'commit'
-p121
-S'76ada6c8a08afe69acb755503373ac36328ef665'
-p122
-sa(dp123
-S'submodules'
-p124
-I01
-sg70
-S'183'
-p125
+sa(dp118
+g70
+g71
 sg72
 I00
 sg73
 I00
 sg74
 sg72
 I00
 sg73
 I00
 sg74
-(lp126
-sg76
-g77
+I00
+sg75
+Nsg76
+(lp119
 sg78
 sg78
-g79
-sg80
-g81
-sS'output'
-p127
-S'bin/OsmAnd-release-unsigned.apk'
-p128
+I00
+sg79
+(lp120
+sg81
+Nsg82
+(lp121
 sg84
 sg84
-Nsg85
-g86
-sg87
-g23
-sg88
+g21
+sg85
 S'1.8.3'
 S'1.8.3'
-p129
-sS'subdir'
-p130
+p122
+sg87
 S'android/OsmAnd'
 S'android/OsmAnd'
-p131
-sg92
-g93
-sg94
-I00
-sS'build'
-p132
+p123
+sg89
+(lp124
+sg91
 S'../../build'
 S'../../build'
-p133
-sg97
+p125
+sg93
+S'183'
+p126
+sg95
 I00
 I00
+sg96
+(lp127
 sg98
 sg98
-g99
-sg100
-g101
-sg103
+Nsg99
 I00
 I00
-sg104
+sg100
 I00
 I00
+sg101
+S'1.8.3'
+p128
+sg103
+(lp129
 sg105
 sg105
-g23
-sg106
-g107
-sS'buildjni'
-p134
-(lp135
 S'no'
 S'no'
-p136
-asg111
-g112
+p130
+sg107
+Nsg108
+Nsg109
+(lp131
+sg111
+(lp132
 sg113
 sg113
-Nsg114
-g115
-sg116
-Nsg117
+g21
+sg115
 I00
 I00
-sS'prebuild'
-p137
-g23
-sg120
-I00
-sS'commit'
-p138
-S'1.8.3'
-p139
-sa(dp140
-S'submodules'
-p141
-I01
-sg70
-S'196'
-p142
+sg116
+S'bin/OsmAnd-release-unsigned.apk'
+p133
+sa(dp134
+g70
+g71
 sg72
 I00
 sg73
 I00
 sg74
 sg72
 I00
 sg73
 I00
 sg74
-(lp143
-sg76
-g77
+I00
+sg75
+Nsg76
+(lp135
 sg78
 sg78
-g79
-sg80
-g81
-sS'output'
-p144
-S'bin/OsmAnd-release-unsigned.apk'
-p145
+I00
+sg79
+(lp136
+sg81
+Nsg82
+(lp137
 sg84
 sg84
-Nsg85
-g86
-sg87
-g23
-sg88
+g21
+sg85
 S'1.9.4'
 S'1.9.4'
-p146
-sS'subdir'
-p147
+p138
+sg87
 S'android/OsmAnd'
 S'android/OsmAnd'
-p148
-sg92
-g93
-sg94
-I00
-sS'build'
-p149
+p139
+sg89
+(lp140
+sg91
 S'../../build'
 S'../../build'
-p150
-sg97
+p141
+sg93
+S'196'
+p142
+sg95
 I00
 I00
+sg96
+(lp143
 sg98
 sg98
-g99
-sg100
-g101
-sg103
+Nsg99
 I00
 I00
-sg104
+sg100
 I00
 I00
+sg101
+S'1.9.4'
+p144
+sg103
+(lp145
 sg105
 sg105
-g23
-sg106
-g107
-sS'buildjni'
-p151
-(lp152
 S'no'
 S'no'
-p153
-asS'ndk'
-p154
+p146
+sg107
 S'r10d'
 S'r10d'
-p155
+p147
+sg108
+Nsg109
+(lp148
+sg111
+(lp149
 sg113
 sg113
-Nsg114
-g115
-sg116
-Nsg117
+g21
+sg115
 I00
 I00
-sg137
-g23
-sg120
-I00
-sS'commit'
-p156
-S'1.9.4'
-p157
-sa(dp158
-S'submodules'
-p159
-I01
-sg70
-S'197'
-p160
+sg116
+S'bin/OsmAnd-release-unsigned.apk'
+p150
+sa(dp151
+g70
+g71
 sg72
 I00
 sg73
 I00
 sg74
 sg72
 I00
 sg73
 I00
 sg74
-(lp161
-sg76
-g77
+I00
+sg75
+Nsg76
+(lp152
 sg78
 sg78
-g79
-sg80
-g81
-sS'output'
-p162
-S'bin/OsmAnd-release-unsigned.apk'
-p163
+I00
+sg79
+(lp153
+sg81
+Nsg82
+(lp154
 sg84
 sg84
-Nsg85
-g86
-sg87
-g23
-sg88
+g21
+sg85
 S'1.9.5'
 S'1.9.5'
-p164
-sS'subdir'
-p165
+p155
+sg87
 S'android/OsmAnd'
 S'android/OsmAnd'
-p166
-sg92
-g93
-sg94
-I00
-sS'build'
-p167
+p156
+sg89
+(lp157
+sg91
 S'../../build'
 S'../../build'
-p168
-sg97
+p158
+sg93
+S'197'
+p159
+sg95
 I00
 I00
+sg96
+(lp160
 sg98
 sg98
-g99
-sg100
-g101
-sg103
+Nsg99
 I00
 I00
-sg104
+sg100
 I00
 I00
+sg101
+S'1.9.5'
+p161
+sg103
+(lp162
 sg105
 sg105
-g23
-sg106
-g107
-sS'buildjni'
-p169
-(lp170
 S'no'
 S'no'
-p171
-asS'ndk'
-p172
+p163
+sg107
 S'r10d'
 S'r10d'
-p173
+p164
+sg108
+Nsg109
+(lp165
+sg111
+(lp166
 sg113
 sg113
-Nsg114
-g115
-sg116
-Nsg117
-I00
-sg137
-g23
-sg120
+g21
+sg115
 I00
 I00
-sS'commit'
-p174
-S'1.9.5'
-p175
+sg116
+S'bin/OsmAnd-release-unsigned.apk'
+p167
 sasS'FlattrID'
 sasS'FlattrID'
-p176
+p168
 NsS'metadatapath'
 NsS'metadatapath'
-p177
+p169
 S'metadata/net.osmand.plus.xml'
 S'metadata/net.osmand.plus.xml'
-p178
+p170
 sS'Disabled'
 sS'Disabled'
-p179
-NsS'added'
-p180
-NsS'lastupdated'
-p181
-NsS'Update Check Name'
-p182
+p171
+NsS'Web Site'
+p172
+S'http://osmand.net'
+p173
+sS'Update Check Name'
+p174
 NsS'Vercode Operation'
 NsS'Vercode Operation'
-p183
-NsS'Current Version'
-p184
-S'1.9.5'
-p185
-s.
+p175
+NsS'Auto Update Mode'
+p176
+S'None'
+p177
+s.
\ No newline at end of file
index 7ae60cd3c7b39b2a7f786df654f0bf7acb3f283b..9321ab5b121bc3587e7e3945997b5be2a4364ed9 100644 (file)
@@ -6,2292 +6,1959 @@ p2
 NsS'AntiFeatures'
 p3
 (lp4
 NsS'AntiFeatures'
 p3
 (lp4
-sS'Web Site'
+sS'Litecoin'
 p5
 p5
-S'http://sufficientlysecure.org/index.php/adaway'
+NsS'comments'
 p6
 p6
-sS'Auto Update Mode'
-p7
-S'Version v%v'
+(dp7
+S'build:42'
 p8
 p8
-sS'Provides'
-p9
-S'org.sufficientlysecure.adaway'
+(lp9
+S'#RootCommands srclib needs changing on fdroidserver'
 p10
 p10
-sS'Issue Tracker'
+asS'build:40'
 p11
 p11
-S'https://github.com/dschuermann/ad-away/issues'
-p12
-sS'Donate'
+(lp12
+S'#RootCommands srclib needs changing on fdroidserver'
 p13
 p13
-S'http://sufficientlysecure.org/index.php/adaway'
+assS'Provides'
 p14
 p14
-sS'Repo Type'
+S'org.sufficientlysecure.adaway'
 p15
 p15
-S'git'
+sS'Issue Tracker'
 p16
 p16
-sS'Description'
+S'https://github.com/dschuermann/ad-away/issues'
 p17
 p17
-(lp18
-S'An ad blocker that uses the hosts file. The hosts file'
+sS'Donate'
+p18
+S'http://sufficientlysecure.org/index.php/adaway'
 p19
 p19
-aS'contains a list of mappings between hostnames and IP addresses. When'
+sS'Archive Policy'
 p20
 p20
-aS'an app requests an ad, that request is directed to 127.0.0.1 which does'
+NsS'Description'
 p21
 p21
-aS'nothing. There are options to run a web server'
-p22
-aS'to respond to blocked hostnames and to direct requests to the IP'
+(lp22
+S'An ad blocker that uses the hosts file. The hosts file'
 p23
 p23
-aS'address of your choosing. You can download hosts files from the'
+aS'contains a list of mappings between hostnames and IP addresses. When'
 p24
 p24
-aS'app but it is possible to use your own and to add certain sites'
+aS'an app requests an ad, that request is directed to 127.0.0.1 which does'
 p25
 p25
-aS'to the white- and black-lists.'
+aS'nothing. There are options to run a web server'
 p26
 p26
-aS''
+aS'to respond to blocked hostnames and to direct requests to the IP'
 p27
 p27
-aS'[https://github.com/dschuermann/ad-away/raw/HEAD/CHANGELOG Changelog]'
+aS'address of your choosing. You can download hosts files from the'
 p28
 p28
-ag27
-aS'Requires root: Yes. The hosts files is located in /system which is normally'
+aS'app but it is possible to use your own and to add certain sites'
 p29
 p29
-aS'read-only.'
+aS'to the white- and black-lists.'
 p30
 p30
-asS'Requires Root'
+aS''
 p31
 p31
-I01
-sS'comments'
+aS'[https://github.com/dschuermann/ad-away/raw/HEAD/CHANGELOG Changelog]'
 p32
 p32
-(dp33
-S'build:42'
+ag31
+aS'Requires root: Yes. The hosts files is located in /system which is normally'
+p33
+aS'read-only.'
 p34
 p34
-(lp35
-S'#RootCommands srclib needs changing on fdroidserver'
+asS'Requires Root'
+p35
+I01
+sS'lastupdated'
 p36
 p36
-asS'build:40'
+NsS'id'
 p37
 p37
-(lp38
-S'#RootCommands srclib needs changing on fdroidserver'
+S'org.adaway'
+p38
+sS'Repo'
 p39
 p39
-assS'id'
+S'https://github.com/dschuermann/ad-away.git'
 p40
 p40
-S'org.adaway'
+sS'No Source Since'
 p41
 p41
-sS'Repo'
+g31
+sS'Repo Type'
 p42
 p42
-S'https://github.com/dschuermann/ad-away.git'
+S'git'
 p43
 p43
-sS'No Source Since'
-p44
-g27
 sS'Auto Name'
 sS'Auto Name'
-p45
+p44
 S'AdAway'
 S'AdAway'
-p46
+p45
 sS'Categories'
 sS'Categories'
-p47
-(lp48
+p46
+(lp47
 S'System'
 S'System'
-p49
+p48
 aS'Security'
 aS'Security'
-p50
+p49
 asS'Source Code'
 asS'Source Code'
-p51
+p50
 S'https://github.com/dschuermann/ad-away'
 S'https://github.com/dschuermann/ad-away'
+p51
+sS'added'
 p52
 p52
-sS'Litecoin'
-p53
 NsS'Update Check Ignore'
 NsS'Update Check Ignore'
-p54
+p53
 NsS'Name'
 NsS'Name'
-p55
+p54
 NsS'License'
 NsS'License'
-p56
+p55
 S'GPLv3'
 S'GPLv3'
-p57
+p56
 sS'Changelog'
 sS'Changelog'
-p58
-g27
+p57
+g31
 sS'Update Check Mode'
 sS'Update Check Mode'
-p59
+p58
 S'Tags'
 S'Tags'
-p60
+p59
 sS'Summary'
 sS'Summary'
-p61
+p60
 S'Block advertisements'
 S'Block advertisements'
-p62
+p61
 sS'Current Version'
 sS'Current Version'
-p63
+p62
 S'3.0'
 S'3.0'
-p64
+p63
 sS'Maintainer Notes'
 sS'Maintainer Notes'
-p65
-(lp66
+p64
+(lp65
 sS'Current Version Code'
 sS'Current Version Code'
-p67
+p66
 S'52'
 S'52'
-p68
+p67
 sS'Binaries'
 sS'Binaries'
-p69
-NsS'Archive Policy'
-p70
+p68
 NsS'builds'
 NsS'builds'
-p71
-(lp72
-(dp73
+p69
+(lp70
+(dp71
 S'submodules'
 S'submodules'
-p74
+p72
+I00
+sS'kivy'
+p73
 I00
 I00
-sS'vercode'
-p75
-S'13'
-p76
 sS'forceversion'
 sS'forceversion'
-p77
+p74
 I00
 sS'oldsdkloc'
 I00
 sS'oldsdkloc'
-p78
+p75
 I00
 sS'antcommands'
 I00
 sS'antcommands'
-p79
-NsS'kivy'
-p80
-I00
+p76
+NsS'scanignore'
+p77
+(lp78
 sS'gradle'
 sS'gradle'
-p81
+p79
 I00
 I00
-sS'scanignore'
-p82
-(lp83
 sS'srclibs'
 sS'srclibs'
-p84
-(lp85
+p80
+(lp81
 sS'encoding'
 sS'encoding'
-p86
+p82
 NsS'extlibs'
 NsS'extlibs'
-p87
-(lp88
+p83
+(lp84
 sS'init'
 sS'init'
-p89
-g27
+p85
+g31
 sS'version'
 sS'version'
-p90
+p86
 S'1.12'
 S'1.12'
-p91
+p87
 sS'subdir'
 sS'subdir'
-p92
+p88
 S'org_adaway/'
 S'org_adaway/'
-p93
+p89
 sS'rm'
 sS'rm'
+p90
+(lp91
+sS'build'
+p92
+g31
+sS'vercode'
+p93
+S'13'
 p94
 p94
-(lp95
-sS'type'
+sS'forcevercode'
+p95
+I00
+sS'preassemble'
 p96
 p96
-S'ant'
-p97
-sS'build'
+(lp97
+sS'update'
 p98
 p98
-g27
-sS'ndk_path'
+NsS'maven'
 p99
 p99
-g27
-sS'forcevercode'
+I00
+sS'disable'
 p100
 I00
 p100
 I00
-sS'preassemble'
+sS'commit'
 p101
 p101
-(lp102
-sS'update'
+S'ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9'
+p102
+sS'scandelete'
 p103
 (lp104
 p103
 (lp104
-S'auto'
+sS'buildjni'
 p105
 p105
-asS'maven'
+I01
+sS'ndk'
 p106
 p106
-I00
-sS'disable'
+NsS'target'
 p107
 p107
-I00
-sS'commit'
+NsS'gradleprops'
 p108
 p108
-S'ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9'
-p109
-sS'scandelete'
+(lp109
+sS'patch'
 p110
 (lp111
 p110
 (lp111
-sS'buildjni'
-p112
-(lp113
-S'yes'
-p114
-asS'ndk'
-p115
-S'r10e'
-p116
-sS'target'
-p117
-NsS'gradleprops'
-p118
-(lp119
-sS'patch'
-p120
-(lp121
 sS'prebuild'
 sS'prebuild'
-p122
-g27
+p112
+g31
 sS'novcheck'
 sS'novcheck'
-p123
+p113
 I00
 sS'output'
 I00
 sS'output'
-p124
-Nsa(dp125
-g74
+p114
+Nsa(dp115
+g72
 I00
 I00
-sg75
-S'16'
-p126
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp116
+sg79
 I00
 I00
+sg80
+(lp117
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp118
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.15'
 S'1.15'
-p127
-sS'subdir'
-p128
+p119
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p129
-sg94
-g95
+p120
+sg90
+(lp121
+sg92
+g31
+sg93
+S'16'
+p122
+sg95
+I00
 sg96
 sg96
-g97
+(lp123
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'4128e59da2eac5c2904c7c7568d298ca51e79540'
+p124
 sg103
 sg103
-g104
+(lp125
+sg105
+I01
 sg106
 sg106
-I00
-sg107
-I00
-sS'commit'
-p130
-S'4128e59da2eac5c2904c7c7568d298ca51e79540'
-p131
+Nsg107
+Nsg108
+(lp126
 sg110
 sg110
-g111
-sS'buildjni'
-p132
-(lp133
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'patch'
-p134
-(lp135
+(lp127
 S'defprop.patch'
 S'defprop.patch'
-p136
-asg122
-g27
-sg123
+p128
+asg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp137
-g74
+sg114
+Nsa(dp129
+g72
 I00
 I00
-sg75
-S'19'
-p138
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp130
+sg79
 I00
 I00
+sg80
+(lp131
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp132
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.18'
 S'1.18'
-p139
-sS'subdir'
-p140
+p133
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p141
-sg94
-g95
+p134
+sg90
+(lp135
+sg92
+g31
+sg93
+S'19'
+p136
+sg95
+I00
 sg96
 sg96
-g97
+(lp137
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'0b9985398b9eef7baf6aadd0dbb12002bc199d2e'
+p138
 sg103
 sg103
-g104
+(lp139
+sg105
+I01
 sg106
 sg106
-I00
-sg107
-I00
-sS'commit'
-p142
-S'0b9985398b9eef7baf6aadd0dbb12002bc199d2e'
-p143
+Nsg107
+Nsg108
+(lp140
 sg110
 sg110
-g111
-sS'buildjni'
-p144
-(lp145
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'patch'
-p146
-(lp147
+(lp141
 S'defprop.patch'
 S'defprop.patch'
-p148
-asg122
-g27
-sg123
+p142
+asg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp149
-g74
+sg114
+Nsa(dp143
+g72
 I00
 I00
-sg75
-S'20'
-p150
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp144
+sg79
 I00
 I00
+sg80
+(lp145
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp146
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.19'
 S'1.19'
-p151
-sS'subdir'
-p152
+p147
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p153
-sg94
-g95
+p148
+sg90
+(lp149
+sg92
+g31
+sg93
+S'20'
+p150
+sg95
+I00
 sg96
 sg96
-g97
+(lp151
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22'
+p152
 sg103
 sg103
-g104
+(lp153
+sg105
+I01
 sg106
 sg106
-I00
-sg107
-I00
-sS'commit'
-p154
-S'ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22'
-p155
+Nsg107
+Nsg108
+(lp154
 sg110
 sg110
-g111
-sS'buildjni'
-p156
-(lp157
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'patch'
-p158
-(lp159
+(lp155
 S'defprop.patch'
 S'defprop.patch'
-p160
-asg122
-g27
-sg123
+p156
+asg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp161
-g74
+sg114
+Nsa(dp157
+g72
 I00
 I00
-sg75
-S'21'
-p162
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp158
+sg79
 I00
 I00
+sg80
+(lp159
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp160
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.20'
 S'1.20'
-p163
-sS'subdir'
-p164
+p161
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p165
-sg94
-g95
+p162
+sg90
+(lp163
+sg92
+g31
+sg93
+S'21'
+p164
+sg95
+I00
 sg96
 sg96
-g97
+(lp165
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'695e3801e4081026c8f7213a2345fc451d5eb89c'
+p166
 sg103
 sg103
-g104
+(lp167
+sg105
+I01
 sg106
 sg106
-I00
-sg107
-I00
-sS'commit'
-p166
-S'695e3801e4081026c8f7213a2345fc451d5eb89c'
-p167
+Nsg107
+Nsg108
+(lp168
 sg110
 sg110
-g111
-sS'buildjni'
-p168
 (lp169
 (lp169
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'patch'
-p170
-(lp171
 S'defprop.patch'
 S'defprop.patch'
-p172
-asg122
-g27
-sg123
+p170
+asg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp173
-g74
+sg114
+Nsa(dp171
+g72
 I00
 I00
-sg75
-S'22'
-p174
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp172
+sg79
 I00
 I00
+sg80
+(lp173
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp174
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.21'
 p175
 S'1.21'
 p175
-sS'subdir'
-p176
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p177
-sg94
-g95
+p176
+sg90
+(lp177
+sg92
+g31
+sg93
+S'22'
+p178
+sg95
+I00
 sg96
 sg96
-g97
+(lp179
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
-sg103
-g104
-sg106
-I00
-sg107
-I00
-sS'commit'
-p178
 S'65138c11cc8b6affd28b68e125fbc1dff0886a4e'
 S'65138c11cc8b6affd28b68e125fbc1dff0886a4e'
-p179
-sg110
-g111
-sS'buildjni'
 p180
 p180
+sg103
 (lp181
 (lp181
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'patch'
-p182
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp182
+sg110
 (lp183
 S'defprop.patch'
 p184
 (lp183
 S'defprop.patch'
 p184
-asg122
-g27
-sg123
+asg112
+g31
+sg113
 I00
 I00
-sg124
+sg114
 Nsa(dp185
 Nsa(dp185
-g74
+g72
 I00
 I00
-sg75
-S'24'
-p186
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp186
+sg79
 I00
 I00
+sg80
+(lp187
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp188
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.23'
 S'1.23'
-p187
-sS'subdir'
-p188
-Nsg94
-g95
+p189
+sg88
+Nsg90
+(lp190
+sg92
+g31
+sg93
+S'24'
+p191
+sg95
+I00
 sg96
 sg96
-g97
+(lp192
 sg98
 sg98
-g27
-sg99
-g27
-sg100
+Nsg99
 I00
 I00
+sg100
+S'no source in repo'
+p193
 sg101
 sg101
-g102
+S'unknown - see disabled'
+p194
 sg103
 sg103
-g104
+(lp195
+sg105
+(lp196
 sg106
 sg106
-I00
-sS'disable'
-p189
-S'no source in repo'
-p190
-sS'commit'
-p191
-S'unknown - see disabled'
-p192
+Nsg107
+Nsg108
+(lp197
 sg110
 sg110
-g111
-sS'buildjni'
-p193
-(lp194
-sg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sg122
-g27
-sg123
-I00
-sg124
-Nsa(dp195
-g74
+(lp198
+sg112
+g31
+sg113
 I00
 I00
-sg75
-S'25'
-p196
-sg77
+sg114
+Nsa(dp199
+g72
 I00
 I00
-sg78
+sg73
 I00
 I00
-sg79
-Nsg80
+sg74
+I00
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp200
+sg79
 I00
 I00
+sg80
+(lp201
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp202
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.24'
 S'1.24'
-p197
-sS'subdir'
-p198
+p203
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p199
-sg94
-g95
+p204
+sg90
+(lp205
+sg92
+g31
+sg93
+S'25'
+p206
+sg95
+I00
 sg96
 sg96
-g97
+(lp207
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'f811e53e1e1d2ee047b18715fd7d2072b90ae76b'
+p208
 sg103
 sg103
-g104
+(lp209
+sg105
+I01
 sg106
 sg106
-I00
-sg107
-I00
-sS'commit'
-p200
-S'f811e53e1e1d2ee047b18715fd7d2072b90ae76b'
-p201
+Nsg107
+Nsg108
+(lp210
 sg110
 sg110
-g111
-sS'buildjni'
-p202
-(lp203
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p204
+(lp211
+sg112
 S'android update project -p ../com_actionbarsherlock'
 S'android update project -p ../com_actionbarsherlock'
-p205
-sg123
+p212
+sg113
 I00
 I00
-sg124
-Nsa(dp206
-g74
+sg114
+Nsa(dp213
+g72
 I00
 I00
-sg75
-S'26'
-p207
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp214
+sg79
 I00
 I00
+sg80
+(lp215
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp216
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.25'
 S'1.25'
-p208
-sS'subdir'
-p209
+p217
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p210
-sg94
-g95
+p218
+sg90
+(lp219
+sg92
+g31
+sg93
+S'26'
+p220
+sg95
+I00
 sg96
 sg96
-g97
+(lp221
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'ff97932761cdee68638dc2550751a64b2cbe18e7'
+p222
 sg103
 sg103
-g104
+(lp223
+sg105
+I01
 sg106
 sg106
-I00
-sg107
-I00
-sS'commit'
-p211
-S'ff97932761cdee68638dc2550751a64b2cbe18e7'
-p212
+Nsg107
+Nsg108
+(lp224
 sg110
 sg110
-g111
-sS'buildjni'
-p213
-(lp214
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p215
+(lp225
+sg112
 S'android update project -p ../com_actionbarsherlock'
 S'android update project -p ../com_actionbarsherlock'
-p216
-sg123
+p226
+sg113
 I00
 I00
-sg124
-Nsa(dp217
-g74
+sg114
+Nsa(dp227
+g72
 I00
 I00
-sg75
-S'27'
-p218
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp228
+sg79
 I00
 I00
+sg80
+(lp229
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp230
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.26'
 S'1.26'
-p219
-sS'subdir'
-p220
+p231
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p221
-sg94
-g95
+p232
+sg90
+(lp233
+sg92
+g31
+sg93
+S'27'
+p234
+sg95
+I00
 sg96
 sg96
-g97
+(lp235
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'33d4d80998f30bafc88c04c80cbae00b03916f99'
+p236
 sg103
 sg103
-g104
+(lp237
+sg105
+I01
 sg106
 sg106
-I00
-sg107
-I00
-sS'commit'
-p222
-S'33d4d80998f30bafc88c04c80cbae00b03916f99'
-p223
+Nsg107
+Nsg108
+(lp238
 sg110
 sg110
-g111
-sS'buildjni'
-p224
-(lp225
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p226
+(lp239
+sg112
 S'android update project -p ../com_actionbarsherlock'
 S'android update project -p ../com_actionbarsherlock'
-p227
-sg123
+p240
+sg113
 I00
 I00
-sg124
-Nsa(dp228
-g74
+sg114
+Nsa(dp241
+g72
 I00
 I00
-sg75
-S'28'
-p229
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp242
+sg79
 I00
 I00
+sg80
+(lp243
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp244
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.27'
 S'1.27'
-p230
-sS'subdir'
-p231
+p245
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p232
-sg94
-g95
+p246
+sg90
+(lp247
+sg92
+g31
+sg93
+S'28'
+p248
+sg95
+I00
 sg96
 sg96
-g97
+(lp249
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'743d25a7e287505461f33f4b8e57e4cf988fffea'
+p250
 sg103
 sg103
-g104
+(lp251
+sg105
+I01
 sg106
 sg106
-I00
-sg107
-I00
-sS'commit'
-p233
-S'743d25a7e287505461f33f4b8e57e4cf988fffea'
-p234
+Nsg107
+Nsg108
+(lp252
 sg110
 sg110
-g111
-sS'buildjni'
-p235
-(lp236
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p237
+(lp253
+sg112
 S'android update project -p ../com_actionbarsherlock'
 S'android update project -p ../com_actionbarsherlock'
-p238
-sg123
+p254
+sg113
 I00
 I00
-sg124
-Nsa(dp239
-g74
+sg114
+Nsa(dp255
+g72
 I00
 I00
-sg75
-S'30'
-p240
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp256
+sg79
 I00
 I00
+sg80
+(lp257
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp258
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.29'
 S'1.29'
-p241
-sS'subdir'
-p242
+p259
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p243
-sg94
-g95
+p260
+sg90
+(lp261
+sg92
+g31
+sg93
+S'30'
+p262
+sg95
+I00
 sg96
 sg96
-g97
+(lp263
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'eaa07f4'
+p264
 sg103
 sg103
-g104
+(lp265
+sg105
+I01
 sg106
 sg106
-I00
-sg107
-I00
-sS'commit'
-p244
-S'eaa07f4'
-p245
+Nsg107
+Nsg108
+(lp266
 sg110
 sg110
-g111
-sS'buildjni'
-p246
-(lp247
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p248
+(lp267
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/*'
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/*'
-p249
-sg123
+p268
+sg113
 I00
 I00
-sg124
-Nsa(dp250
-g74
+sg114
+Nsa(dp269
+g72
 I00
 I00
-sg75
-S'33'
-p251
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp270
+sg79
 I00
 I00
+sg80
+(lp271
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp272
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.32'
 S'1.32'
-p252
-sS'subdir'
-p253
+p273
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p254
-sg94
-g95
+p274
+sg90
+(lp275
+sg92
+g31
+sg93
+S'33'
+p276
+sg95
+I00
 sg96
 sg96
-g97
+(lp277
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'71ced3f'
+p278
 sg103
 sg103
-g104
-sg106
-I00
-sg107
+(lp279
+sg105
 I00
 I00
-sS'commit'
-p255
-S'71ced3f'
-p256
+sg106
+Nsg107
+Nsg108
+(lp280
 sg110
 sg110
-g111
-sS'buildjni'
-p257
-(lp258
-S'no'
-p259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p260
+(lp281
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && rm libs/android-support-v4.jar'
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && rm libs/android-support-v4.jar'
-p261
-sg123
+p282
+sg113
 I00
 I00
-sg124
-Nsa(dp262
-g74
+sg114
+Nsa(dp283
+g72
 I00
 I00
-sg75
-S'34'
-p263
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp284
+sg79
 I00
 I00
+sg80
+(lp285
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp286
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.33'
 S'1.33'
-p264
-sS'subdir'
-p265
+p287
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p266
-sg94
-g95
-sg96
-g97
-sg98
-g27
-sg99
-g27
-sg100
+p288
+sg90
+(lp289
+sg92
+g31
+sg93
+S'34'
+p290
+sg95
 I00
 I00
-sg101
-g102
-sg103
-g104
-sg106
+sg96
+(lp291
+sg98
+Nsg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p267
+sg101
 S'9d63c18'
 S'9d63c18'
-p268
+p292
+sg103
+(lp293
+sg105
+I00
+sg106
+Nsg107
+Nsg108
+(lp294
 sg110
 sg110
-g111
-sS'buildjni'
-p269
-(lp270
-g259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p271
+(lp295
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/*'
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/*'
-p272
-sg123
+p296
+sg113
 I00
 I00
-sg124
-Nsa(dp273
-g74
+sg114
+Nsa(dp297
+g72
 I00
 I00
-sg75
-S'35'
-p274
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp298
+sg79
 I00
 I00
+sg80
+(lp299
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp300
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.34'
 S'1.34'
-p275
-sS'subdir'
-p276
+p301
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p277
-sg94
-g95
+p302
+sg90
+(lp303
+sg92
+g31
+sg93
+S'35'
+p304
+sg95
+I00
 sg96
 sg96
-g97
+(lp305
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'f2568b1'
+p306
 sg103
 sg103
-g104
-sg106
+(lp307
+sg105
 I00
 I00
-sg107
-I00
-sS'commit'
-p278
-S'f2568b1'
-p279
+sg106
+Nsg107
+Nsg108
+(lp308
 sg110
 sg110
-g111
-sS'buildjni'
-p280
-(lp281
-g259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p282
+(lp309
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p283
-sg123
+p310
+sg113
 I00
 I00
-sg124
-Nsa(dp284
-g74
+sg114
+Nsa(dp311
+g72
 I00
 I00
-sg75
-S'36'
-p285
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp312
+sg79
 I00
 I00
+sg80
+(lp313
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp314
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.35'
 S'1.35'
-p286
-sS'subdir'
-p287
+p315
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p288
-sg94
-g95
+p316
+sg90
+(lp317
+sg92
+g31
+sg93
+S'36'
+p318
+sg95
+I00
 sg96
 sg96
-g97
+(lp319
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'7442d5d'
+p320
 sg103
 sg103
-g104
-sg106
+(lp321
+sg105
 I00
 I00
-sg107
-I00
-sS'commit'
-p289
-S'7442d5d'
-p290
+sg106
+Nsg107
+Nsg108
+(lp322
 sg110
 sg110
-g111
-sS'buildjni'
-p291
-(lp292
-g259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p293
+(lp323
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p294
-sg123
+p324
+sg113
 I00
 I00
-sg124
-Nsa(dp295
-g74
+sg114
+Nsa(dp325
+g72
 I00
 I00
-sg75
-S'37'
-p296
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp326
+sg79
 I00
 I00
+sg80
+(lp327
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp328
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.36'
 S'1.36'
-p297
-sS'subdir'
-p298
+p329
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p299
-sg94
-g95
+p330
+sg90
+(lp331
+sg92
+g31
+sg93
+S'37'
+p332
+sg95
+I00
 sg96
 sg96
-g97
+(lp333
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'83fc713'
+p334
 sg103
 sg103
-g104
-sg106
-I00
-sg107
+(lp335
+sg105
 I00
 I00
-sS'commit'
-p300
-S'83fc713'
-p301
+sg106
+Nsg107
+Nsg108
+(lp336
 sg110
 sg110
-g111
-sS'buildjni'
-p302
-(lp303
-g259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p304
+(lp337
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p305
-sg123
+p338
+sg113
 I00
 I00
-sg124
-Nsa(dp306
-g74
+sg114
+Nsa(dp339
+g72
 I00
 I00
-sg75
-S'38'
-p307
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp340
+sg79
 I00
 I00
+sg80
+(lp341
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp342
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.37'
 S'1.37'
-p308
-sS'subdir'
-p309
+p343
+sg88
 S'org_adaway/'
 S'org_adaway/'
-p310
-sg94
-g95
+p344
+sg90
+(lp345
+sg92
+g31
+sg93
+S'38'
+p346
+sg95
+I00
 sg96
 sg96
-g97
+(lp347
 sg98
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
 sg100
 I00
 sg101
-g102
+S'70da32b567122b701cdcb1609b780eb85732028f'
+p348
 sg103
 sg103
-g104
-sg106
-I00
-sg107
+(lp349
+sg105
 I00
 I00
-sS'commit'
-p311
-S'70da32b567122b701cdcb1609b780eb85732028f'
-p312
+sg106
+Nsg107
+Nsg108
+(lp350
 sg110
 sg110
-g111
-sS'buildjni'
-p313
-(lp314
-g259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p315
+(lp351
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p316
-sg123
+p352
+sg113
 I00
 I00
-sg124
-Nsa(dp317
-g74
+sg114
+Nsa(dp353
+g72
 I00
 I00
-sg75
-S'40'
-p318
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp354
+sg79
 I00
 I00
-sg82
-g83
-sS'srclibs'
-p319
-(lp320
+sg80
+(lp355
 S'RootCommands@c940b0e503'
 S'RootCommands@c940b0e503'
-p321
-asg86
-NsS'extlibs'
-p322
-(lp323
+p356
+asg82
+Nsg83
+(lp357
 S'htmlcleaner/htmlcleaner-2.2.jar'
 S'htmlcleaner/htmlcleaner-2.2.jar'
-p324
-asS'init'
-p325
+p358
+asg85
 S'rm android-libs/Donations/custom_rules.xml && git clone https://github.com/dschuermann/HtmlSpanner android-libs/HtmlSpanner'
 S'rm android-libs/Donations/custom_rules.xml && git clone https://github.com/dschuermann/HtmlSpanner android-libs/HtmlSpanner'
-p326
-sg90
+p359
+sg86
 S'2.1'
 S'2.1'
-p327
-sS'subdir'
-p328
+p360
+sg88
 S'AdAway'
 S'AdAway'
-p329
-sg94
-g95
+p361
+sg90
+(lp362
+sg92
+g31
+sg93
+S'40'
+p363
+sg95
+I00
 sg96
 sg96
-g97
+(lp364
 sg98
 sg98
-g27
-sg99
-g27
-sg100
-I00
-sg101
-g102
-sS'update'
-p330
-(lp331
+(lp365
 S'.'
 S'.'
-p332
+p366
 aS'android-libs/Donations'
 aS'android-libs/Donations'
-p333
+p367
 aS'android-libs/ActionBarSherlock'
 aS'android-libs/ActionBarSherlock'
-p334
+p368
 aS'android-libs/HtmlSpanner/htmlspanner'
 aS'android-libs/HtmlSpanner/htmlspanner'
-p335
-asg106
+p369
+asg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p336
+sg101
 S'v2.1'
 S'v2.1'
-p337
+p370
+sg103
+(lp371
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp372
 sg110
 sg110
-g111
-sS'buildjni'
-p338
-(lp339
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p340
+(lp373
+sg112
 S'rm -rf ../update_zip libs/root-commands-1.2.jar libs/htmlspanner-0.2-fork.jar && cp -f libs/htmlcleaner-2.2.jar android-libs/HtmlSpanner/htmlspanner/libs/ && echo "android.library.reference.3=$$RootCommands$$" >> project.properties && echo "android.library.reference.4=android-libs/HtmlSpanner/htmlspanner" >> project.properties && find . -type f -print0 | xargs -0 sed -i \'s/org.rootcommands/org.sufficientlysecure.rootcommands/g\' && cp android-libs/Donations/ant-templates/other/DonationsConfig.java android-libs/Donations/src/org/donations/'
 S'rm -rf ../update_zip libs/root-commands-1.2.jar libs/htmlspanner-0.2-fork.jar && cp -f libs/htmlcleaner-2.2.jar android-libs/HtmlSpanner/htmlspanner/libs/ && echo "android.library.reference.3=$$RootCommands$$" >> project.properties && echo "android.library.reference.4=android-libs/HtmlSpanner/htmlspanner" >> project.properties && find . -type f -print0 | xargs -0 sed -i \'s/org.rootcommands/org.sufficientlysecure.rootcommands/g\' && cp android-libs/Donations/ant-templates/other/DonationsConfig.java android-libs/Donations/src/org/donations/'
-p341
-sg123
+p374
+sg113
 I00
 I00
-sg124
-Nsa(dp342
-g74
+sg114
+Nsa(dp375
+g72
 I00
 I00
-sg75
-S'42'
-p343
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg81
+sg76
+Nsg77
+(lp376
+sg79
 I00
 I00
-sg82
-g83
-sS'srclibs'
-p344
-(lp345
+sg80
+(lp377
 S'RootCommands@c940b0e503'
 S'RootCommands@c940b0e503'
-p346
-asg86
-NsS'extlibs'
-p347
-(lp348
+p378
+asg82
+Nsg83
+(lp379
 S'htmlcleaner/htmlcleaner-2.2.jar'
 S'htmlcleaner/htmlcleaner-2.2.jar'
-p349
-asS'init'
-p350
+p380
+asg85
 S'rm android-libs/Donations/custom_rules.xml && git clone https://github.com/dschuermann/HtmlSpanner android-libs/HtmlSpanner'
 S'rm android-libs/Donations/custom_rules.xml && git clone https://github.com/dschuermann/HtmlSpanner android-libs/HtmlSpanner'
-p351
-sg90
+p381
+sg86
 S'2.3'
 S'2.3'
-p352
-sS'subdir'
-p353
+p382
+sg88
 S'AdAway'
 S'AdAway'
-p354
-sg94
-g95
+p383
+sg90
+(lp384
+sg92
+g31
+sg93
+S'42'
+p385
+sg95
+I00
 sg96
 sg96
-g97
+(lp386
 sg98
 sg98
-g27
-sg99
-g27
-sg100
-I00
-sg101
-g102
-sS'update'
-p355
-(lp356
-g332
+(lp387
+g366
 aS'android-libs/Donations'
 aS'android-libs/Donations'
-p357
+p388
 aS'android-libs/ActionBarSherlock'
 aS'android-libs/ActionBarSherlock'
-p358
+p389
 aS'android-libs/HtmlSpanner/htmlspanner'
 aS'android-libs/HtmlSpanner/htmlspanner'
-p359
-asg106
+p390
+asg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p360
+sg101
 S'v2.3'
 S'v2.3'
-p361
+p391
+sg103
+(lp392
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp393
 sg110
 sg110
-g111
-sS'buildjni'
-p362
-(lp363
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p364
+(lp394
+sg112
 S'rm -rf ../update_zip libs/root-commands-1.2.jar libs/htmlspanner-0.2-fork.jar && cp -f libs/htmlcleaner-2.2.jar android-libs/HtmlSpanner/htmlspanner/libs/ && echo "android.library.reference.3=$$RootCommands$$" >> project.properties && echo "android.library.reference.4=android-libs/HtmlSpanner/htmlspanner" >> project.properties && find . -type f -print0 | xargs -0 sed -i \'s/org.rootcommands/org.sufficientlysecure.rootcommands/g\' && cp android-libs/Donations/ant-templates/other/DonationsConfig.java android-libs/Donations/src/org/donations/'
 S'rm -rf ../update_zip libs/root-commands-1.2.jar libs/htmlspanner-0.2-fork.jar && cp -f libs/htmlcleaner-2.2.jar android-libs/HtmlSpanner/htmlspanner/libs/ && echo "android.library.reference.3=$$RootCommands$$" >> project.properties && echo "android.library.reference.4=android-libs/HtmlSpanner/htmlspanner" >> project.properties && find . -type f -print0 | xargs -0 sed -i \'s/org.rootcommands/org.sufficientlysecure.rootcommands/g\' && cp android-libs/Donations/ant-templates/other/DonationsConfig.java android-libs/Donations/src/org/donations/'
-p365
-sg123
+p395
+sg113
 I00
 I00
-sg124
-Nsa(dp366
-g74
+sg114
+Nsa(dp396
+g72
 I00
 I00
-sg75
-S'45'
-p367
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp397
+sg79
+I01
+sg80
+(lp398
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp399
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.6'
 S'2.6'
-p368
-sS'subdir'
-p369
+p400
+sg88
 S'AdAway'
 S'AdAway'
-p370
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p401
+sg90
+(lp402
+sg92
+g31
+sg93
+S'45'
+p403
+sg95
 I00
 I00
-sS'preassemble'
-p371
-(lp372
+sg96
+(lp404
 S'renameExecutables'
 S'renameExecutables'
-p373
-asg103
-g104
-sg106
+p405
+asg98
+Nsg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p374
+sg101
 S'v2.6'
 S'v2.6'
-p375
+p406
+sg103
+(lp407
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp408
 sg110
 sg110
-g111
-sS'buildjni'
-p376
-(lp377
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p378
-(lp379
-g114
-asg122
-g27
-sg123
+(lp409
+sg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp380
-g74
+sg114
+Nsa(dp410
+g72
 I00
 I00
-sg75
-S'46'
-p381
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp411
+sg79
+I01
+sg80
+(lp412
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp413
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.7'
 S'2.7'
-p382
-sS'subdir'
-p383
+p414
+sg88
 S'AdAway'
 S'AdAway'
-p384
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p415
+sg90
+(lp416
+sg92
+g31
+sg93
+S'46'
+p417
+sg95
 I00
 I00
-sS'preassemble'
-p385
-(lp386
+sg96
+(lp418
 S'renameExecutables'
 S'renameExecutables'
-p387
-asg103
-g104
-sg106
+p419
+asg98
+Nsg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p388
+sg101
 S'v2.7'
 S'v2.7'
-p389
+p420
+sg103
+(lp421
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp422
 sg110
 sg110
-g111
-sS'buildjni'
-p390
-(lp391
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p392
-(lp393
-g114
-asg122
-g27
-sg123
+(lp423
+sg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp394
-g74
+sg114
+Nsa(dp424
+g72
 I00
 I00
-sg75
-S'47'
-p395
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp425
+sg79
+I01
+sg80
+(lp426
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp427
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.8'
 S'2.8'
-p396
-sS'subdir'
-p397
+p428
+sg88
 S'AdAway'
 S'AdAway'
-p398
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p429
+sg90
+(lp430
+sg92
+g31
+sg93
+S'47'
+p431
+sg95
 I00
 I00
-sS'preassemble'
-p399
-(lp400
+sg96
+(lp432
 S'renameExecutables'
 S'renameExecutables'
-p401
-asg103
-g104
-sg106
+p433
+asg98
+Nsg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p402
+sg101
 S'v2.8'
 S'v2.8'
-p403
+p434
+sg103
+(lp435
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp436
 sg110
 sg110
-g111
-sS'buildjni'
-p404
-(lp405
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p406
-(lp407
-g114
-asg122
-g27
-sg123
+(lp437
+sg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp408
-g74
+sg114
+Nsa(dp438
+g72
 I00
 I00
-sg75
-S'48'
-p409
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp439
+sg79
+I01
+sg80
+(lp440
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp441
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.8.1'
 S'2.8.1'
-p410
-sS'subdir'
-p411
+p442
+sg88
 S'AdAway'
 S'AdAway'
-p412
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p443
+sg90
+(lp444
+sg92
+g31
+sg93
+S'48'
+p445
+sg95
 I00
 I00
-sS'preassemble'
-p413
-(lp414
+sg96
+(lp446
 S'renameExecutables'
 S'renameExecutables'
-p415
-asg103
-g104
-sg106
+p447
+asg98
+Nsg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p416
+sg101
 S'v2.8.1'
 S'v2.8.1'
-p417
+p448
+sg103
+(lp449
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp450
 sg110
 sg110
-g111
-sS'buildjni'
-p418
-(lp419
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p420
-(lp421
-g114
-asg122
-g27
-sg123
+(lp451
+sg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp422
-g74
+sg114
+Nsa(dp452
+g72
 I00
 I00
-sg75
-S'49'
-p423
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp453
+sg79
+I01
+sg80
+(lp454
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp455
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.9'
 S'2.9'
-p424
-sS'subdir'
-p425
+p456
+sg88
 S'AdAway'
 S'AdAway'
-p426
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p457
+sg90
+(lp458
+sg92
+g31
+sg93
+S'49'
+p459
+sg95
 I00
 I00
-sS'preassemble'
-p427
-(lp428
+sg96
+(lp460
 S'renameExecutables'
 S'renameExecutables'
-p429
-asg103
-g104
-sg106
+p461
+asg98
+Nsg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p430
+sg101
 S'v2.9'
 S'v2.9'
-p431
+p462
+sg103
+(lp463
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp464
 sg110
 sg110
-g111
-sS'buildjni'
-p432
-(lp433
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p434
-(lp435
-g114
-asg122
-g27
-sg123
+(lp465
+sg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp436
-g74
+sg114
+Nsa(dp466
+g72
 I00
 I00
-sg75
-S'50'
-p437
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp467
+sg79
+I01
+sg80
+(lp468
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp469
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.9.1'
 S'2.9.1'
-p438
-sS'subdir'
-p439
+p470
+sg88
 S'AdAway'
 S'AdAway'
-p440
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p471
+sg90
+(lp472
+sg92
+g31
+sg93
+S'50'
+p473
+sg95
 I00
 I00
-sS'preassemble'
-p441
-(lp442
+sg96
+(lp474
 S'renameExecutables'
 S'renameExecutables'
-p443
-asg103
-g104
-sg106
+p475
+asg98
+Nsg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p444
+sg101
 S'v2.9.1'
 S'v2.9.1'
-p445
+p476
+sg103
+(lp477
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp478
 sg110
 sg110
-g111
-sS'buildjni'
-p446
-(lp447
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p448
-(lp449
-g114
-asg122
-g27
-sg123
+(lp479
+sg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp450
-g74
+sg114
+Nsa(dp480
+g72
 I00
 I00
-sg75
-S'51'
-p451
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp481
+sg79
+I01
+sg80
+(lp482
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp483
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.9.2'
 S'2.9.2'
-p452
-sS'subdir'
-p453
+p484
+sg88
 S'AdAway'
 S'AdAway'
-p454
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p485
+sg90
+(lp486
+sg92
+g31
+sg93
+S'51'
+p487
+sg95
 I00
 I00
-sS'preassemble'
-p455
-(lp456
+sg96
+(lp488
 S'renameExecutables'
 S'renameExecutables'
-p457
-asg103
-g104
-sg106
+p489
+asg98
+Nsg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p458
+sg101
 S'v2.9.2'
 S'v2.9.2'
-p459
+p490
+sg103
+(lp491
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp492
 sg110
 sg110
-g111
-sS'buildjni'
-p460
-(lp461
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p462
-(lp463
-g114
-asg122
-g27
-sg123
+(lp493
+sg112
+g31
+sg113
 I00
 I00
-sg124
-Nsa(dp464
-g74
+sg114
+Nsa(dp494
+g72
 I00
 I00
-sg75
-S'52'
-p465
-sg77
+sg73
 I00
 I00
-sg78
+sg74
 I00
 I00
-sg79
-Nsg80
+sg75
 I00
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp495
+sg79
+I01
+sg80
+(lp496
 sg82
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp497
+sg85
+g31
 sg86
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'3.0'
 S'3.0'
-p466
-sS'subdir'
-p467
+p498
+sg88
 S'AdAway'
 S'AdAway'
-p468
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p499
+sg90
+(lp500
+sg92
+g31
+sg93
+S'52'
+p501
+sg95
 I00
 I00
-sS'preassemble'
-p469
-(lp470
+sg96
+(lp502
 S'renameExecutables'
 S'renameExecutables'
-p471
-asg103
-g104
-sg106
+p503
+asg98
+Nsg99
 I00
 I00
-sg107
+sg100
 I00
 I00
-sS'commit'
-p472
+sg101
 S'v3.0'
 S'v3.0'
-p473
+p504
+sg103
+(lp505
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp506
 sg110
 sg110
-g111
-sS'buildjni'
-p474
-(lp475
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p476
-(lp477
-g114
-asg122
-g27
-sg123
+(lp507
+sg112
+g31
+sg113
 I00
 I00
-sg124
+sg114
 NsasS'FlattrID'
 NsasS'FlattrID'
-p478
+p508
 S'369138'
 S'369138'
-p479
+p509
 sS'metadatapath'
 sS'metadatapath'
-p480
+p510
 S'metadata/org.adaway.json'
 S'metadata/org.adaway.json'
-p481
+p511
 sS'Disabled'
 sS'Disabled'
-p482
-NsS'Update Check Name'
-p483
+p512
+NsS'Web Site'
+p513
+S'http://sufficientlysecure.org/index.php/adaway'
+p514
+sS'Update Check Name'
+p515
 NsS'Vercode Operation'
 NsS'Vercode Operation'
-p484
-NsS'added'
-p485
-NsS'lastupdated'
-p486
-Ns.
+p516
+NsS'Auto Update Mode'
+p517
+S'Version v%v'
+p518
+s.
\ No newline at end of file
index 6f5565e552a6a1b57fa459a257b36328193a856e..30aef0772de72639f6cf8dbb6f65df859f2895d7 100644 (file)
@@ -6,774 +6,678 @@ p2
 NsS'AntiFeatures'
 p3
 (lp4
 NsS'AntiFeatures'
 p3
 (lp4
-sS'Web Site'
+sS'Litecoin'
 p5
 p5
-S'http://www.smssecure.org'
+NsS'comments'
 p6
 p6
-sS'Auto Update Mode'
-p7
-S'Version v%v'
-p8
+(dp7
 sS'Provides'
 sS'Provides'
-p9
+p8
 NsS'Issue Tracker'
 NsS'Issue Tracker'
-p10
+p9
 S'https://github.com/SMSSecure/SMSSecure/issues'
 S'https://github.com/SMSSecure/SMSSecure/issues'
-p11
+p10
 sS'Donate'
 sS'Donate'
+p11
+NsS'Archive Policy'
 p12
 p12
-NsS'Repo Type'
+NsS'Description'
 p13
 p13
-S'git'
-p14
-sS'Description'
-p15
-(lp16
+(lp14
 S'SMSSecure is an SMS/MMS application that allows you to protect your privacy while communicating with friends.'
 S'SMSSecure is an SMS/MMS application that allows you to protect your privacy while communicating with friends.'
-p17
+p15
 aS'Using SMSSecure, you can send SMS messages and share media or attachments with complete privacy.'
 aS'Using SMSSecure, you can send SMS messages and share media or attachments with complete privacy.'
-p18
+p16
 aS''
 aS''
-p19
+p17
 aS"* Easy. SMSSecure works like any other SMS application. There's nothing to sign up for and no new service your friends need to join."
 aS"* Easy. SMSSecure works like any other SMS application. There's nothing to sign up for and no new service your friends need to join."
-p20
+p18
 aS'* Reliable. SMSSecure communicates using encrypted SMS messages. No servers or internet connection required.'
 aS'* Reliable. SMSSecure communicates using encrypted SMS messages. No servers or internet connection required.'
-p21
+p19
 aS'* Private. SMSSecure uses the TextSecure encryption protocol to provide privacy for every message, every time.'
 aS'* Private. SMSSecure uses the TextSecure encryption protocol to provide privacy for every message, every time.'
-p22
+p20
 aS'* Safe. All messages are encrypted locally, so if your phone is lost or stolen, your messages are protected.'
 aS'* Safe. All messages are encrypted locally, so if your phone is lost or stolen, your messages are protected.'
-p23
+p21
 aS'* Open Source. SMSSecure is Free and Open Source, enabling anyone to verify its security by auditing the code.'
 aS'* Open Source. SMSSecure is Free and Open Source, enabling anyone to verify its security by auditing the code.'
-p24
+p22
 asS'Requires Root'
 asS'Requires Root'
-p25
+p23
 I00
 I00
-sS'comments'
+sS'lastupdated'
+p24
+NsS'id'
+p25
+S'org.smssecure.smssecure'
 p26
 p26
-(dp27
-sS'id'
+sS'Repo'
+p27
+S'https://github.com/SMSSecure/SMSSecure'
 p28
 p28
-S'org.smssecure.smssecure'
+sS'No Source Since'
 p29
 p29
-sS'Repo'
+g17
+sS'Repo Type'
 p30
 p30
-S'https://github.com/SMSSecure/SMSSecure'
+S'git'
 p31
 p31
-sS'No Source Since'
-p32
-g19
 sS'Auto Name'
 sS'Auto Name'
-p33
+p32
 S'SMSSecure'
 S'SMSSecure'
-p34
+p33
 sS'Categories'
 sS'Categories'
-p35
-(lp36
+p34
+(lp35
 S'Phone & SMS'
 S'Phone & SMS'
-p37
+p36
 asS'Source Code'
 asS'Source Code'
-p38
+p37
 S'https://github.com/SMSSecure/SMSSecure'
 S'https://github.com/SMSSecure/SMSSecure'
+p38
+sS'added'
 p39
 p39
-sS'Litecoin'
-p40
 NsS'Update Check Ignore'
 NsS'Update Check Ignore'
-p41
+p40
 NsS'Name'
 NsS'Name'
-p42
+p41
 NsS'License'
 NsS'License'
-p43
+p42
 S'GPLv3'
 S'GPLv3'
-p44
+p43
 sS'Changelog'
 sS'Changelog'
-p45
-g19
+p44
+g17
 sS'Update Check Mode'
 sS'Update Check Mode'
-p46
+p45
 S'Tags'
 S'Tags'
-p47
+p46
 sS'Summary'
 sS'Summary'
-p48
+p47
 S'Send encrypted text messages (SMS)'
 S'Send encrypted text messages (SMS)'
-p49
+p48
 sS'Current Version'
 sS'Current Version'
-p50
+p49
 S'0.6.0'
 S'0.6.0'
-p51
+p50
 sS'Maintainer Notes'
 sS'Maintainer Notes'
-p52
-(lp53
+p51
+(lp52
 sS'Current Version Code'
 sS'Current Version Code'
-p54
+p53
 S'102'
 S'102'
-p55
+p54
 sS'Binaries'
 sS'Binaries'
-p56
-NsS'Archive Policy'
-p57
+p55
 NsS'builds'
 NsS'builds'
-p58
-(lp59
-(dp60
+p56
+(lp57
+(dp58
 S'submodules'
 S'submodules'
-p61
+p59
+I00
+sS'kivy'
+p60
 I00
 I00
-sS'vercode'
-p62
-S'5'
-p63
 sS'forceversion'
 sS'forceversion'
-p64
+p61
 I00
 sS'oldsdkloc'
 I00
 sS'oldsdkloc'
-p65
+p62
 I00
 sS'antcommands'
 I00
 sS'antcommands'
+p63
+NsS'scanignore'
+p64
+(lp65
+sS'gradle'
 p66
 p66
-NsS'kivy'
-p67
-I00
-sS'patch'
+(lp67
+S'yes'
 p68
 p68
-(lp69
-sS'scanignore'
-p70
-(lp71
-sS'srclibs'
-p72
-(lp73
+asS'srclibs'
+p69
+(lp70
 S'GradleWitness@10f1269c0aafdc1d478efc005ed48f3a47d44278'
 S'GradleWitness@10f1269c0aafdc1d478efc005ed48f3a47d44278'
-p74
+p71
 aS'PreferenceFragment@717a45433b927d2f0dfc5328f79e77c9682c37bc'
 aS'PreferenceFragment@717a45433b927d2f0dfc5328f79e77c9682c37bc'
-p75
+p72
 aS'ShortcutBadger@3815ce2ec0c66acd7d7c0b4f2479df8fa70fed87'
 aS'ShortcutBadger@3815ce2ec0c66acd7d7c0b4f2479df8fa70fed87'
-p76
+p73
 aS'AospMms@android-5.1.0_r3'
 aS'AospMms@android-5.1.0_r3'
-p77
+p74
 asS'encoding'
 asS'encoding'
-p78
+p75
 NsS'extlibs'
 NsS'extlibs'
-p79
-(lp80
+p76
+(lp77
 sS'init'
 sS'init'
-p81
-g19
+p78
+g17
 sS'version'
 sS'version'
-p82
+p79
 S'0.3.3'
 S'0.3.3'
-p83
+p80
 sS'subdir'
 sS'subdir'
-p84
+p81
 NsS'rm'
 NsS'rm'
-p85
-(lp86
+p82
+(lp83
 S'libs/*'
 S'libs/*'
+p84
+asS'build'
+p85
+g17
+sS'vercode'
+p86
+S'5'
 p87
 p87
-asS'type'
-p88
-S'gradle'
-p89
-sS'build'
-p90
-g19
-sS'ndk_path'
-p91
-g19
 sS'forcevercode'
 sS'forcevercode'
-p92
+p88
 I01
 sS'preassemble'
 I01
 sS'preassemble'
-p93
-(lp94
+p89
+(lp90
 sS'update'
 sS'update'
-p95
-(lp96
-S'auto'
-p97
-asS'maven'
-p98
+p91
+NsS'maven'
+p92
 I00
 sS'disable'
 I00
 sS'disable'
-p99
+p93
 S'builds, merge changes into upstream'
 S'builds, merge changes into upstream'
-p100
+p94
 sS'commit'
 sS'commit'
-p101
+p95
 S'66367479a4f57f347b5cbe8f6f8f632adaae7727'
 S'66367479a4f57f347b5cbe8f6f8f632adaae7727'
-p102
+p96
 sS'scandelete'
 sS'scandelete'
+p97
+(lp98
+sS'buildjni'
+p99
+(lp100
+sS'ndk'
+p101
+NsS'target'
+p102
+NsS'gradleprops'
 p103
 (lp104
 p103
 (lp104
-sS'buildjni'
+sS'patch'
 p105
 (lp106
 p105
 (lp106
-sS'ndk'
+sS'prebuild'
 p107
 p107
-S'r10e'
-p108
-sS'target'
-p109
-NsS'gradleprops'
-p110
-(lp111
-sS'gradle'
-p112
-(lp113
-S'yes'
-p114
-asS'prebuild'
-p115
 S"touch signing.properties && pushd $$GradleWitness$$ && gradle jar && popd && cp $$GradleWitness$$/build/libs/GradleWitness.jar libs/gradle-witness.jar && sed -i -e '20,22d' build.gradle && pushd $$PreferenceFragment$$ && gradle uploadArchives && popd && sed -i -e '/5470f5872514a6226fa1fc6f4e000991f38805691c534cf0bd2778911fc773ad/d' build.gradle && mkdir smil && pushd smil && wget -c http://www.w3.org/TR/smil-boston-dom/java-binding.zip && unzip java-binding.zip && popd && cp -fR smil/java/org src/ && rm -fR smil && sed -i -e '/org.w3c.smil/d' build.gradle && cp -fR $$AospMms$$/src/org src/"
 S"touch signing.properties && pushd $$GradleWitness$$ && gradle jar && popd && cp $$GradleWitness$$/build/libs/GradleWitness.jar libs/gradle-witness.jar && sed -i -e '20,22d' build.gradle && pushd $$PreferenceFragment$$ && gradle uploadArchives && popd && sed -i -e '/5470f5872514a6226fa1fc6f4e000991f38805691c534cf0bd2778911fc773ad/d' build.gradle && mkdir smil && pushd smil && wget -c http://www.w3.org/TR/smil-boston-dom/java-binding.zip && unzip java-binding.zip && popd && cp -fR smil/java/org src/ && rm -fR smil && sed -i -e '/org.w3c.smil/d' build.gradle && cp -fR $$AospMms$$/src/org src/"
-p116
+p108
 sS'novcheck'
 sS'novcheck'
-p117
+p109
 I00
 sS'output'
 I00
 sS'output'
-p118
-Nsa(dp119
-S'submodules'
-p120
+p110
+Nsa(dp111
+g59
 I01
 I01
-sg62
-S'6'
-p121
-sg64
+sg60
 I00
 I00
-sg65
+sg61
 I00
 I00
-sg66
-Nsg67
+sg62
 I00
 I00
-sg68
-g69
-sg70
-g71
-sS'srclibs'
-p122
-(lp123
+sg63
+Nsg64
+(lp112
+sg66
+(lp113
+g68
+asg69
+(lp114
 S'GradleWitness@10f1269c0aafdc1d478efc005ed48f3a47d44278'
 S'GradleWitness@10f1269c0aafdc1d478efc005ed48f3a47d44278'
-p124
-asg78
-Nsg79
-g80
-sg81
-g19
-sg82
+p115
+asg75
+Nsg76
+(lp116
+sg78
+g17
+sg79
 S'0.3.3'
 S'0.3.3'
-p125
-sg84
-NsS'rm'
-p126
-(lp127
+p117
+sg81
+Nsg82
+(lp118
 S'libs/*.jar'
 S'libs/*.jar'
-p128
-asg88
-g89
-sg90
-g19
+p119
+asg85
+g17
+sg86
+S'6'
+p120
+sg88
+I00
+sg89
+(lp121
 sg91
 sg91
-g19
-sS'forcevercode'
-p129
+Nsg92
 I00
 sg93
 I00
 sg93
-g94
-sg95
-g96
-sg98
-I00
-sS'disable'
-p130
 S'builds, wait for upstream'
 S'builds, wait for upstream'
-p131
-sS'commit'
-p132
+p122
+sg95
 S'9675ce5eecb929dcaddb43b3d9486fdb88b9ae1a'
 S'9675ce5eecb929dcaddb43b3d9486fdb88b9ae1a'
-p133
-sg103
-g104
+p123
+sg97
+(lp124
+sg99
+(lp125
+sg101
+Nsg102
+Nsg103
+(lp126
 sg105
 sg105
-g106
+(lp127
 sg107
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p134
-(lp135
-g114
-asS'prebuild'
-p136
 S'touch signing.properties && pushd $$GradleWitness$$ && gradle jar && popd && cp $$GradleWitness$$/build/libs/GradleWitness.jar libs/gradle-witness.jar'
 S'touch signing.properties && pushd $$GradleWitness$$ && gradle jar && popd && cp $$GradleWitness$$/build/libs/GradleWitness.jar libs/gradle-witness.jar'
-p137
-sg117
+p128
+sg109
 I00
 I00
-sg118
-Nsa(dp138
-S'submodules'
-p139
+sg110
+Nsa(dp129
+g59
 I01
 I01
-sg62
-S'9'
-p140
-sg64
+sg60
 I00
 I00
-sg65
+sg61
 I00
 I00
+sg62
+I00
+sg63
+Nsg64
+(lp130
 sg66
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sS'srclibs'
-p141
-(lp142
+(lp131
+g68
+asg69
+(lp132
+sg75
+Nsg76
+(lp133
 sg78
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.4.2'
 S'0.4.2'
-p143
-sg84
-NsS'rm'
-p144
-(lp145
+p134
+sg81
+Nsg82
+(lp135
 S'libs/*.jar'
 S'libs/*.jar'
-p146
-asg88
-g89
-sg90
-g19
+p136
+asg85
+g17
+sg86
+S'9'
+p137
+sg88
+I00
+sg89
+(lp138
 sg91
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
 I00
 sg93
-g94
-sg95
-g96
-sg98
-I00
-sS'disable'
-p147
 S'builds locally, but not on BS'
 S'builds locally, but not on BS'
-p148
-sS'commit'
-p149
+p139
+sg95
 S'v0.4.2'
 S'v0.4.2'
-p150
-sg103
-g104
+p140
+sg97
+(lp141
+sg99
+(lp142
+sg101
+Nsg102
+Nsg103
+(lp143
 sg105
 sg105
-g106
+(lp144
 sg107
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p151
-(lp152
-g114
-asS'prebuild'
-p153
 S'touch signing.properties && ./build-witness.sh && rm -rf libs/gradle-witness/build && echo "org.gradle.jvmargs=-Xms512m -Xmx512m -XX:MaxPermSize=512m" >> gradle.properties'
 S'touch signing.properties && ./build-witness.sh && rm -rf libs/gradle-witness/build && echo "org.gradle.jvmargs=-Xms512m -Xmx512m -XX:MaxPermSize=512m" >> gradle.properties'
-p154
-sg117
+p145
+sg109
 I00
 I00
-sg118
-Nsa(dp155
-S'submodules'
-p156
+sg110
+Nsa(dp146
+g59
 I01
 I01
-sg62
-S'11'
-p157
-sg64
+sg60
 I00
 I00
-sg65
+sg61
 I00
 I00
+sg62
+I00
+sg63
+Nsg64
+(lp147
 sg66
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sg141
-g142
+(lp148
+g68
+asg69
+(lp149
+sg75
+Nsg76
+(lp150
 sg78
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.5.1'
 S'0.5.1'
-p158
-sg84
-NsS'rm'
-p159
-(lp160
+p151
+sg81
+Nsg82
+(lp152
 S'libs/*.jar'
 S'libs/*.jar'
-p161
-asg88
-g89
-sg90
-g19
+p153
+asg85
+g17
+sg86
+S'11'
+p154
+sg88
+I00
+sg89
+(lp155
 sg91
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
 I00
 sg93
-g94
-sg95
-g96
-sg98
-I00
-sS'disable'
-p162
 I00
 I00
-sS'commit'
-p163
+sg95
 S'v0.5.1'
 S'v0.5.1'
-p164
-sg103
-g104
+p156
+sg97
+(lp157
+sg99
+(lp158
+sg101
+Nsg102
+Nsg103
+(lp159
 sg105
 sg105
-g106
+(lp160
 sg107
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p165
-(lp166
-g114
-asS'prebuild'
-p167
 S'touch signing.properties && ./build-witness.sh && rm -rf libs/gradle-witness/build && echo "org.gradle.jvmargs=-Xms512m -Xmx512m -XX:MaxPermSize=512m" >> gradle.properties'
 S'touch signing.properties && ./build-witness.sh && rm -rf libs/gradle-witness/build && echo "org.gradle.jvmargs=-Xms512m -Xmx512m -XX:MaxPermSize=512m" >> gradle.properties'
-p168
-sg117
+p161
+sg109
 I00
 I00
-sg118
-Nsa(dp169
-S'submodules'
-p170
+sg110
+Nsa(dp162
+g59
 I01
 I01
-sg62
-S'12'
-p171
-sg64
+sg60
 I00
 I00
-sg65
+sg61
 I00
 I00
+sg62
+I00
+sg63
+Nsg64
+(lp163
 sg66
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sg141
-g142
+(lp164
+g68
+asg69
+(lp165
+sg75
+Nsg76
+(lp166
 sg78
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.5.2'
 S'0.5.2'
-p172
-sg84
-NsS'rm'
-p173
-(lp174
+p167
+sg81
+Nsg82
+(lp168
 S'libs/*.jar'
 S'libs/*.jar'
-p175
-asg88
-g89
-sg90
-g19
+p169
+asg85
+g17
+sg86
+S'12'
+p170
+sg88
+I00
+sg89
+(lp171
 sg91
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
 I00
 sg93
-g94
-sg95
-g96
-sg98
-I00
-sS'disable'
-p176
 S'broken in upstream'
 S'broken in upstream'
-p177
-sS'commit'
-p178
+p172
+sg95
 S'v0.5.2'
 S'v0.5.2'
-p179
-sg103
-g104
+p173
+sg97
+(lp174
+sg99
+(lp175
+sg101
+Nsg102
+Nsg103
+(lp176
 sg105
 sg105
-g106
+(lp177
 sg107
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p180
-(lp181
-g114
-asS'prebuild'
-p182
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
-p183
-sg117
+p178
+sg109
 I00
 I00
-sg118
-Nsa(dp184
-S'submodules'
-p185
+sg110
+Nsa(dp179
+g59
 I01
 I01
-sg62
-S'100'
-p186
-sg64
+sg60
+I00
+sg61
 I00
 I00
-sg65
+sg62
 I00
 I00
+sg63
+Nsg64
+(lp180
 sg66
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sg141
-g142
+(lp181
+g68
+asg69
+(lp182
+sg75
+Nsg76
+(lp183
 sg78
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.5.3'
 S'0.5.3'
-p187
-sg84
-NsS'rm'
-p188
-(lp189
+p184
+sg81
+Nsg82
+(lp185
 S'libs/*.jar'
 S'libs/*.jar'
-p190
-asg88
-g89
-sg90
-g19
+p186
+asg85
+g17
+sg86
+S'100'
+p187
+sg88
+I00
+sg89
+(lp188
 sg91
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
 I00
 sg93
-g94
-sg95
-g96
-sg98
 I00
 I00
-sg162
-I00
-sS'commit'
-p191
+sg95
 S'v0.5.3'
 S'v0.5.3'
-p192
-sg103
-g104
+p189
+sg97
+(lp190
+sg99
+(lp191
+sg101
+Nsg102
+Nsg103
+(lp192
 sg105
 sg105
-g106
+(lp193
 sg107
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p193
-(lp194
-g114
-asS'prebuild'
-p195
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
-p196
-sg117
+p194
+sg109
 I00
 I00
-sg118
-Nsa(dp197
-S'submodules'
-p198
+sg110
+Nsa(dp195
+g59
 I01
 I01
-sg62
-S'101'
-p199
-sg64
+sg60
 I00
 I00
-sg65
+sg61
 I00
 I00
+sg62
+I00
+sg63
+Nsg64
+(lp196
 sg66
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sg141
-g142
+(lp197
+g68
+asg69
+(lp198
+sg75
+Nsg76
+(lp199
 sg78
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.5.4'
 p200
 S'0.5.4'
 p200
-sg84
-NsS'rm'
-p201
-(lp202
+sg81
+Nsg82
+(lp201
 S'libs/*.jar'
 S'libs/*.jar'
+p202
+asg85
+g17
+sg86
+S'101'
 p203
 p203
-asg88
-g89
-sg90
-g19
+sg88
+I00
+sg89
+(lp204
 sg91
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
 I00
 sg93
-g94
-sg95
-g96
-sg98
-I00
-sg162
 I00
 I00
-sS'commit'
-p204
+sg95
 S'v0.5.4'
 p205
 S'v0.5.4'
 p205
-sg103
-g104
+sg97
+(lp206
+sg99
+(lp207
+sg101
+Nsg102
+Nsg103
+(lp208
 sg105
 sg105
-g106
+(lp209
 sg107
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p206
-(lp207
-g114
-asS'prebuild'
-p208
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
-p209
-sg117
+p210
+sg109
 I00
 I00
-sg118
-Nsa(dp210
-S'submodules'
-p211
+sg110
+Nsa(dp211
+g59
 I01
 I01
-sg62
-S'102'
-p212
-sg64
+sg60
+I00
+sg61
 I00
 I00
-sg65
+sg62
 I00
 I00
+sg63
+Nsg64
+(lp212
 sg66
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sg141
-g142
+(lp213
+g68
+asg69
+(lp214
+sg75
+Nsg76
+(lp215
 sg78
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.6.0'
 S'0.6.0'
-p213
-sg84
-NsS'rm'
-p214
-(lp215
-S'libs/*.jar'
 p216
 p216
-asg88
-g89
-sg90
-g19
+sg81
+Nsg82
+(lp217
+S'libs/*.jar'
+p218
+asg85
+g17
+sg86
+S'102'
+p219
+sg88
+I00
+sg89
+(lp220
 sg91
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
 I00
 sg93
-g94
-sg95
-g96
-sg98
 I00
 I00
-sg162
-I00
-sS'commit'
-p217
+sg95
 S'v0.6.0'
 S'v0.6.0'
-p218
-sg103
-g104
+p221
+sg97
+(lp222
+sg99
+(lp223
+sg101
+Nsg102
+Nsg103
+(lp224
 sg105
 sg105
-g106
+(lp225
 sg107
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p219
-(lp220
-g114
-asS'prebuild'
-p221
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
-p222
-sg117
+p226
+sg109
 I00
 I00
-sg118
+sg110
 NsasS'FlattrID'
 NsasS'FlattrID'
-p223
-NsS'metadatapath'
-p224
-S'metadata/org.smssecure.smssecure.txt'
-p225
-sS'Disabled'
-p226
-NsS'Update Check Name'
 p227
 p227
-NsS'Vercode Operation'
+NsS'metadatapath'
 p228
 p228
-NsS'added'
+S'metadata/org.smssecure.smssecure.txt'
 p229
 p229
-NsS'lastupdated'
+sS'Disabled'
 p230
 p230
-Ns.
+NsS'Web Site'
+p231
+S'http://www.smssecure.org'
+p232
+sS'Update Check Name'
+p233
+NsS'Vercode Operation'
+p234
+NsS'Auto Update Mode'
+p235
+S'Version v%v'
+p236
+s.
\ No newline at end of file
index a62fd27e6dc09a2a2bc477730f821c51137a4354..222428ff844db4e13bab40f4ed484808b1652d75 100644 (file)
@@ -6,56 +6,56 @@ p2
 NsS'AntiFeatures'
 p3
 (lp4
 NsS'AntiFeatures'
 p3
 (lp4
-sS'Web Site'
+sS'Litecoin'
 p5
 p5
-S'http://www.videolan.org/vlc/download-android.html'
+NsS'comments'
 p6
 p6
-sS'Auto Update Mode'
-p7
-S'None'
-p8
+(dp7
 sS'Provides'
 sS'Provides'
-p9
+p8
 NsS'Issue Tracker'
 NsS'Issue Tracker'
-p10
+p9
 S'http://www.videolan.org/support/index.html#bugs'
 S'http://www.videolan.org/support/index.html#bugs'
-p11
+p10
 sS'Donate'
 sS'Donate'
-p12
+p11
 S'http://www.videolan.org/contribute.html#money'
 S'http://www.videolan.org/contribute.html#money'
+p12
+sS'Archive Policy'
 p13
 p13
-sS'id'
+S'9 versions'
 p14
 p14
-S'org.videolan.vlc'
-p15
 sS'Description'
 sS'Description'
-p16
-(lp17
+p15
+(lp16
 S'Video and audio player that supports a wide range of formats,'
 S'Video and audio player that supports a wide range of formats,'
-p18
+p17
 aS'for both local and remote playback.'
 aS'for both local and remote playback.'
-p19
+p18
 aS''
 aS''
-p20
+p19
 aS'[http://git.videolan.org/?p=vlc-ports/android.git;a=blob_plain;f=NEWS NEWS]'
 aS'[http://git.videolan.org/?p=vlc-ports/android.git;a=blob_plain;f=NEWS NEWS]'
-p21
+p20
 asS'Requires Root'
 asS'Requires Root'
-p22
+p21
 I00
 I00
-sS'comments'
+sS'lastupdated'
+p22
+NsS'id'
 p23
 p23
-(dp24
-sS'Repo Type'
+S'org.videolan.vlc'
+p24
+sS'Repo'
 p25
 p25
-S'git'
+S'git://git.videolan.org/vlc-ports/android.git'
 p26
 p26
-sS'Repo'
+sS'No Source Since'
 p27
 p27
-S'git://git.videolan.org/vlc-ports/android.git'
+g19
+sS'Repo Type'
 p28
 p28
-sS'No Source Since'
+S'git'
 p29
 p29
-g20
 sS'Auto Name'
 p30
 S'VLC'
 sS'Auto Name'
 p30
 S'VLC'
@@ -69,7 +69,7 @@ asS'Source Code'
 p35
 S'http://git.videolan.org/?p=vlc-ports/android.git;a=summary'
 p36
 p35
 S'http://git.videolan.org/?p=vlc-ports/android.git;a=summary'
 p36
-sS'Litecoin'
+sS'added'
 p37
 NsS'Update Check Ignore'
 p38
 p37
 NsS'Update Check Ignore'
 p38
@@ -81,7 +81,7 @@ S'GPLv3'
 p41
 sS'Changelog'
 p42
 p41
 sS'Changelog'
 p42
-g20
+g19
 sS'Update Check Mode'
 p43
 S'Tags'
 sS'Update Check Mode'
 p43
 S'Tags'
@@ -90,5538 +90,4372 @@ sS'Summary'
 p45
 S'Media player'
 p46
 p45
 S'Media player'
 p46
-sS'Maintainer Notes'
+sS'Current Version'
 p47
 p47
-(lp48
-S'Instructions and dependencies here: http://wiki.videolan.org/AndroidCompile'
+S'1.2.6'
+p48
+sS'Maintainer Notes'
 p49
 p49
-aS'see http://buildbot.videolan.org/builders/ for version code scheme'
-p50
-aS'The VLC srclib commit can be found out from TESTED_HASH value in compile.sh'
+(lp50
+S'Instructions and dependencies here: http://wiki.videolan.org/AndroidCompile'
 p51
 p51
-ag20
-aS'On new releases remove the updatecheck and force the CV to the last working'
+aS'see http://buildbot.videolan.org/builders/ for version code scheme'
 p52
 p52
-aS"build. This will make sure users don't get notified about the update until"
+aS'The VLC srclib commit can be found out from TESTED_HASH value in compile.sh'
 p53
 p53
-aS'the final build from the BS has been reviewed and tested. Once done, undo'
+ag19
+aS'On new releases remove the updatecheck and force the CV to the last working'
 p54
 p54
-aS'those changes.'
+aS"build. This will make sure users don't get notified about the update until"
 p55
 p55
-asS'Current Version Code'
+aS'the final build from the BS has been reviewed and tested. Once done, undo'
 p56
 p56
-S'1030005'
+aS'those changes.'
 p57
 p57
-sS'Binaries'
+asS'Current Version Code'
 p58
 p58
-NsS'Archive Policy'
+S'1030005'
 p59
 p59
-S'9 versions'
+sS'Binaries'
 p60
 p60
-sS'builds'
+NsS'builds'
 p61
 (lp62
 (dp63
 S'submodules'
 p64
 I00
 p61
 (lp62
 (dp63
 S'submodules'
 p64
 I00
-sS'vercode'
+sS'kivy'
 p65
 p65
-S'110'
-p66
+I00
 sS'forceversion'
 sS'forceversion'
-p67
+p66
 I01
 sS'oldsdkloc'
 I01
 sS'oldsdkloc'
-p68
+p67
 I00
 I00
-sS'gradleprops'
+sS'antcommands'
+p68
+NsS'scanignore'
 p69
 (lp70
 p69
 (lp70
-sS'scanignore'
+sS'gradle'
 p71
 p71
-(lp72
-sS'patch'
-p73
-(lp74
+I00
 sS'srclibs'
 sS'srclibs'
+p72
+(lp73
+sS'encoding'
+p74
+NsS'extlibs'
 p75
 (lp76
 p75
 (lp76
-sS'output'
+sS'init'
 p77
 p77
-NsS'encoding'
+g19
+sS'version'
 p78
 p78
-NsS'extlibs'
+S'0.0.11-ARMv7'
 p79
 p79
-(lp80
-sS'init'
+sS'subdir'
+p80
+S'vlc-android'
 p81
 p81
-g20
-sS'version'
+sS'rm'
 p82
 p82
-S'0.0.11-ARMv7'
-p83
+(lp83
 sS'build'
 p84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 p85
 sS'build'
 p84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 p85
-sS'rm'
+sS'vercode'
 p86
 p86
-(lp87
-sS'kivy'
-p88
-I00
-sS'subdir'
-p89
-S'vlc-android'
-p90
+I110
 sS'forcevercode'
 sS'forcevercode'
-p91
+p87
 I01
 sS'preassemble'
 I01
 sS'preassemble'
-p92
-(lp93
+p88
+(lp89
 sS'update'
 sS'update'
-p94
-(lp95
+p90
+(lp91
 S'.'
 S'.'
-p96
+p92
 aS'../java-libs/SlidingMenu'
 aS'../java-libs/SlidingMenu'
-p97
+p93
 aS'../java-libs/ActionBarSherlock'
 aS'../java-libs/ActionBarSherlock'
-p98
+p94
 asS'maven'
 asS'maven'
-p99
+p95
 I00
 sS'disable'
 I00
 sS'disable'
-p100
+p96
 I00
 I00
-sS'ndk_path'
-p101
-g20
+sS'commit'
+p97
+S'0.0.11'
+p98
 sS'scandelete'
 sS'scandelete'
-p102
-(lp103
+p99
+(lp100
 sS'buildjni'
 sS'buildjni'
+p101
+I00
+sS'ndk'
+p102
+NsS'target'
+p103
+NsS'gradleprops'
 p104
 (lp105
 p104
 (lp105
-S'no'
+sS'patch'
 p106
 p106
-asS'ndk'
-p107
-S'r10e'
-p108
-sS'target'
-p109
-NsS'type'
-p110
-S'ant'
-p111
-sS'antcommands'
-p112
-NsS'gradle'
-p113
-I00
+(lp107
 sS'prebuild'
 sS'prebuild'
-p114
+p108
 S"sed -i '48d' ../Makefile"
 S"sed -i '48d' ../Makefile"
-p115
+p109
 sS'novcheck'
 sS'novcheck'
-p116
+p110
 I00
 I00
-sS'commit'
-p117
-S'0.0.11'
-p118
-sa(dp119
+sS'output'
+p111
+Nsa(dp112
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'111'
-p120
-sS'forceversion'
-p121
+I00
+sg66
 I01
 I01
-sg68
+sg67
 I00
 I00
-sg69
-(lp122
+sg68
+Nsg69
+(lp113
 sg71
 sg71
-g72
-sg73
-g74
-sg75
-g76
+I00
+sg72
+(lp114
+sg74
+Nsg75
+(lp115
 sg77
 sg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+g19
+sg78
 S'0.0.11-ARM'
 S'0.0.11-ARM'
-p123
-sS'build'
-p124
+p116
+sg80
+S'vlc-android'
+p117
+sg82
+(lp118
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p125
+p119
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p126
-S'vlc-android'
-p127
-sS'forcevercode'
-p128
+I111
+sg87
 I01
 I01
-sg92
-g93
-sS'update'
-p129
-(lp130
-g96
+sg88
+(lp120
+sg90
+(lp121
+S'.'
+p122
 aS'../java-libs/SlidingMenu'
 aS'../java-libs/SlidingMenu'
-p131
+p123
 aS'../java-libs/ActionBarSherlock'
 aS'../java-libs/ActionBarSherlock'
-p132
-asg99
+p124
+asg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.0.11'
+p125
+sg99
+(lp126
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p133
-(lp134
-S'no'
-p135
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p136
+sg102
+Nsg103
+Nsg104
+(lp127
+sg106
+(lp128
+sg108
 S"sed -i '48d' ../Makefile"
 S"sed -i '48d' ../Makefile"
-p137
-sg116
+p129
+sg110
 I00
 I00
-sS'commit'
-p138
-S'0.0.11'
-p139
-sa(dp140
+sg111
+Nsa(dp130
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'112'
-p141
-sS'forceversion'
-p142
+I00
+sg66
 I01
 I01
-sg68
+sg67
 I00
 I00
-sg69
-(lp143
+sg68
+Nsg69
+(lp131
 sg71
 sg71
-g72
-sg73
-g74
-sg75
-g76
+I00
+sg72
+(lp132
+sg74
+Nsg75
+(lp133
 sg77
 sg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+g19
+sg78
 S'0.0.11-x86'
 S'0.0.11-x86'
-p144
-sS'build'
-p145
+p134
+sg80
+S'vlc-android'
+p135
+sg82
+(lp136
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p146
+p137
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p147
-S'vlc-android'
-p148
-sS'forcevercode'
-p149
+I112
+sg87
 I01
 I01
-sg92
-g93
-sS'update'
-p150
-(lp151
-g96
+sg88
+(lp138
+sg90
+(lp139
+S'.'
+p140
 aS'../java-libs/SlidingMenu'
 aS'../java-libs/SlidingMenu'
-p152
+p141
 aS'../java-libs/ActionBarSherlock'
 aS'../java-libs/ActionBarSherlock'
-p153
-asg99
+p142
+asg95
 I00
 I00
-sS'disable'
-p154
+sg96
 S'ffmpeg error 0.0.11'
 S'ffmpeg error 0.0.11'
-p155
+p143
+sg97
+S'unknown - see disabled'
+p144
+sg99
+(lp145
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p156
-(lp157
-S'no'
-p158
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p159
+sg102
+Nsg103
+Nsg104
+(lp146
+sg106
+(lp147
+sg108
 S"sed -i '48d' ../Makefile"
 S"sed -i '48d' ../Makefile"
-p160
-sg116
+p148
+sg110
 I00
 I00
-sS'commit'
-p161
-S'unknown - see disabled'
-p162
-sa(dp163
+sg111
+Nsa(dp149
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'113'
-p164
-sS'forceversion'
-p165
+I00
+sg66
 I01
 I01
-sg68
+sg67
 I00
 I00
-sg69
-(lp166
+sg68
+Nsg69
+(lp150
 sg71
 sg71
-g72
-sg73
-g74
-sg75
-g76
+I00
+sg72
+(lp151
+sg74
+Nsg75
+(lp152
 sg77
 sg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+g19
+sg78
 S'0.0.11-mips'
 S'0.0.11-mips'
-p167
-sS'build'
-p168
+p153
+sg80
+S'vlc-android'
+p154
+sg82
+(lp155
+sg84
 S'cd ../ && ANDROID_ABI=mips ./compile.sh release'
 S'cd ../ && ANDROID_ABI=mips ./compile.sh release'
-p169
+p156
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p170
-S'vlc-android'
-p171
-sS'forcevercode'
-p172
+I113
+sg87
 I01
 I01
-sg92
-g93
-sS'update'
-p173
-(lp174
-g96
+sg88
+(lp157
+sg90
+(lp158
+S'.'
+p159
 aS'../java-libs/SlidingMenu'
 aS'../java-libs/SlidingMenu'
-p175
+p160
 aS'../java-libs/ActionBarSherlock'
 aS'../java-libs/ActionBarSherlock'
-p176
-asg99
+p161
+asg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.0.11'
+p162
+sg99
+(lp163
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p177
-(lp178
-S'no'
-p179
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p180
+sg102
+Nsg103
+Nsg104
+(lp164
+sg106
+(lp165
+sg108
 S"sed -i '48d' ../Makefile"
 S"sed -i '48d' ../Makefile"
-p181
-sg116
+p166
+sg110
 I00
 I00
-sS'commit'
-p182
-S'0.0.11'
-p183
-sa(dp184
+sg111
+Nsa(dp167
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1301'
-p185
-sS'forceversion'
-p186
+I00
+sg66
 I01
 I01
-sg68
+sg67
 I00
 I00
-sg69
-(lp187
+sg68
+Nsg69
+(lp168
 sg71
 sg71
-g72
-sS'patch'
-p188
-(lp189
-S'ndkr9.patch'
-p190
-asS'srclibs'
-p191
-(lp192
+I00
+sg72
 S'VLC@7c52aacbe'
 S'VLC@7c52aacbe'
-p193
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p169
+sg74
+Nsg75
+(lp170
+sg77
+g19
+sg78
 S'0.1.3-MIPS'
 S'0.1.3-MIPS'
-p194
-sS'build'
-p195
+p171
+sg80
+S'vlc-android'
+p172
+sg82
+(lp173
+sg84
 S'cd ../ && ANDROID_ABI=mips ./compile.sh release'
 S'cd ../ && ANDROID_ABI=mips ./compile.sh release'
-p196
+p174
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p197
-S'vlc-android'
-p198
-sS'forcevercode'
-p199
+I1301
+sg87
 I01
 I01
-sg92
-g93
-sS'update'
-p200
-(lp201
-S'auto'
-p202
-asg99
+sg88
+(lp175
+sg90
+Nsg95
 I00
 I00
-sS'disable'
-p203
+sg96
 S'build failing (at 0.1.3)'
 S'build failing (at 0.1.3)'
-p204
+p176
+sg97
+S'0.1.3'
+p177
+sg99
+(lp178
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p205
-(lp206
-S'no'
-p207
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p208
+sg102
+Nsg103
+Nsg104
+(lp179
+sg106
+S'ndkr9.patch'
+p180
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p209
-sg116
+p181
+sg110
 I00
 I00
-sS'commit'
-p210
-S'0.1.3'
-p211
-sa(dp212
+sg111
+Nsa(dp182
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1302'
-p213
-sS'forceversion'
-p214
+I00
+sg66
 I01
 I01
-sg68
+sg67
 I00
 I00
-sg69
-(lp215
+sg68
+Nsg69
+(lp183
 sg71
 sg71
-g72
-sS'patch'
-p216
-(lp217
-S'ndkr9.patch'
-p218
-asS'srclibs'
-p219
-(lp220
+I00
+sg72
 S'VLC@7c52aacbe'
 S'VLC@7c52aacbe'
-p221
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p184
+sg74
+Nsg75
+(lp185
+sg77
+g19
+sg78
 S'0.1.3-x86'
 S'0.1.3-x86'
-p222
-sS'build'
-p223
+p186
+sg80
+S'vlc-android'
+p187
+sg82
+(lp188
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p224
+p189
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p225
-S'vlc-android'
-p226
-sS'forcevercode'
-p227
+I1302
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp190
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.1.3'
+p191
+sg99
+(lp192
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p228
-(lp229
-S'no'
-p230
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p231
+sg102
+Nsg103
+Nsg104
+(lp193
+sg106
+S'ndkr9.patch'
+p194
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p232
-sg116
+p195
+sg110
 I00
 I00
-sS'commit'
-p233
-S'0.1.3'
-p234
-sa(dp235
+sg111
+Nsa(dp196
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1303'
-p236
-sS'forceversion'
-p237
+I00
+sg66
 I01
 I01
-sg68
+sg67
 I00
 I00
-sg69
-(lp238
+sg68
+Nsg69
+(lp197
 sg71
 sg71
-g72
-sS'patch'
-p239
-(lp240
-S'ndkr9.patch'
-p241
-asS'srclibs'
-p242
-(lp243
+I00
+sg72
 S'VLC@7c52aacbe'
 S'VLC@7c52aacbe'
-p244
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p198
+sg74
+Nsg75
+(lp199
+sg77
+g19
+sg78
 S'0.1.3-ARM'
 S'0.1.3-ARM'
-p245
-sS'build'
-p246
+p200
+sg80
+S'vlc-android'
+p201
+sg82
+(lp202
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p247
+p203
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p248
-S'vlc-android'
-p249
-sS'forcevercode'
-p250
+I1303
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp204
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.1.3'
+p205
+sg99
+(lp206
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p251
-(lp252
-S'no'
-p253
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p254
+sg102
+Nsg103
+Nsg104
+(lp207
+sg106
+S'ndkr9.patch'
+p208
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p255
-sg116
+p209
+sg110
 I00
 I00
-sS'commit'
-p256
-S'0.1.3'
-p257
-sa(dp258
+sg111
+Nsa(dp210
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1304'
-p259
-sS'forceversion'
-p260
+I00
+sg66
 I01
 I01
-sg68
+sg67
 I00
 I00
-sg69
-(lp261
+sg68
+Nsg69
+(lp211
 sg71
 sg71
-g72
-sS'patch'
-p262
-(lp263
-S'ndkr9.patch'
-p264
-asS'srclibs'
-p265
-(lp266
+I00
+sg72
 S'VLC@7c52aacbe'
 S'VLC@7c52aacbe'
-p267
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p212
+sg74
+Nsg75
+(lp213
+sg77
+g19
+sg78
 S'0.1.3-ARMv7'
 S'0.1.3-ARMv7'
-p268
-sS'build'
-p269
+p214
+sg80
+S'vlc-android'
+p215
+sg82
+(lp216
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p270
+p217
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p271
-S'vlc-android'
-p272
-sS'forcevercode'
-p273
+I1304
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp218
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.1.3'
+p219
+sg99
+(lp220
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p274
-(lp275
-S'no'
-p276
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p277
+sg102
+Nsg103
+Nsg104
+(lp221
+sg106
+S'ndkr9.patch'
+p222
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p278
-sg116
+p223
+sg110
 I00
 I00
-sS'commit'
-p279
-S'0.1.3'
-p280
-sa(dp281
+sg111
+Nsa(dp224
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9002'
-p282
-sS'forceversion'
-p283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp284
+sg67
+I00
+sg68
+Nsg69
+(lp225
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p285
-(lp286
+I00
+sg72
 S'VLC@31ffb20309264994'
 S'VLC@31ffb20309264994'
-p287
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p226
+sg74
+Nsg75
+(lp227
+sg77
+g19
+sg78
 S'0.9.0'
 S'0.9.0'
-p288
-sS'build'
-p289
+p228
+sg80
+S'vlc-android'
+p229
+sg82
+(lp230
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p290
+p231
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p291
-S'vlc-android'
-p292
-sS'forcevercode'
-p293
+I9002
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp232
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.0'
+p233
+sg99
+(lp234
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p294
-(lp295
-S'no'
-p296
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p297
+sg102
+Nsg103
+Nsg104
+(lp235
+sg106
+(lp236
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p298
-sg116
+p237
+sg110
 I00
 I00
-sS'commit'
-p299
-S'0.9.0'
-p300
-sa(dp301
+sg111
+Nsa(dp238
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9004'
-p302
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp303
+sg67
+I00
+sg68
+Nsg69
+(lp239
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p304
-(lp305
+I00
+sg72
 S'VLC@31ffb20309264994'
 S'VLC@31ffb20309264994'
-p306
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p240
+sg74
+Nsg75
+(lp241
+sg77
+g19
+sg78
 S'0.9.0'
 S'0.9.0'
-p307
-sS'build'
-p308
+p242
+sg80
+S'vlc-android'
+p243
+sg82
+(lp244
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p309
+p245
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p310
-S'vlc-android'
-p311
-sS'forcevercode'
-p312
+I9004
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp246
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.0'
+p247
+sg99
+(lp248
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p313
-(lp314
-S'no'
-p315
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p316
+sg102
+Nsg103
+Nsg104
+(lp249
+sg106
+(lp250
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p317
-sg116
+p251
+sg110
 I00
 I00
-sS'commit'
-p318
-S'0.9.0'
-p319
-sa(dp320
+sg111
+Nsa(dp252
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9102'
-p321
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp322
+sg67
+I00
+sg68
+Nsg69
+(lp253
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p323
-(lp324
+I00
+sg72
 S'VLC@37e886d113b8b567c15208579fb2f'
 S'VLC@37e886d113b8b567c15208579fb2f'
-p325
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p254
+sg74
+Nsg75
+(lp255
+sg77
+g19
+sg78
 S'0.9.1'
 S'0.9.1'
-p326
-sS'build'
-p327
+p256
+sg80
+S'vlc-android'
+p257
+sg82
+(lp258
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p328
+p259
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p329
-S'vlc-android'
-p330
-sS'forcevercode'
-p331
+I9102
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp260
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.1'
+p261
+sg99
+(lp262
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p332
-(lp333
-S'no'
-p334
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p335
+sg102
+Nsg103
+Nsg104
+(lp263
+sg106
+(lp264
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p336
-sg116
+p265
+sg110
 I00
 I00
-sS'commit'
-p337
-S'0.9.1'
-p338
-sa(dp339
+sg111
+Nsa(dp266
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9104'
-p340
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp341
+sg67
+I00
+sg68
+Nsg69
+(lp267
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p342
-(lp343
+I00
+sg72
 S'VLC@37e886d113b8b567c15208579fb2f'
 S'VLC@37e886d113b8b567c15208579fb2f'
-p344
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p268
+sg74
+Nsg75
+(lp269
+sg77
+g19
+sg78
 S'0.9.1'
 S'0.9.1'
-p345
-sS'build'
-p346
+p270
+sg80
+S'vlc-android'
+p271
+sg82
+(lp272
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p347
+p273
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p348
-S'vlc-android'
-p349
-sS'forcevercode'
-p350
+I9104
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp274
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.1'
+p275
+sg99
+(lp276
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p351
-(lp352
-S'no'
-p353
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p354
+sg102
+Nsg103
+Nsg104
+(lp277
+sg106
+(lp278
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p355
-sg116
+p279
+sg110
 I00
 I00
-sS'commit'
-p356
-S'0.9.1'
-p357
-sa(dp358
+sg111
+Nsa(dp280
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9502'
-p359
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp360
+sg67
+I00
+sg68
+Nsg69
+(lp281
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p361
-(lp362
+I00
+sg72
 S'VLC@052600173f376ff58ff04d53746961a2'
 S'VLC@052600173f376ff58ff04d53746961a2'
-p363
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p282
+sg74
+Nsg75
+(lp283
+sg77
+g19
+sg78
 S'0.9.5'
 S'0.9.5'
-p364
-sS'build'
-p365
+p284
+sg80
+S'vlc-android'
+p285
+sg82
+(lp286
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p366
+p287
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p367
-S'vlc-android'
-p368
-sS'forcevercode'
-p369
+I9502
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp288
+sg90
+Nsg95
 I00
 I00
-sS'disable'
-p370
+sg96
 S"can't download gmp"
 S"can't download gmp"
-p371
+p289
+sg97
+S'0.9.5'
+p290
+sg99
+(lp291
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p372
-(lp373
-S'no'
-p374
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p375
+sg102
+Nsg103
+Nsg104
+(lp292
+sg106
+(lp293
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p376
-sg116
+p294
+sg110
 I00
 I00
-sS'commit'
-p377
-S'0.9.5'
-p378
-sa(dp379
+sg111
+Nsa(dp295
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9504'
-p380
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp381
+sg67
+I00
+sg68
+Nsg69
+(lp296
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p382
-(lp383
+I00
+sg72
 S'VLC@052600173f376ff58ff04d53746961a2'
 S'VLC@052600173f376ff58ff04d53746961a2'
-p384
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p297
+sg74
+Nsg75
+(lp298
+sg77
+g19
+sg78
 S'0.9.5'
 S'0.9.5'
-p385
-sS'build'
-p386
+p299
+sg80
+S'vlc-android'
+p300
+sg82
+(lp301
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p387
+p302
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p388
-S'vlc-android'
-p389
-sS'forcevercode'
-p390
+I9504
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp303
+sg90
+Nsg95
 I00
 I00
-sS'disable'
-p391
+sg96
 S"can't download gmp"
 S"can't download gmp"
-p392
+p304
+sg97
+S'0.9.5'
+p305
+sg99
+(lp306
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p393
-(lp394
-S'no'
-p395
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p396
+sg102
+Nsg103
+Nsg104
+(lp307
+sg106
+(lp308
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p397
-sg116
+p309
+sg110
 I00
 I00
-sS'commit'
-p398
-S'0.9.5'
-p399
-sa(dp400
+sg111
+Nsa(dp310
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9602'
-p401
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp402
+sg67
+I00
+sg68
+Nsg69
+(lp311
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p403
-(lp404
+I00
+sg72
 S'VLC-2.2@27f4799'
 S'VLC-2.2@27f4799'
-p405
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p312
+sg74
+Nsg75
+(lp313
+sg77
+g19
+sg78
 S'0.9.6'
 S'0.9.6'
-p406
-sS'build'
-p407
+p314
+sg80
+S'vlc-android'
+p315
+sg82
+(lp316
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p408
+p317
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p409
-S'vlc-android'
-p410
-sS'forcevercode'
-p411
+I9602
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp318
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.6'
+p319
+sg99
+(lp320
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p412
-(lp413
-S'no'
-p414
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p415
+sg102
+Nsg103
+Nsg104
+(lp321
+sg106
+(lp322
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p416
-sg116
+p323
+sg110
 I00
 I00
-sS'commit'
-p417
-S'0.9.6'
-p418
-sa(dp419
+sg111
+Nsa(dp324
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9604'
-p420
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp421
+sg67
+I00
+sg68
+Nsg69
+(lp325
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p422
-(lp423
+I00
+sg72
 S'VLC-2.2@27f4799'
 S'VLC-2.2@27f4799'
-p424
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p326
+sg74
+Nsg75
+(lp327
+sg77
+g19
+sg78
 S'0.9.6'
 S'0.9.6'
-p425
-sS'build'
-p426
-S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p427
-sg86
-g87
-sg88
-I00
-sS'subdir'
-p428
+p328
+sg80
 S'vlc-android'
 S'vlc-android'
-p429
-sS'forcevercode'
-p430
+p329
+sg82
+(lp330
+sg84
+S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
+p331
+sg86
+I9604
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp332
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.6'
+p333
+sg99
+(lp334
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p431
-(lp432
-S'no'
-p433
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p434
+sg102
+Nsg103
+Nsg104
+(lp335
+sg106
+(lp336
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p435
-sg116
+p337
+sg110
 I00
 I00
-sS'commit'
-p436
-S'0.9.6'
-p437
-sa(dp438
+sg111
+Nsa(dp338
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9702'
-p439
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp440
+sg67
+I00
+sg68
+Nsg69
+(lp339
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p441
-(lp442
+I00
+sg72
 S'VLC-2.2@9e1c6ff'
 S'VLC-2.2@9e1c6ff'
-p443
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p340
+sg74
+Nsg75
+(lp341
+sg77
+g19
+sg78
 S'0.9.7'
 S'0.9.7'
-p444
-sS'build'
-p445
+p342
+sg80
+S'vlc-android'
+p343
+sg82
+(lp344
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p446
+p345
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p447
-S'vlc-android'
-p448
-sS'forcevercode'
-p449
+I9702
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp346
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.7'
+p347
+sg99
+(lp348
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p450
-(lp451
-S'no'
-p452
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p453
+sg102
+Nsg103
+Nsg104
+(lp349
+sg106
+(lp350
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p454
-sg116
+p351
+sg110
 I00
 I00
-sS'commit'
-p455
-S'0.9.7'
-p456
-sa(dp457
+sg111
+Nsa(dp352
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9704'
-p458
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp459
+sg67
+I00
+sg68
+Nsg69
+(lp353
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p460
-(lp461
+I00
+sg72
 S'VLC-2.2@9e1c6ff'
 S'VLC-2.2@9e1c6ff'
-p462
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p354
+sg74
+Nsg75
+(lp355
+sg77
+g19
+sg78
 S'0.9.7'
 S'0.9.7'
-p463
-sS'build'
-p464
+p356
+sg80
+S'vlc-android'
+p357
+sg82
+(lp358
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p465
+p359
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p466
-S'vlc-android'
-p467
-sS'forcevercode'
-p468
+I9704
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp360
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.7'
+p361
+sg99
+(lp362
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p469
-(lp470
-S'no'
-p471
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p472
+sg102
+Nsg103
+Nsg104
+(lp363
+sg106
+(lp364
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p473
-sg116
+p365
+sg110
 I00
 I00
-sS'commit'
-p474
-S'0.9.7'
-p475
-sa(dp476
+sg111
+Nsa(dp366
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9711'
-p477
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp478
+sg67
+I00
+sg68
+Nsg69
+(lp367
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p479
-(lp480
+I00
+sg72
 S'VLC-2.2@57cd36b'
 S'VLC-2.2@57cd36b'
-p481
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p368
+sg74
+Nsg75
+(lp369
+sg77
+g19
+sg78
 S'0.9.7.1'
 S'0.9.7.1'
-p482
-sS'build'
-p483
+p370
+sg80
+S'vlc-android'
+p371
+sg82
+(lp372
+sg84
 S'cd ../ && ANDROID_ABI=mips ./compile.sh release'
 S'cd ../ && ANDROID_ABI=mips ./compile.sh release'
-p484
+p373
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p485
-S'vlc-android'
-p486
-sS'forcevercode'
-p487
+I9711
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp374
+sg90
+Nsg95
 I00
 I00
-sS'disable'
-p488
+sg96
 S'build fails'
 S'build fails'
-p489
+p375
+sg97
+S'0.9.7.1'
+p376
+sg99
+(lp377
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p490
-(lp491
-S'no'
-p492
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p493
+sg102
+Nsg103
+Nsg104
+(lp378
+sg106
+(lp379
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p494
-sg116
+p380
+sg110
 I00
 I00
-sS'commit'
-p495
-S'0.9.7.1'
-p496
-sa(dp497
+sg111
+Nsa(dp381
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9712'
-p498
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp499
+sg67
+I00
+sg68
+Nsg69
+(lp382
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p500
-(lp501
+I00
+sg72
 S'VLC-2.2@57cd36b'
 S'VLC-2.2@57cd36b'
-p502
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p383
+sg74
+Nsg75
+(lp384
+sg77
+g19
+sg78
 S'0.9.7.1'
 S'0.9.7.1'
-p503
-sS'build'
-p504
+p385
+sg80
+S'vlc-android'
+p386
+sg82
+(lp387
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p505
+p388
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p506
-S'vlc-android'
-p507
-sS'forcevercode'
-p508
+I9712
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp389
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.7.1'
+p390
+sg99
+(lp391
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p509
-(lp510
-S'no'
-p511
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p512
+sg102
+Nsg103
+Nsg104
+(lp392
+sg106
+(lp393
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p513
-sg116
+p394
+sg110
 I00
 I00
-sS'commit'
-p514
-S'0.9.7.1'
-p515
-sa(dp516
+sg111
+Nsa(dp395
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9714'
-p517
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp518
+sg67
+I00
+sg68
+Nsg69
+(lp396
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p519
-(lp520
+I00
+sg72
 S'VLC-2.2@57cd36b'
 S'VLC-2.2@57cd36b'
-p521
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p397
+sg74
+Nsg75
+(lp398
+sg77
+g19
+sg78
 S'0.9.7.1'
 S'0.9.7.1'
-p522
-sS'build'
-p523
+p399
+sg80
+S'vlc-android'
+p400
+sg82
+(lp401
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p524
+p402
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p525
-S'vlc-android'
-p526
-sS'forcevercode'
-p527
+I9714
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp403
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.7.1'
+p404
+sg99
+(lp405
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p528
-(lp529
-S'no'
-p530
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p531
+sg102
+Nsg103
+Nsg104
+(lp406
+sg106
+(lp407
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p532
-sg116
+p408
+sg110
 I00
 I00
-sS'commit'
-p533
-S'0.9.7.1'
-p534
-sa(dp535
+sg111
+Nsa(dp409
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9802'
-p536
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp537
+sg68
+Nsg69
+(lp410
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p538
-(lp539
+I00
+sg72
 S'VLC-2.2@f2db364'
 S'VLC-2.2@f2db364'
-p540
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p411
+sg74
+Nsg75
+(lp412
+sg77
+g19
+sg78
 S'0.9.8'
 S'0.9.8'
-p541
-sS'build'
-p542
+p413
+sg80
+S'vlc-android'
+p414
+sg82
+(lp415
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p543
+p416
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p544
-S'vlc-android'
-p545
-sS'forcevercode'
-p546
+I9802
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp417
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.8'
+p418
+sg99
+(lp419
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p547
-(lp548
-S'no'
-p549
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p550
+sg102
+Nsg103
+Nsg104
+(lp420
+sg106
+(lp421
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p551
-sg116
+p422
+sg110
 I00
 I00
-sS'commit'
-p552
-S'0.9.8'
-p553
-sa(dp554
+sg111
+Nsa(dp423
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9803'
-p555
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp556
+sg67
+I00
+sg68
+Nsg69
+(lp424
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p557
-(lp558
+I00
+sg72
 S'VLC-2.2@f2db364'
 S'VLC-2.2@f2db364'
-p559
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p425
+sg74
+Nsg75
+(lp426
+sg77
+g19
+sg78
 S'0.9.8'
 S'0.9.8'
-p560
-sS'build'
-p561
+p427
+sg80
+S'vlc-android'
+p428
+sg82
+(lp429
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p562
+p430
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p563
-S'vlc-android'
-p564
-sS'forcevercode'
-p565
+I9803
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp431
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.8'
+p432
+sg99
+(lp433
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p566
-(lp567
-S'no'
-p568
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p569
+sg102
+Nsg103
+Nsg104
+(lp434
+sg106
+(lp435
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p570
-sg116
+p436
+sg110
 I00
 I00
-sS'commit'
-p571
-S'0.9.8'
-p572
-sa(dp573
+sg111
+Nsa(dp437
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9804'
-p574
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp575
+sg67
+I00
+sg68
+Nsg69
+(lp438
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p576
-(lp577
+I00
+sg72
 S'VLC-2.2@f2db364'
 S'VLC-2.2@f2db364'
-p578
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p439
+sg74
+Nsg75
+(lp440
+sg77
+g19
+sg78
 S'0.9.8'
 S'0.9.8'
-p579
-sS'build'
-p580
+p441
+sg80
+S'vlc-android'
+p442
+sg82
+(lp443
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p581
+p444
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p582
-S'vlc-android'
-p583
-sS'forcevercode'
-p584
+I9804
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp445
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.8'
+p446
+sg99
+(lp447
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p585
-(lp586
-S'no'
-p587
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p588
+sg102
+Nsg103
+Nsg104
+(lp448
+sg106
+(lp449
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p589
-sg116
+p450
+sg110
 I00
 I00
-sS'commit'
-p590
-S'0.9.8'
-p591
-sa(dp592
+sg111
+Nsa(dp451
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9902'
-p593
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp594
+sg67
+I00
+sg68
+Nsg69
+(lp452
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p595
-(lp596
+I00
+sg72
 S'VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1'
 S'VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1'
-p597
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p453
+sg74
+Nsg75
+(lp454
+sg77
+g19
+sg78
 S'0.9.9'
 S'0.9.9'
-p598
-sS'build'
-p599
+p455
+sg80
+S'vlc-android'
+p456
+sg82
+(lp457
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p600
+p458
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p601
-S'vlc-android'
-p602
-sS'forcevercode'
-p603
+I9902
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp459
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.9'
+p460
+sg99
+(lp461
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p604
-(lp605
-S'no'
-p606
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p607
+sg102
+Nsg103
+Nsg104
+(lp462
+sg106
+(lp463
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p608
-sg116
+p464
+sg110
 I00
 I00
-sS'commit'
-p609
-S'0.9.9'
-p610
-sa(dp611
+sg111
+Nsa(dp465
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9903'
-p612
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp613
+sg68
+Nsg69
+(lp466
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p614
-(lp615
+I00
+sg72
 S'VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1'
 S'VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1'
-p616
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p467
+sg74
+Nsg75
+(lp468
+sg77
+g19
+sg78
 S'0.9.9'
 S'0.9.9'
-p617
-sS'build'
-p618
+p469
+sg80
+S'vlc-android'
+p470
+sg82
+(lp471
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p619
+p472
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p620
-S'vlc-android'
-p621
-sS'forcevercode'
-p622
+I9903
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp473
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.9'
+p474
+sg99
+(lp475
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p623
-(lp624
-S'no'
-p625
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p626
+sg102
+Nsg103
+Nsg104
+(lp476
+sg106
+(lp477
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p627
-sg116
+p478
+sg110
 I00
 I00
-sS'commit'
-p628
-S'0.9.9'
-p629
-sa(dp630
+sg111
+Nsa(dp479
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'9904'
-p631
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp632
+sg68
+Nsg69
+(lp480
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p633
-(lp634
+I00
+sg72
 S'VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1'
 S'VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1'
-p635
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p481
+sg74
+Nsg75
+(lp482
+sg77
+g19
+sg78
 S'0.9.9'
 S'0.9.9'
-p636
-sS'build'
-p637
+p483
+sg80
+S'vlc-android'
+p484
+sg82
+(lp485
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p638
+p486
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p639
-S'vlc-android'
-p640
-sS'forcevercode'
-p641
+I9904
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp487
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.9'
+p488
+sg99
+(lp489
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p642
-(lp643
-S'no'
-p644
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p645
+sg102
+Nsg103
+Nsg104
+(lp490
+sg106
+(lp491
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p646
-sg116
+p492
+sg110
 I00
 I00
-sS'commit'
-p647
-S'0.9.9'
-p648
-sa(dp649
+sg111
+Nsa(dp493
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'10002'
-p650
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp651
+sg67
+I00
+sg68
+Nsg69
+(lp494
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p652
-(lp653
+I00
+sg72
 S'VLC-2.2@e33e5de'
 S'VLC-2.2@e33e5de'
-p654
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p495
+sg74
+Nsg75
+(lp496
+sg77
+g19
+sg78
 S'0.9.10'
 S'0.9.10'
-p655
-sS'build'
-p656
+p497
+sg80
+S'vlc-android'
+p498
+sg82
+(lp499
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p657
+p500
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p658
-S'vlc-android'
-p659
-sS'forcevercode'
-p660
+I10002
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp501
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.10'
+p502
+sg99
+(lp503
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p661
-(lp662
-S'no'
-p663
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p664
+sg102
+Nsg103
+Nsg104
+(lp504
+sg106
+(lp505
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p665
-sg116
+p506
+sg110
 I00
 I00
-sS'commit'
-p666
-S'0.9.10'
-p667
-sa(dp668
+sg111
+Nsa(dp507
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'10003'
-p669
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp670
+sg68
+Nsg69
+(lp508
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p671
-(lp672
+I00
+sg72
 S'VLC-2.2@e33e5de'
 S'VLC-2.2@e33e5de'
-p673
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p509
+sg74
+Nsg75
+(lp510
+sg77
+g19
+sg78
 S'0.9.10'
 S'0.9.10'
-p674
-sS'build'
-p675
+p511
+sg80
+S'vlc-android'
+p512
+sg82
+(lp513
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p676
+p514
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p677
-S'vlc-android'
-p678
-sS'forcevercode'
-p679
+I10003
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp515
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.10'
+p516
+sg99
+(lp517
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p680
-(lp681
-S'no'
-p682
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p683
+sg102
+Nsg103
+Nsg104
+(lp518
+sg106
+(lp519
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p684
-sg116
+p520
+sg110
 I00
 I00
-sS'commit'
-p685
-S'0.9.10'
-p686
-sa(dp687
+sg111
+Nsa(dp521
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'10004'
-p688
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp689
+sg68
+Nsg69
+(lp522
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p690
-(lp691
+I00
+sg72
 S'VLC-2.2@e33e5de'
 S'VLC-2.2@e33e5de'
-p692
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p523
+sg74
+Nsg75
+(lp524
+sg77
+g19
+sg78
 S'0.9.10'
 S'0.9.10'
-p693
-sS'build'
-p694
+p525
+sg80
+S'vlc-android'
+p526
+sg82
+(lp527
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p695
+p528
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p696
-S'vlc-android'
-p697
-sS'forcevercode'
-p698
+I10004
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp529
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'0.9.10'
+p530
+sg99
+(lp531
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p699
-(lp700
-S'no'
-p701
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p702
+sg102
+Nsg103
+Nsg104
+(lp532
+sg106
+(lp533
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p703
-sg116
+p534
+sg110
 I00
 I00
-sS'commit'
-p704
-S'0.9.10'
-p705
-sa(dp706
+sg111
+Nsa(dp535
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'10006'
-p707
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp708
+sg67
+I00
+sg68
+Nsg69
+(lp536
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p709
-(lp710
+I00
+sg72
 S'VLC-2.2@036010e'
 S'VLC-2.2@036010e'
-p711
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p537
+sg74
+Nsg75
+(lp538
+sg77
+g19
+sg78
 S'1.0.0'
 S'1.0.0'
-p712
-sS'build'
-p713
+p539
+sg80
+S'vlc-android'
+p540
+sg82
+(lp541
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p714
+p542
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p715
-S'vlc-android'
-p716
-sS'forcevercode'
-p717
+I10006
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp543
+sg90
+Nsg95
 I00
 I00
-sS'disable'
-p718
+sg96
 S"doesn't build"
 S"doesn't build"
-p719
+p544
+sg97
+S'1.0.0'
+p545
+sg99
+(lp546
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p720
-(lp721
-S'no'
-p722
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p723
+sg102
+Nsg103
+Nsg104
+(lp547
+sg106
+(lp548
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p724
-sg116
+p549
+sg110
 I00
 I00
-sS'commit'
-p725
-S'1.0.0'
-p726
-sa(dp727
+sg111
+Nsa(dp550
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'10007'
-p728
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp729
+sg67
+I00
+sg68
+Nsg69
+(lp551
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p730
-(lp731
+I00
+sg72
 S'VLC-2.2@036010e'
 S'VLC-2.2@036010e'
-p732
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p552
+sg74
+Nsg75
+(lp553
+sg77
+g19
+sg78
 S'1.0.0'
 S'1.0.0'
-p733
-sS'build'
-p734
+p554
+sg80
+S'vlc-android'
+p555
+sg82
+(lp556
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p735
+p557
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p736
-S'vlc-android'
-p737
-sS'forcevercode'
-p738
+I10007
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp558
+sg90
+Nsg95
 I00
 I00
-sS'disable'
-p739
+sg96
 S"doesn't build"
 S"doesn't build"
-p740
+p559
+sg97
+S'1.0.0'
+p560
+sg99
+(lp561
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p741
-(lp742
-S'no'
-p743
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p744
+sg102
+Nsg103
+Nsg104
+(lp562
+sg106
+(lp563
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p745
-sg116
+p564
+sg110
 I00
 I00
-sS'commit'
-p746
-S'1.0.0'
-p747
-sa(dp748
+sg111
+Nsa(dp565
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'10008'
-p749
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp750
+sg68
+Nsg69
+(lp566
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p751
-(lp752
+I00
+sg72
 S'VLC-2.2@036010e'
 S'VLC-2.2@036010e'
-p753
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p567
+sg74
+Nsg75
+(lp568
+sg77
+g19
+sg78
 S'1.0.0'
 S'1.0.0'
-p754
-sS'build'
-p755
+p569
+sg80
+S'vlc-android'
+p570
+sg82
+(lp571
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p756
+p572
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p757
-S'vlc-android'
-p758
-sS'forcevercode'
-p759
+I10008
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp573
+sg90
+Nsg95
 I00
 I00
-sS'disable'
-p760
+sg96
 S"doesn't build"
 S"doesn't build"
-p761
+p574
+sg97
+S'1.0.0'
+p575
+sg99
+(lp576
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p762
-(lp763
-S'no'
-p764
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p765
+sg102
+Nsg103
+Nsg104
+(lp577
+sg106
+(lp578
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p766
-sg116
+p579
+sg110
 I00
 I00
-sS'commit'
-p767
-S'1.0.0'
-p768
-sa(dp769
+sg111
+Nsa(dp580
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'10102'
-p770
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp771
+sg67
+I00
+sg68
+Nsg69
+(lp581
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p772
-(lp773
+I00
+sg72
 S'VLC-2.2@59409d5'
 S'VLC-2.2@59409d5'
-p774
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p582
+sg74
+Nsg75
+(lp583
+sg77
+g19
+sg78
 S'1.0.1'
 S'1.0.1'
-p775
-sS'build'
-p776
+p584
+sg80
+S'vlc-android'
+p585
+sg82
+(lp586
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p777
+p587
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p778
-S'vlc-android'
-p779
-sS'forcevercode'
-p780
+I10102
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp588
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'1.0.1'
+p589
+sg99
+(lp590
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p781
-(lp782
-S'no'
-p783
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p784
+sg102
+Nsg103
+Nsg104
+(lp591
+sg106
+(lp592
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p785
-sg116
+p593
+sg110
 I00
 I00
-sS'commit'
-p786
-S'1.0.1'
-p787
-sa(dp788
+sg111
+Nsa(dp594
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'10103'
-p789
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp790
+sg68
+Nsg69
+(lp595
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p791
-(lp792
+I00
+sg72
 S'VLC-2.2@59409d5'
 S'VLC-2.2@59409d5'
-p793
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p596
+sg74
+Nsg75
+(lp597
+sg77
+g19
+sg78
 S'1.0.1'
 S'1.0.1'
-p794
-sS'build'
-p795
+p598
+sg80
+S'vlc-android'
+p599
+sg82
+(lp600
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p796
+p601
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p797
-S'vlc-android'
-p798
-sS'forcevercode'
-p799
+I10103
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp602
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'1.0.1'
+p603
+sg99
+(lp604
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p800
-(lp801
-S'no'
-p802
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p803
+sg102
+Nsg103
+Nsg104
+(lp605
+sg106
+(lp606
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p804
-sg116
+p607
+sg110
 I00
 I00
-sS'commit'
-p805
-S'1.0.1'
-p806
-sa(dp807
+sg111
+Nsa(dp608
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'10104'
-p808
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp809
+sg67
+I00
+sg68
+Nsg69
+(lp609
 sg71
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p810
-(lp811
+I00
+sg72
 S'VLC-2.2@59409d5'
 S'VLC-2.2@59409d5'
-p812
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p610
+sg74
+Nsg75
+(lp611
+sg77
+g19
+sg78
 S'1.0.1'
 S'1.0.1'
-p813
-sS'build'
-p814
+p612
+sg80
+S'vlc-android'
+p613
+sg82
+(lp614
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p815
+p615
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p816
-S'vlc-android'
-p817
-sS'forcevercode'
-p818
+I10104
+sg87
 I01
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp616
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'1.0.1'
+p617
+sg99
+(lp618
 sg101
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p819
-(lp820
-S'no'
-p821
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
 I00
-sS'prebuild'
-p822
+sg102
+Nsg103
+Nsg104
+(lp619
+sg106
+(lp620
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p823
-sg116
+p621
+sg110
 I00
 I00
-sS'commit'
-p824
-S'1.0.1'
-p825
-sa(dp826
+sg111
+Nsa(dp622
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1010303'
-p827
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp828
+sg67
+I00
+sg68
+Nsg69
+(lp623
 sg71
 sg71
-g72
-sS'gradle'
-p829
-(lp830
 S'VanillaARMv6fpu'
 S'VanillaARMv6fpu'
-p831
-asS'srclibs'
-p832
-(lp833
+p624
+sg72
 S'VLC@a9b19e4'
 S'VLC@a9b19e4'
-p834
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p625
+sg74
+Nsg75
+(lp626
+sg77
+g19
+sg78
 S'1.1.3'
 S'1.1.3'
-p835
-sS'build'
-p836
+p627
+sg80
+S'vlc-android'
+p628
+sg82
+(lp629
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p837
+p630
 sg86
 sg86
-g87
+I1010303
+sg87
+I00
 sg88
 sg88
+(lp631
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p838
-S'vlc-android'
-p839
-sS'forcevercode'
-p840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.3'
+p632
 sg99
 sg99
-I00
-sg100
-I00
+(lp633
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p841
-(lp842
-S'no'
-p843
-asS'ndk'
-p844
 S'r10d'
 S'r10d'
-p845
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p846
+p634
+sg103
+Nsg104
+(lp635
+sg106
+(lp636
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p847
-sg116
+p637
+sg110
 I00
 I00
-sS'commit'
-p848
-S'1.1.3'
-p849
-sa(dp850
+sg111
+Nsa(dp638
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1010304'
-p851
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp852
+sg68
+Nsg69
+(lp639
 sg71
 sg71
-g72
-sS'gradle'
-p853
-(lp854
 S'VanillaARMv7'
 S'VanillaARMv7'
-p855
-asS'srclibs'
-p856
-(lp857
+p640
+sg72
 S'VLC@a9b19e4'
 S'VLC@a9b19e4'
-p858
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p641
+sg74
+Nsg75
+(lp642
+sg77
+g19
+sg78
 S'1.1.3'
 S'1.1.3'
-p859
-sS'build'
-p860
+p643
+sg80
+S'vlc-android'
+p644
+sg82
+(lp645
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p861
+p646
 sg86
 sg86
-g87
+I1010304
+sg87
+I00
 sg88
 sg88
+(lp647
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p862
-S'vlc-android'
-p863
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.3'
+p648
 sg99
 sg99
-I00
-sg100
-I00
+(lp649
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p864
-(lp865
-S'no'
-p866
-asS'ndk'
-p867
 S'r10d'
 S'r10d'
-p868
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p869
+p650
+sg103
+Nsg104
+(lp651
+sg106
+(lp652
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p870
-sg116
+p653
+sg110
 I00
 I00
-sS'commit'
-p871
-S'1.1.3'
-p872
-sa(dp873
+sg111
+Nsa(dp654
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1010305'
-p874
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp875
+sg67
+I00
+sg68
+Nsg69
+(lp655
 sg71
 sg71
-g72
-sS'gradle'
-p876
-(lp877
 S'VanillaX86'
 S'VanillaX86'
-p878
-asS'srclibs'
-p879
-(lp880
+p656
+sg72
 S'VLC@a9b19e4'
 S'VLC@a9b19e4'
-p881
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p657
+sg74
+Nsg75
+(lp658
+sg77
+g19
+sg78
 S'1.1.3'
 S'1.1.3'
-p882
-sS'build'
-p883
+p659
+sg80
+S'vlc-android'
+p660
+sg82
+(lp661
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
 S'cd ../ && ./compile.sh -a "x86" --release'
-p884
+p662
 sg86
 sg86
-g87
+I1010305
+sg87
+I00
 sg88
 sg88
+(lp663
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p885
-S'vlc-android'
-p886
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.3'
+p664
 sg99
 sg99
-I00
-sg100
-I00
+(lp665
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p887
-(lp888
-S'no'
-p889
-asS'ndk'
-p890
 S'r10d'
 S'r10d'
-p891
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p892
+p666
+sg103
+Nsg104
+(lp667
+sg106
+(lp668
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p893
-sg116
+p669
+sg110
 I00
 I00
-sS'commit'
-p894
-S'1.1.3'
-p895
-sa(dp896
+sg111
+Nsa(dp670
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1010503'
-p897
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp898
+sg67
+I00
+sg68
+Nsg69
+(lp671
 sg71
 sg71
-g72
-sS'gradle'
-p899
-(lp900
 S'VanillaARMv6fpu'
 S'VanillaARMv6fpu'
-p901
-asS'srclibs'
-p902
-(lp903
+p672
+sg72
 S'VLC@e6b4585'
 S'VLC@e6b4585'
-p904
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p673
+sg74
+Nsg75
+(lp674
+sg77
+g19
+sg78
 S'1.1.5'
 S'1.1.5'
-p905
-sS'build'
-p906
+p675
+sg80
+S'vlc-android'
+p676
+sg82
+(lp677
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p907
+p678
 sg86
 sg86
-g87
+I1010503
+sg87
+I00
 sg88
 sg88
+(lp679
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p908
-S'vlc-android'
-p909
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.5'
+p680
 sg99
 sg99
-I00
-sg100
-I00
+(lp681
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p910
-(lp911
-S'no'
-p912
-asS'ndk'
-p913
 S'r10d'
 S'r10d'
-p914
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p915
+p682
+sg103
+Nsg104
+(lp683
+sg106
+(lp684
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p916
-sg116
+p685
+sg110
 I00
 I00
-sS'commit'
-p917
-S'1.1.5'
-p918
-sa(dp919
+sg111
+Nsa(dp686
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1010504'
-p920
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp921
+sg67
+I00
+sg68
+Nsg69
+(lp687
 sg71
 sg71
-g72
-sS'gradle'
-p922
-(lp923
 S'VanillaARMv7'
 S'VanillaARMv7'
-p924
-asS'srclibs'
-p925
-(lp926
+p688
+sg72
 S'VLC@e6b4585'
 S'VLC@e6b4585'
-p927
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p689
+sg74
+Nsg75
+(lp690
+sg77
+g19
+sg78
 S'1.1.5'
 S'1.1.5'
-p928
-sS'build'
-p929
+p691
+sg80
+S'vlc-android'
+p692
+sg82
+(lp693
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p930
+p694
 sg86
 sg86
-g87
+I1010504
+sg87
+I00
 sg88
 sg88
+(lp695
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p931
-S'vlc-android'
-p932
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.5'
+p696
 sg99
 sg99
-I00
-sg100
-I00
+(lp697
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p933
-(lp934
-S'no'
-p935
-asS'ndk'
-p936
 S'r10d'
 S'r10d'
-p937
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p938
+p698
+sg103
+Nsg104
+(lp699
+sg106
+(lp700
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p939
-sg116
+p701
+sg110
 I00
 I00
-sS'commit'
-p940
-S'1.1.5'
-p941
-sa(dp942
+sg111
+Nsa(dp702
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1010505'
-p943
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp944
+sg68
+Nsg69
+(lp703
 sg71
 sg71
-g72
-sS'gradle'
-p945
-(lp946
 S'VanillaX86'
 S'VanillaX86'
-p947
-asS'srclibs'
-p948
-(lp949
+p704
+sg72
 S'VLC@e6b4585'
 S'VLC@e6b4585'
-p950
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p705
+sg74
+Nsg75
+(lp706
+sg77
+g19
+sg78
 S'1.1.5'
 S'1.1.5'
-p951
-sS'build'
-p952
+p707
+sg80
+S'vlc-android'
+p708
+sg82
+(lp709
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
 S'cd ../ && ./compile.sh -a "x86" --release'
-p953
+p710
 sg86
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p954
-S'vlc-android'
-p955
-sg840
+I1010505
+sg87
 I00
 I00
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp711
+sg90
+Nsg95
 I00
 I00
-sg100
+sg96
 I00
 I00
+sg97
+S'1.1.5'
+p712
+sg99
+(lp713
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p956
-(lp957
-S'no'
-p958
-asS'ndk'
-p959
 S'r10d'
 S'r10d'
-p960
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p961
+p714
+sg103
+Nsg104
+(lp715
+sg106
+(lp716
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p962
-sg116
+p717
+sg110
 I00
 I00
-sS'commit'
-p963
-S'1.1.5'
-p964
-sa(dp965
+sg111
+Nsa(dp718
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1010603'
-p966
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp967
+sg67
+I00
+sg68
+Nsg69
+(lp719
 sg71
 sg71
-g72
-sS'gradle'
-p968
-(lp969
 S'VanillaARMv6fpu'
 S'VanillaARMv6fpu'
-p970
-asS'srclibs'
-p971
-(lp972
+p720
+sg72
 S'VLC@551b670'
 S'VLC@551b670'
-p973
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p721
+sg74
+Nsg75
+(lp722
+sg77
+g19
+sg78
 S'1.1.6'
 S'1.1.6'
-p974
-sS'build'
-p975
+p723
+sg80
+S'vlc-android'
+p724
+sg82
+(lp725
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p976
+p726
 sg86
 sg86
-g87
+I1010603
+sg87
+I00
 sg88
 sg88
+(lp727
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p977
-S'vlc-android'
-p978
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.6'
+p728
 sg99
 sg99
-I00
-sg100
-I00
+(lp729
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p979
-(lp980
-S'no'
-p981
-asS'ndk'
-p982
 S'r10d'
 S'r10d'
-p983
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p984
+p730
+sg103
+Nsg104
+(lp731
+sg106
+(lp732
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p985
-sg116
+p733
+sg110
 I00
 I00
-sS'commit'
-p986
-S'1.1.6'
-p987
-sa(dp988
+sg111
+Nsa(dp734
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1010604'
-p989
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp990
+sg67
+I00
+sg68
+Nsg69
+(lp735
 sg71
 sg71
-g72
-sS'gradle'
-p991
-(lp992
 S'VanillaARMv7'
 S'VanillaARMv7'
-p993
-asS'srclibs'
-p994
-(lp995
+p736
+sg72
 S'VLC@551b670'
 S'VLC@551b670'
-p996
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p737
+sg74
+Nsg75
+(lp738
+sg77
+g19
+sg78
 S'1.1.6'
 S'1.1.6'
-p997
-sS'build'
-p998
+p739
+sg80
+S'vlc-android'
+p740
+sg82
+(lp741
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p999
+p742
 sg86
 sg86
-g87
+I1010604
+sg87
+I00
 sg88
 sg88
+(lp743
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1000
-S'vlc-android'
-p1001
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.6'
+p744
 sg99
 sg99
-I00
-sg100
-I00
+(lp745
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1002
-(lp1003
-S'no'
-p1004
-asS'ndk'
-p1005
 S'r10d'
 S'r10d'
-p1006
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1007
+p746
+sg103
+Nsg104
+(lp747
+sg106
+(lp748
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1008
-sg116
+p749
+sg110
 I00
 I00
-sS'commit'
-p1009
-S'1.1.6'
-p1010
-sa(dp1011
+sg111
+Nsa(dp750
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1010605'
-p1012
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1013
+sg67
+I00
+sg68
+Nsg69
+(lp751
 sg71
 sg71
-g72
-sS'gradle'
-p1014
-(lp1015
 S'VanillaX86'
 S'VanillaX86'
-p1016
-asS'srclibs'
-p1017
-(lp1018
+p752
+sg72
 S'VLC@551b670'
 S'VLC@551b670'
-p1019
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p753
+sg74
+Nsg75
+(lp754
+sg77
+g19
+sg78
 S'1.1.6'
 S'1.1.6'
-p1020
-sS'build'
-p1021
+p755
+sg80
+S'vlc-android'
+p756
+sg82
+(lp757
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1022
+p758
 sg86
 sg86
-g87
+I1010605
+sg87
+I00
 sg88
 sg88
+(lp759
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1023
-S'vlc-android'
-p1024
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.6'
+p760
 sg99
 sg99
-I00
-sg100
-I00
+(lp761
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1025
-(lp1026
-S'no'
-p1027
-asS'ndk'
-p1028
 S'r10d'
 S'r10d'
-p1029
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1030
+p762
+sg103
+Nsg104
+(lp763
+sg106
+(lp764
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1031
-sg116
+p765
+sg110
 I00
 I00
-sS'commit'
-p1032
-S'1.1.6'
-p1033
-sa(dp1034
+sg111
+Nsa(dp766
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020003'
-p1035
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1036
+sg67
+I00
+sg68
+Nsg69
+(lp767
 sg71
 sg71
-g72
-sS'gradle'
-p1037
-(lp1038
 S'VanillaARMv6fpu'
 S'VanillaARMv6fpu'
-p1039
-asS'srclibs'
-p1040
-(lp1041
+p768
+sg72
 S'VLC@23c8d86'
 S'VLC@23c8d86'
-p1042
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p769
+sg74
+Nsg75
+(lp770
+sg77
+g19
+sg78
 S'1.2.0'
 S'1.2.0'
-p1043
-sS'build'
-p1044
+p771
+sg80
+S'vlc-android'
+p772
+sg82
+(lp773
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1045
+p774
 sg86
 sg86
-g87
+I1020003
+sg87
+I00
 sg88
 sg88
+(lp775
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1046
-S'vlc-android'
-p1047
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.0'
+p776
 sg99
 sg99
-I00
-sg100
-I00
+(lp777
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1048
-(lp1049
-S'no'
-p1050
-asS'ndk'
-p1051
 S'r10d'
 S'r10d'
-p1052
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1053
+p778
+sg103
+Nsg104
+(lp779
+sg106
+(lp780
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1054
-sg116
+p781
+sg110
 I00
 I00
-sS'commit'
-p1055
-S'1.2.0'
-p1056
-sa(dp1057
+sg111
+Nsa(dp782
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020004'
-p1058
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp1059
+sg68
+Nsg69
+(lp783
 sg71
 sg71
-g72
-sS'gradle'
-p1060
-(lp1061
 S'VanillaARMv7'
 S'VanillaARMv7'
-p1062
-asS'srclibs'
-p1063
-(lp1064
+p784
+sg72
 S'VLC@23c8d86'
 S'VLC@23c8d86'
-p1065
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p785
+sg74
+Nsg75
+(lp786
+sg77
+g19
+sg78
 S'1.2.0'
 S'1.2.0'
-p1066
-sS'build'
-p1067
+p787
+sg80
+S'vlc-android'
+p788
+sg82
+(lp789
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1068
+p790
 sg86
 sg86
-g87
+I1020004
+sg87
+I00
 sg88
 sg88
+(lp791
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1069
-S'vlc-android'
-p1070
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.0'
+p792
 sg99
 sg99
-I00
-sg100
-I00
+(lp793
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1071
-(lp1072
-S'no'
-p1073
-asS'ndk'
-p1074
 S'r10d'
 S'r10d'
-p1075
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1076
+p794
+sg103
+Nsg104
+(lp795
+sg106
+(lp796
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1077
-sg116
+p797
+sg110
 I00
 I00
-sS'commit'
-p1078
-S'1.2.0'
-p1079
-sa(dp1080
+sg111
+Nsa(dp798
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020005'
-p1081
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp1082
+sg68
+Nsg69
+(lp799
 sg71
 sg71
-g72
-sS'gradle'
-p1083
-(lp1084
 S'VanillaX86'
 S'VanillaX86'
-p1085
-asS'srclibs'
-p1086
-(lp1087
+p800
+sg72
 S'VLC@23c8d86'
 S'VLC@23c8d86'
-p1088
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p801
+sg74
+Nsg75
+(lp802
+sg77
+g19
+sg78
 S'1.2.0'
 S'1.2.0'
-p1089
-sS'build'
-p1090
+p803
+sg80
+S'vlc-android'
+p804
+sg82
+(lp805
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1091
+p806
 sg86
 sg86
-g87
+I1020005
+sg87
+I00
 sg88
 sg88
+(lp807
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1092
-S'vlc-android'
-p1093
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.0'
+p808
 sg99
 sg99
-I00
-sg100
-I00
+(lp809
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1094
-(lp1095
-S'no'
-p1096
-asS'ndk'
-p1097
 S'r10d'
 S'r10d'
-p1098
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1099
+p810
+sg103
+Nsg104
+(lp811
+sg106
+(lp812
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1100
-sg116
+p813
+sg110
 I00
 I00
-sS'commit'
-p1101
-S'1.2.0'
-p1102
-sa(dp1103
+sg111
+Nsa(dp814
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020103'
-p1104
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1105
+sg67
+I00
+sg68
+Nsg69
+(lp815
 sg71
 sg71
-g72
-sS'gradle'
-p1106
-(lp1107
 S'VanillaARMv6fpu'
 S'VanillaARMv6fpu'
-p1108
-asS'srclibs'
-p1109
-(lp1110
+p816
+sg72
 S'VLC@23c8d86'
 S'VLC@23c8d86'
-p1111
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p817
+sg74
+Nsg75
+(lp818
+sg77
+g19
+sg78
 S'1.2.1'
 S'1.2.1'
-p1112
-sS'build'
-p1113
+p819
+sg80
+S'vlc-android'
+p820
+sg82
+(lp821
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1114
+p822
 sg86
 sg86
-g87
+I1020103
+sg87
+I00
 sg88
 sg88
+(lp823
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1115
-S'vlc-android'
-p1116
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.1'
+p824
 sg99
 sg99
-I00
-sg100
-I00
+(lp825
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1117
-(lp1118
-S'no'
-p1119
-asS'ndk'
-p1120
 S'r10d'
 S'r10d'
-p1121
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1122
+p826
+sg103
+Nsg104
+(lp827
+sg106
+(lp828
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1123
-sg116
+p829
+sg110
 I00
 I00
-sS'commit'
-p1124
-S'1.2.1'
-p1125
-sa(dp1126
+sg111
+Nsa(dp830
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020104'
-p1127
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1128
+sg67
+I00
+sg68
+Nsg69
+(lp831
 sg71
 sg71
-g72
-sS'gradle'
-p1129
-(lp1130
 S'VanillaARMv7'
 S'VanillaARMv7'
-p1131
-asS'srclibs'
-p1132
-(lp1133
+p832
+sg72
 S'VLC@23c8d86'
 S'VLC@23c8d86'
-p1134
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p833
+sg74
+Nsg75
+(lp834
+sg77
+g19
+sg78
 S'1.2.1'
 S'1.2.1'
-p1135
-sS'build'
-p1136
+p835
+sg80
+S'vlc-android'
+p836
+sg82
+(lp837
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1137
+p838
 sg86
 sg86
-g87
+I1020104
+sg87
+I00
 sg88
 sg88
+(lp839
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1138
-S'vlc-android'
-p1139
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.1'
+p840
 sg99
 sg99
-I00
-sg100
-I00
+(lp841
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1140
-(lp1141
-S'no'
-p1142
-asS'ndk'
-p1143
 S'r10d'
 S'r10d'
-p1144
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1145
+p842
+sg103
+Nsg104
+(lp843
+sg106
+(lp844
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1146
-sg116
+p845
+sg110
 I00
 I00
-sS'commit'
-p1147
-S'1.2.1'
-p1148
-sa(dp1149
+sg111
+Nsa(dp846
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020105'
-p1150
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1151
+sg67
+I00
+sg68
+Nsg69
+(lp847
 sg71
 sg71
-g72
-sS'gradle'
-p1152
-(lp1153
 S'VanillaX86'
 S'VanillaX86'
-p1154
-asS'srclibs'
-p1155
-(lp1156
+p848
+sg72
 S'VLC@23c8d86'
 S'VLC@23c8d86'
-p1157
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p849
+sg74
+Nsg75
+(lp850
+sg77
+g19
+sg78
 S'1.2.1'
 S'1.2.1'
-p1158
-sS'build'
-p1159
+p851
+sg80
+S'vlc-android'
+p852
+sg82
+(lp853
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1160
+p854
 sg86
 sg86
-g87
+I1020105
+sg87
+I00
 sg88
 sg88
+(lp855
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1161
-S'vlc-android'
-p1162
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.1'
+p856
 sg99
 sg99
-I00
-sg100
-I00
+(lp857
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1163
-(lp1164
-S'no'
-p1165
-asS'ndk'
-p1166
 S'r10d'
 S'r10d'
-p1167
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1168
+p858
+sg103
+Nsg104
+(lp859
+sg106
+(lp860
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1169
-sg116
+p861
+sg110
 I00
 I00
-sS'commit'
-p1170
-S'1.2.1'
-p1171
-sa(dp1172
+sg111
+Nsa(dp862
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020203'
-p1173
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp1174
+sg68
+Nsg69
+(lp863
 sg71
 sg71
-g72
-sS'gradle'
-p1175
-(lp1176
 S'VanillaARMv6fpu'
 S'VanillaARMv6fpu'
-p1177
-asS'srclibs'
-p1178
-(lp1179
+p864
+sg72
 S'VLC@7491a5f'
 S'VLC@7491a5f'
-p1180
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p865
+sg74
+Nsg75
+(lp866
+sg77
+g19
+sg78
 S'1.2.2'
 S'1.2.2'
-p1181
-sS'build'
-p1182
+p867
+sg80
+S'vlc-android'
+p868
+sg82
+(lp869
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1183
+p870
 sg86
 sg86
-g87
+I1020203
+sg87
+I00
 sg88
 sg88
+(lp871
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1184
-S'vlc-android'
-p1185
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.2'
+p872
 sg99
 sg99
-I00
-sg100
-I00
+(lp873
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1186
-(lp1187
-S'no'
-p1188
-asS'ndk'
-p1189
 S'r10d'
 S'r10d'
-p1190
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1191
+p874
+sg103
+Nsg104
+(lp875
+sg106
+(lp876
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1192
-sg116
+p877
+sg110
 I00
 I00
-sS'commit'
-p1193
-S'1.2.2'
-p1194
-sa(dp1195
+sg111
+Nsa(dp878
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020204'
-p1196
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1197
+sg67
+I00
+sg68
+Nsg69
+(lp879
 sg71
 sg71
-g72
-sS'gradle'
-p1198
-(lp1199
 S'VanillaARMv7'
 S'VanillaARMv7'
-p1200
-asS'srclibs'
-p1201
-(lp1202
+p880
+sg72
 S'VLC@7491a5f'
 S'VLC@7491a5f'
-p1203
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p881
+sg74
+Nsg75
+(lp882
+sg77
+g19
+sg78
 S'1.2.2'
 S'1.2.2'
-p1204
-sS'build'
-p1205
+p883
+sg80
+S'vlc-android'
+p884
+sg82
+(lp885
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1206
+p886
 sg86
 sg86
-g87
+I1020204
+sg87
+I00
 sg88
 sg88
+(lp887
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1207
-S'vlc-android'
-p1208
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.2'
+p888
 sg99
 sg99
-I00
-sg100
-I00
+(lp889
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1209
-(lp1210
-S'no'
-p1211
-asS'ndk'
-p1212
 S'r10d'
 S'r10d'
-p1213
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1214
+p890
+sg103
+Nsg104
+(lp891
+sg106
+(lp892
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1215
-sg116
+p893
+sg110
 I00
 I00
-sS'commit'
-p1216
-S'1.2.2'
-p1217
-sa(dp1218
+sg111
+Nsa(dp894
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020205'
-p1219
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1220
+sg67
+I00
+sg68
+Nsg69
+(lp895
 sg71
 sg71
-g72
-sS'gradle'
-p1221
-(lp1222
 S'VanillaX86'
 S'VanillaX86'
-p1223
-asS'srclibs'
-p1224
-(lp1225
+p896
+sg72
 S'VLC@7491a5f'
 S'VLC@7491a5f'
-p1226
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p897
+sg74
+Nsg75
+(lp898
+sg77
+g19
+sg78
 S'1.2.2'
 S'1.2.2'
-p1227
-sS'build'
-p1228
+p899
+sg80
+S'vlc-android'
+p900
+sg82
+(lp901
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1229
+p902
 sg86
 sg86
-g87
+I1020205
+sg87
+I00
 sg88
 sg88
+(lp903
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1230
-S'vlc-android'
-p1231
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.2'
+p904
 sg99
 sg99
-I00
-sg100
-I00
+(lp905
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1232
-(lp1233
-S'no'
-p1234
-asS'ndk'
-p1235
 S'r10d'
 S'r10d'
-p1236
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1237
+p906
+sg103
+Nsg104
+(lp907
+sg106
+(lp908
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1238
-sg116
+p909
+sg110
 I00
 I00
-sS'commit'
-p1239
-S'1.2.2'
-p1240
-sa(dp1241
+sg111
+Nsa(dp910
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020303'
-p1242
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1243
+sg67
+I00
+sg68
+Nsg69
+(lp911
 sg71
 sg71
-g72
-sS'gradle'
-p1244
-(lp1245
 S'VanillaARMv6fpu'
 S'VanillaARMv6fpu'
-p1246
-asS'srclibs'
-p1247
-(lp1248
+p912
+sg72
 S'VLC@7491a5f'
 S'VLC@7491a5f'
-p1249
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p913
+sg74
+Nsg75
+(lp914
+sg77
+g19
+sg78
 S'1.2.3'
 S'1.2.3'
-p1250
-sS'build'
-p1251
+p915
+sg80
+S'vlc-android'
+p916
+sg82
+(lp917
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1252
+p918
 sg86
 sg86
-g87
+I1020303
+sg87
+I00
 sg88
 sg88
+(lp919
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1253
-S'vlc-android'
-p1254
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.3'
+p920
 sg99
 sg99
-I00
-sg100
-I00
+(lp921
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1255
-(lp1256
-S'no'
-p1257
-asS'ndk'
-p1258
 S'r10d'
 S'r10d'
-p1259
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1260
+p922
+sg103
+Nsg104
+(lp923
+sg106
+(lp924
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1261
-sg116
+p925
+sg110
 I00
 I00
-sS'commit'
-p1262
-S'1.2.3'
-p1263
-sa(dp1264
+sg111
+Nsa(dp926
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020304'
-p1265
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp1266
+sg68
+Nsg69
+(lp927
 sg71
 sg71
-g72
-sS'gradle'
-p1267
-(lp1268
 S'VanillaARMv7'
 S'VanillaARMv7'
-p1269
-asS'srclibs'
-p1270
-(lp1271
+p928
+sg72
 S'VLC@7491a5f'
 S'VLC@7491a5f'
-p1272
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p929
+sg74
+Nsg75
+(lp930
+sg77
+g19
+sg78
 S'1.2.3'
 S'1.2.3'
-p1273
-sS'build'
-p1274
+p931
+sg80
+S'vlc-android'
+p932
+sg82
+(lp933
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1275
+p934
 sg86
 sg86
-g87
+I1020304
+sg87
+I00
 sg88
 sg88
+(lp935
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1276
-S'vlc-android'
-p1277
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.3'
+p936
 sg99
 sg99
-I00
-sg100
-I00
+(lp937
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1278
-(lp1279
-S'no'
-p1280
-asS'ndk'
-p1281
 S'r10d'
 S'r10d'
-p1282
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1283
+p938
+sg103
+Nsg104
+(lp939
+sg106
+(lp940
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1284
-sg116
+p941
+sg110
 I00
 I00
-sS'commit'
-p1285
-S'1.2.3'
-p1286
-sa(dp1287
+sg111
+Nsa(dp942
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020305'
-p1288
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1289
+sg67
+I00
+sg68
+Nsg69
+(lp943
 sg71
 sg71
-g72
-sS'gradle'
-p1290
-(lp1291
 S'VanillaX86'
 S'VanillaX86'
-p1292
-asS'srclibs'
-p1293
-(lp1294
+p944
+sg72
 S'VLC@7491a5f'
 S'VLC@7491a5f'
-p1295
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p945
+sg74
+Nsg75
+(lp946
+sg77
+g19
+sg78
 S'1.2.3'
 S'1.2.3'
-p1296
-sS'build'
-p1297
+p947
+sg80
+S'vlc-android'
+p948
+sg82
+(lp949
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1298
+p950
 sg86
 sg86
-g87
+I1020305
+sg87
+I00
 sg88
 sg88
+(lp951
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1299
-S'vlc-android'
-p1300
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.3'
+p952
 sg99
 sg99
-I00
-sg100
-I00
+(lp953
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1301
-(lp1302
-S'no'
-p1303
-asS'ndk'
-p1304
 S'r10d'
 S'r10d'
-p1305
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1306
+p954
+sg103
+Nsg104
+(lp955
+sg106
+(lp956
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1307
-sg116
+p957
+sg110
 I00
 I00
-sS'commit'
-p1308
-S'1.2.3'
-p1309
-sa(dp1310
+sg111
+Nsa(dp958
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020403'
-p1311
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1312
+sg67
+I00
+sg68
+Nsg69
+(lp959
 sg71
 sg71
-g72
-sS'gradle'
-p1313
-(lp1314
 S'VanillaARMv6fpu'
 S'VanillaARMv6fpu'
-p1315
-asS'srclibs'
-p1316
-(lp1317
+p960
+sg72
 S'VLC@7491a5f'
 S'VLC@7491a5f'
-p1318
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
+p961
+sg74
+Nsg75
+(lp962
+sg77
+g19
+sg78
+S'1.2.4'
+p963
+sg80
+S'vlc-android'
+p964
 sg82
 sg82
-S'1.2.4'
-p1319
-sS'build'
-p1320
+(lp965
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1321
+p966
 sg86
 sg86
-g87
+I1020403
+sg87
+I00
 sg88
 sg88
+(lp967
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1322
-S'vlc-android'
-p1323
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.4'
+p968
 sg99
 sg99
-I00
-sg100
-I00
+(lp969
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1324
-(lp1325
-S'no'
-p1326
-asS'ndk'
-p1327
 S'r10d'
 S'r10d'
-p1328
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1329
+p970
+sg103
+Nsg104
+(lp971
+sg106
+(lp972
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1330
-sg116
+p973
+sg110
 I00
 I00
-sS'commit'
-p1331
-S'1.2.4'
-p1332
-sa(dp1333
+sg111
+Nsa(dp974
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020404'
-p1334
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp1335
+sg68
+Nsg69
+(lp975
 sg71
 sg71
-g72
-sS'gradle'
-p1336
-(lp1337
 S'VanillaARMv7'
 S'VanillaARMv7'
-p1338
-asS'srclibs'
-p1339
-(lp1340
+p976
+sg72
 S'VLC@7491a5f'
 S'VLC@7491a5f'
-p1341
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p977
+sg74
+Nsg75
+(lp978
+sg77
+g19
+sg78
 S'1.2.4'
 S'1.2.4'
-p1342
-sS'build'
-p1343
+p979
+sg80
+S'vlc-android'
+p980
+sg82
+(lp981
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1344
+p982
 sg86
 sg86
-g87
+I1020404
+sg87
+I00
 sg88
 sg88
+(lp983
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1345
-S'vlc-android'
-p1346
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.4'
+p984
 sg99
 sg99
-I00
-sg100
-I00
+(lp985
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1347
-(lp1348
-S'no'
-p1349
-asS'ndk'
-p1350
 S'r10d'
 S'r10d'
-p1351
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1352
+p986
+sg103
+Nsg104
+(lp987
+sg106
+(lp988
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1353
-sg116
+p989
+sg110
 I00
 I00
-sS'commit'
-p1354
-S'1.2.4'
-p1355
-sa(dp1356
+sg111
+Nsa(dp990
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020405'
-p1357
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1358
+sg67
+I00
+sg68
+Nsg69
+(lp991
 sg71
 sg71
-g72
-sS'gradle'
-p1359
-(lp1360
 S'VanillaX86'
 S'VanillaX86'
-p1361
-asS'srclibs'
-p1362
-(lp1363
+p992
+sg72
 S'VLC@7491a5f'
 S'VLC@7491a5f'
-p1364
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p993
+sg74
+Nsg75
+(lp994
+sg77
+g19
+sg78
 S'1.2.4'
 S'1.2.4'
-p1365
-sS'build'
-p1366
+p995
+sg80
+S'vlc-android'
+p996
+sg82
+(lp997
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1367
+p998
 sg86
 sg86
-g87
+I1020405
+sg87
+I00
 sg88
 sg88
+(lp999
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1368
-S'vlc-android'
-p1369
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.4'
+p1000
 sg99
 sg99
-I00
-sg100
-I00
+(lp1001
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1370
-(lp1371
-S'no'
-p1372
-asS'ndk'
-p1373
 S'r10d'
 S'r10d'
-p1374
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1375
+p1002
+sg103
+Nsg104
+(lp1003
+sg106
+(lp1004
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1376
-sg116
+p1005
+sg110
 I00
 I00
-sS'commit'
-p1377
-S'1.2.4'
-p1378
-sa(dp1379
+sg111
+Nsa(dp1006
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020503'
-p1380
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp1381
+sg68
+Nsg69
+(lp1007
 sg71
 sg71
-g72
-sS'gradle'
-p1382
-(lp1383
 S'VanillaARMv6fpu'
 S'VanillaARMv6fpu'
-p1384
-asS'srclibs'
-p1385
-(lp1386
+p1008
+sg72
 S'VLC@50accb8'
 S'VLC@50accb8'
-p1387
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1009
+sg74
+Nsg75
+(lp1010
+sg77
+g19
+sg78
 S'1.2.5'
 S'1.2.5'
-p1388
-sS'build'
-p1389
+p1011
+sg80
+S'vlc-android'
+p1012
+sg82
+(lp1013
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1390
+p1014
 sg86
 sg86
-g87
+I1020503
+sg87
+I00
 sg88
 sg88
+(lp1015
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1391
-S'vlc-android'
-p1392
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.5'
+p1016
 sg99
 sg99
-I00
-sg100
-I00
+(lp1017
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1393
-(lp1394
-S'no'
-p1395
-asS'ndk'
-p1396
 S'r10d'
 S'r10d'
-p1397
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1398
+p1018
+sg103
+Nsg104
+(lp1019
+sg106
+(lp1020
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1399
-sg116
+p1021
+sg110
 I00
 I00
-sS'commit'
-p1400
-S'1.2.5'
-p1401
-sa(dp1402
+sg111
+Nsa(dp1022
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020504'
-p1403
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp1404
+sg68
+Nsg69
+(lp1023
 sg71
 sg71
-g72
-sS'gradle'
-p1405
-(lp1406
 S'VanillaARMv7'
 S'VanillaARMv7'
-p1407
-asS'srclibs'
-p1408
-(lp1409
+p1024
+sg72
 S'VLC@50accb8'
 S'VLC@50accb8'
-p1410
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1025
+sg74
+Nsg75
+(lp1026
+sg77
+g19
+sg78
 S'1.2.5'
 S'1.2.5'
-p1411
-sS'build'
-p1412
+p1027
+sg80
+S'vlc-android'
+p1028
+sg82
+(lp1029
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1413
+p1030
 sg86
 sg86
-g87
+I1020504
+sg87
+I00
 sg88
 sg88
+(lp1031
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1414
-S'vlc-android'
-p1415
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.5'
+p1032
 sg99
 sg99
-I00
-sg100
-I00
+(lp1033
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1416
-(lp1417
-S'no'
-p1418
-asS'ndk'
-p1419
 S'r10d'
 S'r10d'
-p1420
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1421
+p1034
+sg103
+Nsg104
+(lp1035
+sg106
+(lp1036
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1422
-sg116
+p1037
+sg110
 I00
 I00
-sS'commit'
-p1423
-S'1.2.5'
-p1424
-sa(dp1425
+sg111
+Nsa(dp1038
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1020505'
-p1426
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1427
+sg67
+I00
+sg68
+Nsg69
+(lp1039
 sg71
 sg71
-g72
-sS'gradle'
-p1428
-(lp1429
 S'VanillaX86'
 S'VanillaX86'
-p1430
-asS'srclibs'
-p1431
-(lp1432
+p1040
+sg72
 S'VLC@50accb8'
 S'VLC@50accb8'
-p1433
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1041
+sg74
+Nsg75
+(lp1042
+sg77
+g19
+sg78
 S'1.2.5'
 S'1.2.5'
-p1434
-sS'build'
-p1435
+p1043
+sg80
+S'vlc-android'
+p1044
+sg82
+(lp1045
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1436
+p1046
 sg86
 sg86
-g87
+I1020505
+sg87
+I00
 sg88
 sg88
+(lp1047
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1437
-S'vlc-android'
-p1438
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.5'
+p1048
 sg99
 sg99
-I00
-sg100
-I00
+(lp1049
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1439
-(lp1440
-S'no'
-p1441
-asS'ndk'
-p1442
 S'r10d'
 S'r10d'
-p1443
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1444
+p1050
+sg103
+Nsg104
+(lp1051
+sg106
+(lp1052
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1445
-sg116
+p1053
+sg110
 I00
 I00
-sS'commit'
-p1446
-S'1.2.5'
-p1447
-sa(dp1448
+sg111
+Nsa(dp1054
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1030003'
-p1449
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1450
+sg67
+I00
+sg68
+Nsg69
+(lp1055
 sg71
 sg71
-g72
-sS'gradle'
-p1451
-(lp1452
 S'VanillaARMv6fpu'
 S'VanillaARMv6fpu'
-p1453
-asS'srclibs'
-p1454
-(lp1455
+p1056
+sg72
 S'VLC@d59b81a'
 S'VLC@d59b81a'
-p1456
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1057
+sg74
+Nsg75
+(lp1058
+sg77
+g19
+sg78
 S'1.2.6'
 S'1.2.6'
-p1457
-sS'build'
-p1458
+p1059
+sg80
+S'vlc-android'
+p1060
+sg82
+(lp1061
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1459
+p1062
 sg86
 sg86
-g87
+I1030003
+sg87
+I00
 sg88
 sg88
+(lp1063
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1460
-S'vlc-android'
-p1461
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.6'
+p1064
 sg99
 sg99
-I00
-sg100
-I00
+(lp1065
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1462
-(lp1463
-S'no'
-p1464
-asS'ndk'
-p1465
 S'r10d'
 S'r10d'
-p1466
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1467
+p1066
+sg103
+Nsg104
+(lp1067
+sg106
+(lp1068
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1468
-sg116
+p1069
+sg110
 I00
 I00
-sS'commit'
-p1469
-S'1.2.6'
-p1470
-sa(dp1471
+sg111
+Nsa(dp1070
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1030004'
-p1472
-sg283
 I00
 I00
-sg68
+sg66
 I00
 I00
-sg69
-(lp1473
+sg67
+I00
+sg68
+Nsg69
+(lp1071
 sg71
 sg71
-g72
-sS'gradle'
-p1474
-(lp1475
 S'VanillaARMv7'
 S'VanillaARMv7'
-p1476
-asS'srclibs'
-p1477
-(lp1478
+p1072
+sg72
 S'VLC@d59b81a'
 S'VLC@d59b81a'
-p1479
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1073
+sg74
+Nsg75
+(lp1074
+sg77
+g19
+sg78
 S'1.2.6'
 S'1.2.6'
-p1480
-sS'build'
-p1481
+p1075
+sg80
+S'vlc-android'
+p1076
+sg82
+(lp1077
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1482
+p1078
 sg86
 sg86
-g87
+I1030004
+sg87
+I00
 sg88
 sg88
+(lp1079
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1483
-S'vlc-android'
-p1484
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.6'
+p1080
 sg99
 sg99
-I00
-sg100
-I00
+(lp1081
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1485
-(lp1486
-S'no'
-p1487
-asS'ndk'
-p1488
 S'r10d'
 S'r10d'
-p1489
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1490
+p1082
+sg103
+Nsg104
+(lp1083
+sg106
+(lp1084
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1491
-sg116
+p1085
+sg110
 I00
 I00
-sS'commit'
-p1492
-S'1.2.6'
-p1493
-sa(dp1494
+sg111
+Nsa(dp1086
 g64
 I00
 sg65
 g64
 I00
 sg65
-S'1030005'
-p1495
-sg283
 I00
 I00
-sg68
+sg66
+I00
+sg67
 I00
 I00
-sg69
-(lp1496
+sg68
+Nsg69
+(lp1087
 sg71
 sg71
-g72
-sS'gradle'
-p1497
-(lp1498
 S'VanillaX86'
 S'VanillaX86'
-p1499
-asS'srclibs'
-p1500
-(lp1501
+p1088
+sg72
 S'VLC@d59b81a'
 S'VLC@d59b81a'
-p1502
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1089
+sg74
+Nsg75
+(lp1090
+sg77
+g19
+sg78
 S'1.2.6'
 S'1.2.6'
-p1503
-sS'build'
-p1504
+p1091
+sg80
+S'vlc-android'
+p1092
+sg82
+(lp1093
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1505
+p1094
 sg86
 sg86
-g87
+I1030005
+sg87
+I00
 sg88
 sg88
+(lp1095
+sg90
+Nsg95
 I00
 I00
-sS'subdir'
-p1506
-S'vlc-android'
-p1507
-sg840
+sg96
 I00
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.6'
+p1096
 sg99
 sg99
-I00
-sg100
-I00
+(lp1097
 sg101
 sg101
-g20
+I00
 sg102
 sg102
-g103
-sS'buildjni'
-p1508
-(lp1509
-S'no'
-p1510
-asS'ndk'
-p1511
 S'r10d'
 S'r10d'
-p1512
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1513
+p1098
+sg103
+Nsg104
+(lp1099
+sg106
+(lp1100
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1514
-sg116
+p1101
+sg110
 I00
 I00
-sS'commit'
-p1515
-S'1.2.6'
-p1516
-sasS'FlattrID'
-p1517
+sg111
+NsasS'FlattrID'
+p1102
 NsS'metadatapath'
 NsS'metadatapath'
-p1518
+p1103
 S'metadata/org.videolan.vlc.yaml'
 S'metadata/org.videolan.vlc.yaml'
-p1519
+p1104
 sS'Disabled'
 sS'Disabled'
-p1520
-NsS'added'
-p1521
-NsS'lastupdated'
-p1522
-NsS'Update Check Name'
-p1523
+p1105
+NsS'Web Site'
+p1106
+S'http://www.videolan.org/vlc/download-android.html'
+p1107
+sS'Update Check Name'
+p1108
 NsS'Vercode Operation'
 NsS'Vercode Operation'
-p1524
+p1109
 S'%c + 5'
 S'%c + 5'
-p1525
-sS'Current Version'
-p1526
-S'1.2.6'
-p1527
-s.
+p1110
+sS'Auto Update Mode'
+p1111
+S'None'
+p1112
+s.
\ No newline at end of file
diff --git a/tests/metadata/update-pickle.py b/tests/metadata/update-pickle.py
deleted file mode 100755 (executable)
index 2811133..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python2
-#
-# This script is for updating the .pickle test files when there are changes to
-# the default metadata, e.g. adding a new key/tag.
-
-import glob
-import pickle
-
-for picklefile in glob.glob('*.pickle'):
-    p = pickle.load(open(picklefile))
-
-    for build in p['builds']:
-        build['gradleprops'] = []
-
-    pickle.dump(p, open(picklefile, 'w'))