diff --git a/build.gradle b/build.gradle index 8089980..55277dd 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,11 @@ plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.0.+" apply false + id "dev.architectury.loom" version "1.3.+" apply false //Publishing id 'com.matthewprenger.cursegradle' version '1.4.0' apply false - id "com.modrinth.minotaur" version "2.4.3" apply false + id "com.modrinth.minotaur" version "2.8.7" apply false + id 'com.github.johnrengelman.shadow' version '8.1.1' apply false } architectury { diff --git a/coreLib/src/main/java/dev/kosmx/playerAnim/core/data/KeyframeAnimation.java b/coreLib/src/main/java/dev/kosmx/playerAnim/core/data/KeyframeAnimation.java index d22407b..b2bfa7d 100644 --- a/coreLib/src/main/java/dev/kosmx/playerAnim/core/data/KeyframeAnimation.java +++ b/coreLib/src/main/java/dev/kosmx/playerAnim/core/data/KeyframeAnimation.java @@ -449,9 +449,14 @@ public int length() { * @return given keyframe */ public int findAtTick(int tick) { - int i = -1; - while (this.keyFrames.size() > i + 1 && this.keyFrames.get(i + 1).tick <= tick) { - i++; + int i = Collections.binarySearch(this.keyFrames, null, (frame, ignore) -> Integer.compare(frame.tick, tick)); + if (i < 0) { + i = -i - 2; + } + + // small correction for edge-case: it is possible to have two keyframes with the same tick in the array, in that case, I should return the later one. + if (i + 1 < keyFrames.size() && keyFrames.get(i + 1).tick == tick) { + return i + 1; } return i; } diff --git a/coreLib/src/main/java/dev/kosmx/playerAnim/core/util/Ease.java b/coreLib/src/main/java/dev/kosmx/playerAnim/core/util/Ease.java index 8efd652..7c34d57 100644 --- a/coreLib/src/main/java/dev/kosmx/playerAnim/core/util/Ease.java +++ b/coreLib/src/main/java/dev/kosmx/playerAnim/core/util/Ease.java @@ -1,5 +1,7 @@ package dev.kosmx.playerAnim.core.util; +import lombok.Getter; + /** * Easings form easings.net
* + constant + linear @@ -17,6 +19,7 @@ public enum Ease { INELASTIC(30, Easing::inElastic), OUTELASTIC(31, Easing::outElastic), INOUTELASTIC(32, Easing::inOutElastic), INBOUNCE(33, Easing::inBounce), OUTBOUNCE(34, Easing::outBack), INOUTBOUNCE(35, Easing::inOutBounce); + @Getter final byte id; private final _F impl; @@ -37,10 +40,6 @@ public enum Ease { this((byte) id, impl); } - public byte getId() { - return id; - } - /** * Run the easing * @param f float between 0 and 1 diff --git a/coreLib/src/test/java/dev/kosmx/playerAnim/core/data/KeyframeAnimationTest.java b/coreLib/src/test/java/dev/kosmx/playerAnim/core/data/KeyframeAnimationTest.java new file mode 100644 index 0000000..bc089c4 --- /dev/null +++ b/coreLib/src/test/java/dev/kosmx/playerAnim/core/data/KeyframeAnimationTest.java @@ -0,0 +1,48 @@ +package dev.kosmx.playerAnim.core.data; + +import dev.kosmx.playerAnim.core.util.Ease; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.Random; + +public class KeyframeAnimationTest { + @Test + public void testKeyframeAnimation() { + KeyframeAnimation.StateCollection.State state = new KeyframeAnimation.StateCollection(0).x; + // Easy case + state.addKeyFrame(1, 0, Ease.CONSTANT); + state.addKeyFrame(5, 0, Ease.CONSTANT); + state.addKeyFrame(10, 10, Ease.CONSTANT); + state.addKeyFrame(10, 10, Ease.CONSTANT); + + state.addKeyFrame(15, 10, Ease.CONSTANT); + + verify(state); + state.getKeyFrames().clear(); + + + // random case + Random random = new Random(); + + for (int i = 0; i < 10000; i += random.nextInt(100)) { + state.addKeyFrame(i, i, Ease.CONSTANT); + } + + verify(state); + } + + public static void verify(KeyframeAnimation.StateCollection.State state) { + + for (int t = 0; t < state.getKeyFrames().size(); t++) { + // Iterative, 100% works algorithm + + int i = -1; + while (state.getKeyFrames().size() > i + 1 && state.getKeyFrames().get(i + 1).tick <= t) { + i++; + } + + Assertions.assertEquals(i, state.findAtTick(t), "KeyframeAnimationTest failed at tick " + t); + } + } +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 943f0cb..d64cd49 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f398c33..1af9e09 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 index 65dcd68..1aa94a4 --- a/gradlew +++ b/gradlew @@ -83,10 +83,8 @@ done # This is normally unused # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,10 +131,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -144,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -197,11 +198,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/minecraft/common/src/main/java/dev/kosmx/playerAnim/impl/animation/BendHelper.java b/minecraft/common/src/main/java/dev/kosmx/playerAnim/impl/animation/BendHelper.java index 18729cf..1487466 100644 --- a/minecraft/common/src/main/java/dev/kosmx/playerAnim/impl/animation/BendHelper.java +++ b/minecraft/common/src/main/java/dev/kosmx/playerAnim/impl/animation/BendHelper.java @@ -14,8 +14,13 @@ public class BendHelper implements IBendHelper { @Override - public void bend(ModelPart modelPart, float a, float b){ - ModelPartAccessor.optionalGetCuboid(modelPart, 0).ifPresent(mutableCuboid -> ((BendableCuboid)mutableCuboid.getAndActivateMutator("bend")).applyBend(a, b)); + public void bend(ModelPart modelPart, float axis, float rotation){ + // Don't enable bend until rotation is bigger than epsilon. This should avoid unnecessary heavy calculations. + if (Math.abs(rotation) >= 0.0001f) { + ModelPartAccessor.optionalGetCuboid(modelPart, 0).ifPresent(mutableCuboid -> ((BendableCuboid) mutableCuboid.getAndActivateMutator("bend")).applyBend(axis, rotation)); + } else { + ModelPartAccessor.optionalGetCuboid(modelPart, 0).ifPresent(mutableCuboid -> mutableCuboid.getAndActivateMutator(null)); + } } @Override diff --git a/minecraft/fabric/build.gradle b/minecraft/fabric/build.gradle index 79fdc20..070f7aa 100644 --- a/minecraft/fabric/build.gradle +++ b/minecraft/fabric/build.gradle @@ -1,7 +1,5 @@ -plugins { - id "com.github.johnrengelman.shadow" version "7.1.2" -} +apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'com.modrinth.minotaur' apply plugin: 'com.matthewprenger.cursegradle' @@ -79,18 +77,18 @@ shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] - classifier "dev-shadow" + archiveClassifier.set("dev-shadow") } remapJar { injectAccessWidener = true inputFile.set shadowJar.archiveFile dependsOn shadowJar - classifier null + archiveClassifier.set(null) } jar { - classifier "dev" + archiveClassifier.set("dev") } sourcesJar { diff --git a/minecraft/fabric/src/main/resources/assets/player-animator/lang/tt_ru.json b/minecraft/fabric/src/main/resources/assets/player-animator/lang/tt_ru.json new file mode 100644 index 0000000..dc7e479 --- /dev/null +++ b/minecraft/fabric/src/main/resources/assets/player-animator/lang/tt_ru.json @@ -0,0 +1,3 @@ +{ + "modmenu.descriptionTranslation.player-animator": "Уенчыны гади анимацияләү өчен җиңел (авырлык буенча) китапханә" +} diff --git a/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/CodedAnimation.java b/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/CodedAnimation.java new file mode 100644 index 0000000..d5eb31d --- /dev/null +++ b/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/CodedAnimation.java @@ -0,0 +1,2 @@ +package dev.kosmx.animatorTestmod;public class CodedAnimation { +} diff --git a/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/SomeString.java b/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/SomeString.java deleted file mode 100644 index 10bb6e7..0000000 --- a/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/SomeString.java +++ /dev/null @@ -1,10 +0,0 @@ -package dev.kosmx.animatorTestmod; - -/** - * 'Cause I could not load the animations from assets - * - * It is a base64 encoded version of it :D - */ -public class SomeString { - public final static String something = "ew0KICAgICJuYW1lIjogInR3b19oYW5kZWRfc2xhc2hfaG9yaXpvbnRhbF9yaWdodCIsDQogICAgImF1dGhvciI6ICJEYWVkZWx1cyIsDQogICAgImRlc2NyaXB0aW9uIjogIlR3byBoYW5kZWQgc2xhc2ggYXR0YWNrIHJpZ2h0IHRvIGxlZnQiLA0KICAgICJlbW90ZSI6ew0KICAgICAgICAiaXNMb29wIjogImZhbHNlIiwNCiAgICAgICAgInJldHVyblRpY2siOiAyLA0KICAgICAgICAiYmVnaW5UaWNrIjoxMCwNCiAgICAgICAgImVuZFRpY2siOjE4LA0KICAgICAgICAic3RvcFRpY2siOjI4LA0KICAgICAgICAiZGVncmVlcyI6ZmFsc2UsDQogICAgICAgICJtb3ZlcyI6Ww0KICAgICAgICAgICAgDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTEsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEzLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjExLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMywNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjotMC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTMsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0wLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6LTAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOi0wLjMxMjE0NTUwMTM3NTE5ODM2DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTEsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6MC4wMzAwNzgyNDM0NjQyMzE0OQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjAuNjI5NzQ3MzkwNzQ3MDcwMw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEzLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjEuMDU3NTY5MDI2OTQ3MDIxNQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjoxLjE4Njk3NTU5ODMzNTI2NjENCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjoxLjE4NTY0MTUyNzE3NTkwMzMNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTAuMDc4ODY5MDUyMjMxMzExOA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjExLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4wMTY1NDcwNDQ3MzkxMjcxNg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4yMjk0MTE3ODA4MzQxOTgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMywNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTAuMzMyNDk4NDAxNDAzNDI3MQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTAuMzMxNzY5MDE5MzY1MzEwNjcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTAuMzM3MTY5MzQ5MTkzNTczDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjowLjI1MzAyODEyNDU3MDg0NjU2DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTEsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImhlYWQiOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC4wMzIwMTg3OTkzMzQ3NjQ0OA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuMzY2MjYyMDE4NjgwNTcyNQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEzLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJoZWFkIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuNDE5Njk0OTYwMTE3MzQwMQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjQxNDM1NDYyMjM2NDA0NDINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAiaGVhZCI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjM3OTI5Mzk0ODQxMTk0MTUzDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOi0wLjMyNDA5NDI2NTY5OTM4NjYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6MC4wMjU5OTIyMjk1ODA4NzkyMQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjY2MzAyNDg0MjczOTEwNTINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjEuMjE1MDMxNTA0NjMxMDQyNQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjoxLjIzMjUyNDk5MTAzNTQ2MTQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi01LjU0MTA5Mzk5NTQ0MDgyNWUtMTcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOjAuMDA1MjEzOTI1NjE0OTUzMDQxDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjowLjAxMDQyNzg1MTIyOTkwNjA4Mg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0wLjE3MDI2OTQ1OTQ4NjAwNzcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0wLjAzMjI5MjQ3Nzc4NjU0MDk4NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOjAuMjM4ODIwNzkxMjQ0NTA2ODQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC4wMDg5NjMyNzE5NzU1MTcyNzMNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC4yODQ3NzgwODgzMzEyMjI1Mw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC4zMjIxNTI0MzU3Nzk1NzE1Mw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjE3OTkxNTQ1Nzk2Mzk0MzQ4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjowLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6MC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6MC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjowLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOjAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjExLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6MC4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjowLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjowLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAidG9yc28iOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOjAuMA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMDQ0NjA5MDM2Mjk2NjA2MDY0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTEsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4wNjU3NzAxMDQ1Mjc0NzM0NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMDY0OTk5OTk3NjE1ODE0MjENCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInRvcnNvIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4xNDA5MzU5NDI1MzA2MzIwMg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJ0b3JzbyI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMTg3OTE0NTk1MDA3ODk2NDINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6MC4yMzE3MDU5Nzg1MTI3NjM5OA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjEwODUzMjcxOTMxNDA5ODM2DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjA0OTkwNDEwMDU5NjkwNDc1NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjAzMTQ4OTY2MjgyNjA2MTI1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjoxLjM3MDEzNzY5MTQ5NzgwMjcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOjEuNjMxNDE3MTU1MjY1ODA4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6MS42ODk4ODYwOTMxMzk2NDg0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjoxLjY1NjA3NTAwMDc2MjkzOTUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjMuMzg5ODc5MjI2Njg0NTcwMw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6Mi44NjQ5MjE1Njk4MjQyMTg4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6Mi44NjQ5MjE1Njk4MjQyMTg4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjoyLjg2NDkyMTU2OTgyNDIxODgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOjAuMDk1MTM2MDc2MjExOTI5MzINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0xLjYyMDAwOTE4Mzg4MzY2Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0xLjYyMDAwOTE4Mzg4MzY2Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTEuNjIwMDA5MTgzODgzNjY3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjotNS43MDM1NDg0MzEzOTY0ODQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi00LjQzMzEwOTc2MDI4NDQyNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi00LjQzMzEwOTc2MDI4NDQyNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6LTQuNDMzMTA5NzYwMjg0NDI0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6MC4yODE4NTAwMTAxNTY2MzE0Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0xLjMwMzk4OTg4NzIzNzU0ODgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTEuODEzNzcxNzI0NzAwOTI3Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0yLjE1NzY0MDkzMzk5MDQ3ODUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6MS4yNTMxNzAwMTM0Mjc3MzQ0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOjEuNTkyNDIwMjIwMzc1MDYxDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjoxLjM5NTYwNTgwMjUzNjAxMDcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6MS4yOTY3OTMyMjI0MjczNjgyDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6MC4wMDY0ODgzMjM2NzczMzEyMDkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjA5MDgxMDY1NjU0NzU0NjM5DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjAuMjcwMDc2NDUzNjg1NzYwNQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjAuMTE2NzEyOTEyOTE3MTM3MTUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjQ4NjYwNDMwMzEyMTU2NjgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjcxMjcyMjU5OTUwNjM3ODINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC45MDY5NTI2NzkxNTcyNTcxDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMS4yOTMxOTI3NDQyNTUwNjYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6Mi42Nzc4NzU1MTg3OTg4MjgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6Mi42Nzc4NzU1MTg3OTg4MjgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjEuOTI1Nzk4NDE2MTM3Njk1Mw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjoyLjI3ODMyMzE3MzUyMjk0OQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMi43ODQyNTc0MTE5NTY3ODcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTIuNzg0MjU3NDExOTU2Nzg3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMy4yNjAyNDM0MTU4MzI1MTk1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRBcm0iOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0wLjk1NDcxNTM3MTEzMTg5Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjoyLjAzNTUxMDc3ODQyNzEyNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0QXJtIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjoyLjAzNTUxMDc3ODQyNzEyNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6NS4zNjMxOTM5ODg4MDAwNDkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdEFybSI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6NS44NTg4NTAwMDIyODg4MTgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6LTAuMjUyMjk0MTUyOTc1MDgyNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjExLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjotMC4wMDA1ODc2NDkwNjEzNDQ1NjQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6MC41MjE5NzUwNDA0MzU3OTENCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjEuMTU3Nzk0MTE3OTI3NTUxMw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjoxLjE0MDM3NzQwMjMwNTYwMw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTAuMDMyMjQ4ODY5NTM4MzA3MTkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0wLjAwODU2OTU1MzQ5NDQ1MzQzDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4xNjM3ODc0MDk2NjMyMDAzOA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0wLjA4MzY5NDUxMDE2MTg3NjY4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4xMjA5Mjk3ODUwNzI4MDM1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6MC4yMTA5ODU4MDk1NjQ1OTA0NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjExLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjA0ODk0MzE0MzMzNzk2NTAxDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuNDAzMTI3NDAyMDY3MTg0NDUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuMzE4MzgyMTQzOTc0MzA0Mg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjIxMjE0MDc4MzY2NzU2NDQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0xLjkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0xLjkzNDgzODY3NjQ1MjYzNjYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0yLjM1OTkzMDY1ODM0MDQ1NA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgIngiOi0zLjIwNDMyNDE1MDA4NTQ0OQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6LTMuMjA0MzI0MTUwMDg1NDQ5DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjoxMi4wDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTEsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjoxMS4wMzI2MzQ3OTQ3MTIwNjcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjExLjE5MjUwMzA5NDY3MzE1Nw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjExLjYwMjMzNDY3ODE3MzA2NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6MTEuNjAyMzM0Njc4MTczMDY1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjowLjENCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMSwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0xLjAzOTQwOTQyMjg3NDQ1MDYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0wLjI2NTM5MTE2NTAxODA4MTcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4zMjUxMTk2OTgwNDc2Mzc5Ng0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTAuMzI1MTE5Njk4MDQ3NjM3OTYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjotMC40NDY5MDk3MjU2NjYwNDYxNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ5YXciOjAuMDI2ODM5MTI0MDM4ODE1NQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjotMC4zMTc0NTA0MzM5Njk0OTc3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6LTAuMzM0MjQyNTUyNTE4ODQ0Ng0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEwLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4xNjc1Mzc3NjM3MTQ3OTAzNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMC4wMTAzMjE0NDM5MDA0NjU5NjUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOjAuMDIwMTI4MDQ1MjMxMTAzODk3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTgsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5PVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0wLjEwNDY5MzA4NDk1NTIxNTQ1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjowLjU4Mzg0MTE0NTAzODYwNDcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjE1MDAyMjIyMzU5MTgwNDUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInBpdGNoIjotMC4yMjcxMzMwNjU0NjIxMTI0Mw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuMTg5NTUwNjgyOTAyMzM2MTINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6MTEuNzA5NzA1NjUwODA2NDI3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjEyLjANCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOjExLjkxNDY2NDQ3NzEwOTkwOQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjoxMS45MTQ2NjQ0NzcxMDk5MDkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6MC41MTIyMjM5MjMyMDYzMjk0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0wLjENCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxNCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VPVVRRVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgImxlZnRMZWciOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0xLjAxMTIxNDA1MzYzMDgyOQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE4LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMS4wMTEyMTQwNTM2MzA4MjkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6Mi4xMjg2NTIwMDA0MjcyNDYNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6MS45DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJsZWZ0TGVnIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjoyLjk2Njk0ODE3NTQzMDI5NzgNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxOCwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTk9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAibGVmdExlZyI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6Mi45NjY5NDgxNzU0MzAyOTc4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6MC44ODg2MzQ2MjIwOTcwMTU0DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieCI6MC4xNDk3MDcxOTgxNDMwMDUzNw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJ4IjowLjEyMDg3ODQ4NzgyNTM5MzY4DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieiI6LTEuMTE2NTQ4MDYxMzcwODQ5Ng0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEl0ZW0iOnsNCiAgICAgICAgICAgICAgICAgICAgInoiOi0xLjM3ODUwNjA2NDQxNDk3OA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJ6IjotMC4zNzEwOTM1NzExODYwNjU3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieSI6LTMuMDg2MDk1ODA5OTM2NTIzNA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjEyLA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRUlOUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEl0ZW0iOnsNCiAgICAgICAgICAgICAgICAgICAgInkiOi0xLjQ5NzAyNTQ4OTgwNzEyOQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJ5IjowLjA1MjI1ODM3MjMwNjgyMzczDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAicGl0Y2giOi0wLjY4NzMzNTYxMDM4OTcwOTUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTAuOTY3MzE0NTQxMzM5ODc0Mw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInRpY2siOjE0LA0KICAgICAgICAgICAgICAgICJlYXNpbmciOiAiRUFTRU9VVFFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJwaXRjaCI6LTEuODEyMzM0NjU2NzE1MzkzDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjM5MDQxNzUxNjIzMTUzNjg3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTIsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAieWF3IjowLjIwMDcxMTc3MTg0NTgxNzU3DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEl0ZW0iOnsNCiAgICAgICAgICAgICAgICAgICAgInlhdyI6LTAuMDAxODQ0ODUzMTYyNzY1NTAzDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTAsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFSU5RVUFEIiwNCiAgICAgICAgICAgICAgICAidHVybiI6IDAsDQogICAgICAgICAgICAgICAgInJpZ2h0SXRlbSI6ew0KICAgICAgICAgICAgICAgICAgICAicm9sbCI6LTIuNzA5OTYzNTYwMTA0MzcNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJ0aWNrIjoxMiwNCiAgICAgICAgICAgICAgICAiZWFzaW5nIjogIkVBU0VJTlFVQUQiLA0KICAgICAgICAgICAgICAgICJ0dXJuIjogMCwNCiAgICAgICAgICAgICAgICAicmlnaHRJdGVtIjp7DQogICAgICAgICAgICAgICAgICAgICJyb2xsIjotMy4wOTY5MjUwMjAyMTc4OTU1DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidGljayI6MTQsDQogICAgICAgICAgICAgICAgImVhc2luZyI6ICJFQVNFT1VUUVVBRCIsDQogICAgICAgICAgICAgICAgInR1cm4iOiAwLA0KICAgICAgICAgICAgICAgICJyaWdodEl0ZW0iOnsNCiAgICAgICAgICAgICAgICAgICAgInJvbGwiOi0zLjIyMDIyODY3MjAyNzU4OA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgXQ0KICAgIH0NCn0NCg=="; -} diff --git a/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/mixin/AbstractClientPlayerMixin.java b/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/mixin/AbstractClientPlayerMixin.java new file mode 100644 index 0000000..4ecc54a --- /dev/null +++ b/minecraft/fabric/src/testmod/java/dev/kosmx/animatorTestmod/mixin/AbstractClientPlayerMixin.java @@ -0,0 +1,2 @@ +package dev.kosmx.animatorTestmod.mixin;public class AbstractClientPlayerMixin { +} diff --git a/minecraft/forge/build.gradle b/minecraft/forge/build.gradle index a084e49..9f20322 100644 --- a/minecraft/forge/build.gradle +++ b/minecraft/forge/build.gradle @@ -1,7 +1,5 @@ -plugins { - id "com.github.johnrengelman.shadow" version "7.1.2" -} +apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'com.modrinth.minotaur' apply plugin: 'com.matthewprenger.cursegradle' @@ -61,17 +59,17 @@ shadowJar { exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] - classifier "dev-shadow" + archiveClassifier.set("dev-shadow") } remapJar { inputFile.set shadowJar.archiveFile dependsOn shadowJar - classifier null + archiveClassifier.set(null) } jar { - classifier "dev" + archiveClassifier.set("dev") } sourcesJar {