diff --git a/src/Analyser/TypeSpecifier.php b/src/Analyser/TypeSpecifier.php index 79eb168577..bc74c960f2 100644 --- a/src/Analyser/TypeSpecifier.php +++ b/src/Analyser/TypeSpecifier.php @@ -1151,7 +1151,7 @@ private function specifyTypesForCountFuncCall( if ( $sizeType instanceof ConstantIntegerType - && $sizeType->getValue() < ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT + && $sizeType->getValue() < ConstantArrayTypeBuilder::getArrayCountLimit() && $isList->yes() && $arrayType->getKeyType()->isSuperTypeOf(IntegerRangeType::fromInterval(0, $sizeType->getValue() - 1))->yes() ) { @@ -1168,7 +1168,7 @@ private function specifyTypesForCountFuncCall( if ( $sizeType instanceof IntegerRangeType && $sizeType->getMin() !== null - && $sizeType->getMin() < ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT + && $sizeType->getMin() < ConstantArrayTypeBuilder::getArrayCountLimit() && $isList->yes() && $arrayType->getKeyType()->isSuperTypeOf(IntegerRangeType::fromInterval(0, ($sizeType->getMax() ?? $sizeType->getMin()) - 1))->yes() ) { @@ -1179,7 +1179,7 @@ private function specifyTypesForCountFuncCall( $builderData[] = [$offsetType, $arrayType->getOffsetValueType($offsetType), false]; } if ($sizeType->getMax() !== null) { - if ($sizeType->getMax() - $sizeType->getMin() > ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT) { + if ($sizeType->getMax() - $sizeType->getMin() > ConstantArrayTypeBuilder::getArrayCountLimit()) { $resultTypes[] = $arrayType; continue; } @@ -1201,7 +1201,7 @@ private function specifyTypesForCountFuncCall( continue; } - if (count($builderData) > ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT) { + if (count($builderData) > ConstantArrayTypeBuilder::getArrayCountLimit()) { $resultTypes[] = $arrayType; continue; } diff --git a/src/PhpDoc/TypeNodeResolver.php b/src/PhpDoc/TypeNodeResolver.php index 4df978002b..a6d07ee91b 100644 --- a/src/PhpDoc/TypeNodeResolver.php +++ b/src/PhpDoc/TypeNodeResolver.php @@ -1046,7 +1046,7 @@ function (CallableTypeParameterNode $parameterNode) use ($nameScope, &$isVariadi private function resolveArrayShapeNode(ArrayShapeNode $typeNode, NameScope $nameScope): Type { $builder = ConstantArrayTypeBuilder::createEmpty(); - if (count($typeNode->items) > ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT) { + if (count($typeNode->items) > ConstantArrayTypeBuilder::getArrayCountLimit()) { $builder->degradeToGeneralArray(true); } diff --git a/src/Reflection/InitializerExprTypeResolver.php b/src/Reflection/InitializerExprTypeResolver.php index cf543fa3ae..c1a1866dca 100644 --- a/src/Reflection/InitializerExprTypeResolver.php +++ b/src/Reflection/InitializerExprTypeResolver.php @@ -631,7 +631,7 @@ public function resolveConcatType(Type $left, Type $right): Type */ public function getArrayType(Expr\Array_ $expr, callable $getTypeCallback): Type { - if (count($expr->items) > ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT) { + if (count($expr->items) > ConstantArrayTypeBuilder::getArrayCountLimit()) { return $this->oversizedArrayBuilder->build($expr, $getTypeCallback); } @@ -1464,7 +1464,7 @@ public function getPlusTypeFromTypes(Expr $left, Expr $right, Type $leftType, Ty $leftCount = count($leftConstantArrays); $rightCount = count($rightConstantArrays); if ($leftCount > 0 && $rightCount > 0 - && ($leftCount + $rightCount < ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT)) { + && ($leftCount + $rightCount < ConstantArrayTypeBuilder::getArrayCountLimit())) { $resultTypes = []; foreach ($rightConstantArrays as $rightConstantArray) { foreach ($leftConstantArrays as $leftConstantArray) { diff --git a/src/Type/Constant/ConstantArrayTypeBuilder.php b/src/Type/Constant/ConstantArrayTypeBuilder.php index 9396fec39f..39831929a0 100644 --- a/src/Type/Constant/ConstantArrayTypeBuilder.php +++ b/src/Type/Constant/ConstantArrayTypeBuilder.php @@ -30,7 +30,10 @@ final class ConstantArrayTypeBuilder { - public const ARRAY_COUNT_LIMIT = 256; + /** + * @internal Use getArrayCountLimit() instead + */ + public const ARRAY_COUNT_LIMIT = 512; private const CLOSURES_COUNT_LIMIT = 16; private bool $degradeToGeneralArray = false; @@ -39,6 +42,8 @@ final class ConstantArrayTypeBuilder private bool $oversized = false; + private static int $arrayCountLimit = self::ARRAY_COUNT_LIMIT; + /** * @param list $keyTypes * @param array $valueTypes @@ -70,13 +75,24 @@ public static function createFromConstantArray(ConstantArrayType $startArrayType $startArrayType->isList(), ); - if (count($startArrayType->getKeyTypes()) > self::ARRAY_COUNT_LIMIT) { + if (count($startArrayType->getKeyTypes()) > self::getArrayCountLimit()) { $builder->degradeToGeneralArray(true); } return $builder; } + /** @internal */ + public static function setArrayCountLimit(int $limit): void + { + self::$arrayCountLimit = $limit; + } + + public static function getArrayCountLimit(): int + { + return self::$arrayCountLimit; + } + public function setOffsetValueType(?Type $offsetType, Type $valueType, bool $optional = false): void { if ($offsetType !== null) { @@ -147,7 +163,7 @@ public function setOffsetValueType(?Type $offsetType, Type $valueType, bool $opt $this->optionalKeys[] = count($this->keyTypes) - 1; } - if (count($this->keyTypes) > self::ARRAY_COUNT_LIMIT) { + if (count($this->keyTypes) > self::getArrayCountLimit()) { $this->degradeToGeneralArray = true; $this->oversized = true; } @@ -220,7 +236,7 @@ public function setOffsetValueType(?Type $offsetType, Type $valueType, bool $opt $this->optionalKeys[] = count($this->keyTypes) - 1; } - if (count($this->keyTypes) > self::ARRAY_COUNT_LIMIT) { + if (count($this->keyTypes) > self::getArrayCountLimit()) { $this->degradeToGeneralArray = true; $this->oversized = true; } @@ -244,7 +260,7 @@ public function setOffsetValueType(?Type $offsetType, Type $valueType, bool $opt } } } - if (count($scalarTypes) > 0 && count($scalarTypes) < self::ARRAY_COUNT_LIMIT) { + if (count($scalarTypes) > 0 && count($scalarTypes) < self::getArrayCountLimit()) { $match = true; $valueTypes = $this->valueTypes; foreach ($scalarTypes as $scalarType) { diff --git a/src/Type/ConstantTypeHelper.php b/src/Type/ConstantTypeHelper.php index 49fa3b082f..82e6cf9102 100644 --- a/src/Type/ConstantTypeHelper.php +++ b/src/Type/ConstantTypeHelper.php @@ -42,7 +42,7 @@ public static function getTypeFromValue($value): Type return new ConstantStringType($value); } elseif (is_array($value)) { $arrayBuilder = ConstantArrayTypeBuilder::createEmpty(); - if (count($value) > ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT) { + if (count($value) > ConstantArrayTypeBuilder::getArrayCountLimit()) { $arrayBuilder->degradeToGeneralArray(true); } foreach ($value as $k => $v) { diff --git a/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php b/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php index 78699643bd..96cf13d64a 100644 --- a/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php +++ b/src/Type/Php/ArrayMapFunctionReturnTypeExtension.php @@ -128,7 +128,7 @@ public function getTypeFromFunctionCall(FunctionReflection $functionReflection, if (count($constantArrays) > 0) { $arrayTypes = []; $totalCount = TypeCombinator::countConstantArrayValueTypes($constantArrays) * TypeCombinator::countConstantArrayValueTypes([$valueType]); - if ($totalCount < ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT) { + if ($totalCount < ConstantArrayTypeBuilder::getArrayCountLimit()) { foreach ($constantArrays as $constantArray) { $returnedArrayBuilder = ConstantArrayTypeBuilder::createEmpty(); $valueTypes = $constantArray->getValueTypes(); diff --git a/src/Type/TypeCombinator.php b/src/Type/TypeCombinator.php index aa5f933532..939a665906 100644 --- a/src/Type/TypeCombinator.php +++ b/src/Type/TypeCombinator.php @@ -904,7 +904,7 @@ private static function optimizeConstantArrays(array $types): array { $constantArrayValuesCount = self::countConstantArrayValueTypes($types); - if ($constantArrayValuesCount <= ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT) { + if ($constantArrayValuesCount <= ConstantArrayTypeBuilder::getArrayCountLimit()) { return $types; } @@ -991,7 +991,7 @@ private static function optimizeConstantArrays(array $types): array $keyType = self::union(...$keyTypes); $valueType = self::union(...$valueTypes); - if ($valueType instanceof UnionType && count($valueType->getTypes()) > ConstantArrayTypeBuilder::ARRAY_COUNT_LIMIT) { + if ($valueType instanceof UnionType && count($valueType->getTypes()) > ConstantArrayTypeBuilder::getArrayCountLimit()) { $valueType = $valueType->generalize(GeneralizePrecision::lessSpecific()); } diff --git a/tests/PHPStan/Analyser/AnalyserIntegrationTest.php b/tests/PHPStan/Analyser/AnalyserIntegrationTest.php index 4723c38fe8..5e8f9a05d1 100644 --- a/tests/PHPStan/Analyser/AnalyserIntegrationTest.php +++ b/tests/PHPStan/Analyser/AnalyserIntegrationTest.php @@ -9,10 +9,12 @@ use PHPStan\Reflection\InitializerExprTypeResolver; use PHPStan\Reflection\SignatureMap\SignatureMapProvider; use PHPStan\Testing\PHPStanTestCase; +use PHPStan\Type\Constant\ConstantArrayTypeBuilder; use PHPStan\Type\Constant\ConstantIntegerType; use PHPStan\Type\Constant\ConstantStringType; use PHPUnit\Framework\Attributes\CoversNothing; use PHPUnit\Framework\Attributes\RequiresPhp; +use PHPUnit\Framework\Attributes\RunInSeparateProcess; use function extension_loaded; use function sprintf; use const PHP_VERSION_ID; @@ -1201,8 +1203,12 @@ public static function getAdditionalConfigFiles(): array ]; } + /** @runInSeparateProcess */ + #[RunInSeparateProcess] public function testBug8004(): void { + ConstantArrayTypeBuilder::setArrayCountLimit(256); + $errors = $this->runAnalyse(__DIR__ . '/data/bug-8004.php'); $this->assertCount(2, $errors); $this->assertSame('Strict comparison using !== between null and DateTimeInterface|string will always evaluate to true.', $errors[0]->getMessage()); diff --git a/tests/PHPStan/Analyser/NodeScopeResolverTest.php b/tests/PHPStan/Analyser/NodeScopeResolverTest.php index 92c6565789..fe66298078 100644 --- a/tests/PHPStan/Analyser/NodeScopeResolverTest.php +++ b/tests/PHPStan/Analyser/NodeScopeResolverTest.php @@ -5,7 +5,9 @@ use EnumTypeAssertions\Foo; use PHPStan\File\FileHelper; use PHPStan\Testing\TypeInferenceTestCase; +use PHPStan\Type\Constant\ConstantArrayTypeBuilder; use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\RunClassInSeparateProcess; use stdClass; use function array_merge; use function define; @@ -19,6 +21,10 @@ use const PHP_INT_SIZE; use const PHP_VERSION_ID; +/** + * @runInSeparateProcess + */ +#[RunClassInSeparateProcess] class NodeScopeResolverTest extends TypeInferenceTestCase { @@ -273,6 +279,8 @@ public static function dataFile(): iterable #[DataProvider('dataFile')] public function testFile(string $file): void { + ConstantArrayTypeBuilder::setArrayCountLimit(256); + $asserts = self::gatherAssertTypes($file); $this->assertNotCount(0, $asserts, sprintf('File %s has no asserts.', $file)); $failures = []; diff --git a/tests/PHPStan/Analyser/data/bug-5081.php b/tests/PHPStan/Analyser/data/bug-5081.php index 25c35dcc2b..15d9223b08 100644 --- a/tests/PHPStan/Analyser/data/bug-5081.php +++ b/tests/PHPStan/Analyser/data/bug-5081.php @@ -503,4 +503,26 @@ $_LANGADM['AdminCustomerPreferencesf2c822352f0e0a62e2de6d716475911b'] = 'Standard (account creation and address creation)'; $_LANGADM['AdminCustomerPreferences0db377921f4ce762c62526131097968f'] = 'General'; $_LANGADM['AdminCustomerPreferencesbcb9adf1d2347258b5c65483e34cf86f'] = 'Registration process type'; -assertType("non-empty-array<'AdminAddresses1c76cbfe21c6f44c1d1e59d54f3e4420'|'AdminAddresses284b47b0bb63ae2df3b29f0e691d6fcf'|'AdminAddresses3e053943605d9e4bf7dd7588ea19e9d2'|'AdminAddresses41c2fff4867cc204120f001e7af20f7a'|'AdminAddresses46a2a41cc6e552044816a2d04634545d'|'AdminAddresses57d056ed0984166336b7879c2af3657f'|'AdminAddresses59716c97497eb9694541f7c3d37b1a4d'|'AdminAddresses6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminAddresses6311ae17c1ee52b36e68aaf4ad066387'|'AdminAddresses72d6d7a1885885bb55a565fd1070581a'|'AdminAddresses77587239bf4c54ea493c7033e1dbf636'|'AdminAddresses7cb32e708d6b961d476baced73d362bb'|'AdminAddresses919d1ffe6c1855e790a416efa7b4cc4e'|'AdminAddressesb718adec73e04ce3ec720dd11a06a308'|'AdminAddressesbaa31a65f29121c32b637bb845d41acf'|'AdminAddressesbc910f8bdf70f29374f496f05be0330c'|'AdminAddressesbed08e8af70a98c1a8361f13ec477be0'|'AdminAddressesc9cc8cce247e49bae79f15173ce97354'|'AdminAddressesce26601dac0dea138b7295f02b7620a7'|'AdminAddressesd3b206d196cd6be3a2764c1fb90b200f'|'AdminAddressesdd7bf230fde8d4836917806aff6a6b27'|'AdminAddressese25f0ecd41211b01c83e5fec41df4fe7'|'AdminAddressese4eb5dadb6ee84c5c55a8edf53f6e554'|'AdminAddressesea318a4ad37f0c2d2c368e6c958ed551'|'AdminAddresseseeabead01c6c6f25f22bf0b041df58a9'|'AdminAddressesfe66abce284ec8589e7d791185b5c442'|'AdminAdminPreferences0db377921f4ce762c62526131097968f'|'AdminAdminPreferences0f81567617bb8ebc23f48e74d8ae8acf'|'AdminAdminPreferences11b3df1e92b11e2d899494d3cdf4dd13'|'AdminAdminPreferences1b1befcb86d487715da458117710dfeb'|'AdminAdminPreferences20d6b6498eab9f749d55c9b53151e00a'|'AdminAdminPreferences2c111a587b8e6a65856ac7933d76bdce'|'AdminAdminPreferences46f18d3960afc01e5a1a5a0e0e9d571b'|'AdminAdminPreferences4ae386b852a3ee22324e8922e50c9aec'|'AdminAdminPreferences4e7ff7ca556a7ac8329ab27834e9631b'|'AdminAdminPreferences694c63d4a2b60499f7ba524fb639811f'|'AdminAdminPreferences73cdddd7730abfc13a55efb9f5685a3b'|'AdminAdminPreferences8004e61ca76ff500d1e6ee92f7cb7f93'|'AdminAdminPreferences99059a2047f475cdc6428076e3360134'|'AdminAdminPreferencesa274f4d4670213a9045ce258c6c56b80'|'AdminAdminPreferencesa676520f8296be0319ad6268657471ea'|'AdminAdminPreferencesade28d54bcdbc7c4cfd45d84ad517f7b'|'AdminAdminPreferencesb32a8e98434105bcfe4f234aa4c7b28b'|'AdminAdminPreferencesb48de7251c23e4b0eb0975b1c7bf9bc5'|'AdminAdminPreferencesb8a8fa662505e278031049e4990e428a'|'AdminAdminPreferencesc9cc8cce247e49bae79f15173ce97354'|'AdminAdminPreferencescabcb35221054c8ad296eb4e406e2cd7'|'AdminAdminPreferencesdcfba1534995899d2ca36cda978da215'|'AdminAdminPreferencese0853b619fbd24fdabc3ae78beb81193'|'AdminAdminPreferencese0c9f1de766b906e5660ea07af8a02ec'|'AdminAdminPreferencese62d77475fe6318731b4411ba1181dca'|'AdminAdminPreferencese78f32f514dbd49e570066db36343d13'|'AdminAdminPreferencese7fe6b70f4558e23f0254d80f52ae6d8'|'AdminAttachments0b27918290ff5323bea1e3b78a9cf04e'|'AdminAttachments0c6c7ccc80b3bfb8fcb57dc63405f599'|'AdminAttachments1351017ac6423911223bc19a8cb7c653'|'AdminAttachments1f66f9472666b18b19c22fd0f1a6a07b'|'AdminAttachments49ee3087348e8d44e1feda1917443987'|'AdminAttachments5251010ec9e364492c236bf8b9983928'|'AdminAttachments6f6cb72d544962fa333e2e34ce64f719'|'AdminAttachments8a23b9ee3a4502a0de3fc32c5ba7aa65'|'AdminAttachments8ecfb7c46cc91aaa98cc88b3f43cfffc'|'AdminAttachmentsb5a7adde1af5c87d7fd797b6245c2a39'|'AdminAttachmentsb718adec73e04ce3ec720dd11a06a308'|'AdminAttachmentsbdf4f1da184f2dc052c75ad7e1afbd4a'|'AdminAttachmentsc9cc8cce247e49bae79f15173ce97354'|'AdminAttachmentsd3b206d196cd6be3a2764c1fb90b200f'|'AdminAttachmentsd647666a6c4cef994b4fa1a540ba4481'|'AdminAttachmentse25f0ecd41211b01c83e5fec41df4fe7'|'AdminAttachmentse9cb217697088a98b1937d111d936281'|'AdminAttachmentseefad10f0e06ebfb6a27344408e54660'|'AdminAttachmentsfc1ff5390ecc7efd695f697f3d6b7e4b'|'AdminAttributeGenerator402784f5f14c30e7309a135ba6be531f'|'AdminAttributeGenerator81315cfd898aada1e99e0034b4b078c3'|'AdminAttributeGenerator9446a98ad14416153cc4d45ab8b531bf'|'AdminAttributeGeneratorced303d99586792bb560b5e1d35ea220'|'AdminAttributesGroups00039b674d8ced58313546dcab88a032'|'AdminAttributesGroups0e010c6b3fb88bf4277c880d1657787a'|'AdminAttributesGroups170269305ed04c49b26b2d5dbe053dc6'|'AdminAttributesGroups1736c2a3dfbe74f884bf5c9750bd4606'|'AdminAttributesGroups17af8baa9b3f90e936589069e4223280'|'AdminAttributesGroups1f40023e11d8401b0bffadc419135247'|'AdminAttributesGroups22cbf85c41427960736dc10cfec5faf4'|'AdminAttributesGroups287234a1ff35a314b5b6bc4e5828e745'|'AdminAttributesGroups2dce4461e5743f3b01acd4599a38d646'|'AdminAttributesGroups49ee3087348e8d44e1feda1917443987'|'AdminAttributesGroups5204077231fc7164e2269e96b584dd95'|'AdminAttributesGroups52729803b243ea9693a892161d5b8e38'|'AdminAttributesGroups52f5e0bc3859bc5f5e25130b6c7e8881'|'AdminAttributesGroups561f47d9c8a6153b011def4fd72386d5'|'AdminAttributesGroups577cf2cf1be74419ac04093a2b4cd64d'|'AdminAttributesGroups6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminAttributesGroups630f6dc397fe74e52d5189e2c80f282b'|'AdminAttributesGroups689202409e48743b914713f96d93947c'|'AdminAttributesGroups713271e705e5269fc82684445cd063a8'|'AdminAttributesGroups71c476c94d0a0e3dfc0826afd03d2dda'|'AdminAttributesGroups71e8f8a090925f75719dfa0a5eae059e'|'AdminAttributesGroups72d6d7a1885885bb55a565fd1070581a'|'AdminAttributesGroups7d5672f569de406c85249db6f1c99ec0'|'AdminAttributesGroups8bd90a6d76a77fe0b160e8abd85c8590'|'AdminAttributesGroups9446a98ad14416153cc4d45ab8b531bf'|'AdminAttributesGroups9d55fc80bbb875322aa67fd22fc98469'|'AdminAttributesGroupsa3e8ae43188ae76d38f414b2bdb0077b'|'AdminAttributesGroupsb5e6921c2d093fbcb0088c9466ee9983'|'AdminAttributesGroupsb718adec73e04ce3ec720dd11a06a308'|'AdminAttributesGroupsba353198430b2004efeb1ac6d1f410d0'|'AdminAttributesGroupsc82a6100dace2b41087ba6cf99a5976a'|'AdminAttributesGroupsc9cc8cce247e49bae79f15173ce97354'|'AdminAttributesGroupscb5feb1b7314637725a2e73bdc9f7295'|'AdminAttributesGroupsced303d99586792bb560b5e1d35ea220'|'AdminAttributesGroupsd274013ea65428454962a59b7b373a41'|'AdminAttributesGroupsd3b206d196cd6be3a2764c1fb90b200f'|'AdminAttributesGroupsdd24a1142c1070a0efbdf43b4f0167cc'|'AdminAttributesGroupse25f0ecd41211b01c83e5fec41df4fe7'|'AdminAttributesGroupsf2d1c5443636295e9720caac90ea8d93'|'AdminAttributesGroupsf68b27443f6e6f685cce3f9f422a2b84'|'AdminAttributesGroupsf7931413dee107ddf5289c8886baf7ec'|'AdminAttributesGroupsfce2e84f3cce0e5351e85e9f0cb20107'|'AdminBackup03727ac48595a24daed975559c944a44'|'AdminBackup1589ac76f2f88749f51028f09b23f9d4'|'AdminBackup1908624a0bca678cd26b99bfd405324e'|'AdminBackup2c7338ad06a6bb0747b0d432c33464ce'|'AdminBackup2e25562aa49c13b17e979d826fecc25f'|'AdminBackup30c210e0173f2ff607cc84dc01ffc1f0'|'AdminBackup34082694d21dbdcfc31e6e32d9fb2b9f'|'AdminBackup44749712dbec183e983dcd78a7736c41'|'AdminBackup6a7e73161603d87b26a8eac49dab0a9c'|'AdminBackup6afc2b40f9acff2a4d1e67f2dfcd8a30'|'AdminBackup8859ec81a77f2f2b165bf5ea9858ecfc'|'AdminBackup9d8d2d5ab12b515182a505f54db7f538'|'AdminBackupb07ccf1ffff29007509d45dbcc13f923'|'AdminBackupb55e509c697e4cca0e1d160a7806698f'|'AdminBackupc9cc8cce247e49bae79f15173ce97354'|'AdminBackupd3b206d196cd6be3a2764c1fb90b200f'|'AdminBackupe25f0ecd41211b01c83e5fec41df4fe7'|'AdminBackupe807d3ccf8d24c8c1a3d86db5da78da8'|'AdminBackupea4788705e6873b424c65e91c2846b19'|'AdminBackupf36c9a20c2ce51f491c944e41fde5ace'|'AdminCarriers00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCarriers049de64decc4aa8fa5aa89cf8b17470c'|'AdminCarriers0687bb4ca6cc1c51d79684159f91ff11'|'AdminCarriers082ebbb29b5ba59c293a00a55581679b'|'AdminCarriers0cce6348a3d85f52a44d053f542afcbc'|'AdminCarriers1412292b09d3cd39f32549afb1f5f102'|'AdminCarriers1935671a637346f67b485596b9fcba2c'|'AdminCarriers1c0e287237d8c352c6ead633b019c047'|'AdminCarriers1c6c9d089ce4b751673e3dd09e97b935'|'AdminCarriers1c76cbfe21c6f44c1d1e59d54f3e4420'|'AdminCarriers1d6af794b2599c1407a83029a09d1ecf'|'AdminCarriers3194ebe40c7a8c29c78ea79066b6e05c'|'AdminCarriers324029d06c6bfe85489099f6e69b7637'|'AdminCarriers3e86ececa46af50900510892f94c4ed6'|'AdminCarriers482836cce404046ca7dc34fb0a6fc526'|'AdminCarriers49ee3087348e8d44e1feda1917443987'|'AdminCarriers49fec5c86a3b43821fdf0d9aa7bbd935'|'AdminCarriers4b78ac8eb158840e9638a3aeb26c4a9d'|'AdminCarriers4ca4a355318f45dac9fb0ee632d8dc3c'|'AdminCarriers4e140ba723a03baa6948340bf90e2ef6'|'AdminCarriers4f890cf6a72112cad95093baecf39831'|'AdminCarriers52f5e0bc3859bc5f5e25130b6c7e8881'|'AdminCarriers590f6d9a5885f042982c9a911f76abda'|'AdminCarriers5e6b7c069d71052ffc8c4410c0c46992'|'AdminCarriers6803abe0c8347830d574da8e04fa78e5'|'AdminCarriers6e6fbb3d274ac15210f6b7892c7d24c1'|'AdminCarriers7475ec0d41372a307c497acb7eeea8c4'|'AdminCarriers7589dfa9a5a899e9701335164c9ab520'|'AdminCarriers780c462e85ba4399a5d42e88f69a15ca'|'AdminCarriers7dce122004969d56ae2e0245cb754d35'|'AdminCarriers8a52ca34a90eb8486886815e62958ac1'|'AdminCarriers8c2857a9ad1d8f31659e35e904e20fa6'|'AdminCarriers8f497c1a3d15af9e0c215019f26b887d'|'AdminCarriers91aa2e3b1cd071ba7031bf4263e11821'|'AdminCarriers920bd1fb6d54c93fca528ce941464225'|'AdminCarriers93cba07454f06a4a960172bbd6e2a435'|'AdminCarriers9d55fc80bbb875322aa67fd22fc98469'|'AdminCarriers9e93aab109e30d26aa231a49385c99db'|'AdminCarriersa414ac63c6b29218661d1fa2c6e21b5b'|'AdminCarriersa788f81b3aa0ef9c9efcb1fb67708d82'|'AdminCarriersb00b85425e74ed2c85dc3119b78ff2c3'|'AdminCarriersb3ff996fe5c77610359114835baf9b38'|'AdminCarriersb718adec73e04ce3ec720dd11a06a308'|'AdminCarriersb9f5c797ebbf55adccdd8539a65a0241'|'AdminCarriersbafd7322c6e97d25b6299b5d6fe8920b'|'AdminCarriersc26732c157d7b353c1be9f7ba8962e57'|'AdminCarriersc8b462f779749d2e27abed2e9501b2bd'|'AdminCarriersc9cc8cce247e49bae79f15173ce97354'|'AdminCarrierscdaa245d6e50b5647bfd9fcb77ac9a21'|'AdminCarriersd3b206d196cd6be3a2764c1fb90b200f'|'AdminCarriersd7049d8a068769eb32177e404639b8ce'|'AdminCarriersdde695268ea519ababd83f0ca3d274fc'|'AdminCarrierse1bcd0aa73dbc610f1fc628499244d8f'|'AdminCarrierse25f0ecd41211b01c83e5fec41df4fe7'|'AdminCarrierse29e90d06dc78b1a6b2e5e9d61f2f724'|'AdminCarrierse3d29a6f3d7588301aa04429e686b260'|'AdminCarrierse6b391a8d2c4d45902a23a8b6585703d'|'AdminCarrierse81c4e4f2b7b93b481e13a8553c2ae1b'|'AdminCarriersec53a8c4f07baed5d8825072c89799be'|'AdminCarriersf2a6c498fb90ee345d997f888fce3b18'|'AdminCarriersf8af50e8f2eb39dc8581b4943d6ec59f'|'AdminCarriersff5e2cfc010955358f7ff264d9e58398'|'AdminCarrierWizard00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCarrierWizard0668ec4bb8d6bcb27d283b2af9bc5888'|'AdminCarrierWizard082ebbb29b5ba59c293a00a55581679b'|'AdminCarrierWizard08c490a8c2d633b012b63dccd00cc719'|'AdminCarrierWizard0979779c4569141b98591d326d343ec2'|'AdminCarrierWizard0f696253cf9dacf6079bf5060e60da06'|'AdminCarrierWizard10ac3d04253ef7e1ddc73e6091c0cd55'|'AdminCarrierWizard1778e0e8555dc044231c1d615b41ddea'|'AdminCarrierWizard1c6c9d089ce4b751673e3dd09e97b935'|'AdminCarrierWizard2222c64a45d69edbf16dd5fb81db904b'|'AdminCarrierWizard290612199861c31d1036b185b4e69b75'|'AdminCarrierWizard29aa46cc3d2677c7e0f216910df600ff'|'AdminCarrierWizard2f79e7f703f8cd0258b0ef7e0237a4be'|'AdminCarrierWizard40fe120d89217e6f04a27723136b8601'|'AdminCarrierWizard482836cce404046ca7dc34fb0a6fc526'|'AdminCarrierWizard497876c111e98a20564817545518f829'|'AdminCarrierWizard4b78ac8eb158840e9638a3aeb26c4a9d'|'AdminCarrierWizard4ca4a355318f45dac9fb0ee632d8dc3c'|'AdminCarrierWizard4f890cf6a72112cad95093baecf39831'|'AdminCarrierWizard5929a4e1d04d4653b6dbe2aac59d8a41'|'AdminCarrierWizard5b26cf06b6165264574bf9e097f062bc'|'AdminCarrierWizard6305822e6fd3b92120ee6f23552164c4'|'AdminCarrierWizard65a0cd2bca5d0a980a5582a548d79900'|'AdminCarrierWizard6f3455d187a23443796efdcbe044096b'|'AdminCarrierWizard756eb8cebeb953f5ae47235ff2e183b5'|'AdminCarrierWizard780c462e85ba4399a5d42e88f69a15ca'|'AdminCarrierWizard7cee91acc888d490e2622f3eca17cd37'|'AdminCarrierWizard81e24bc79af497d9e9c486bfa24742be'|'AdminCarrierWizard829c7cc5ed48e11df7ac9b05e236a12c'|'AdminCarrierWizard82ef5a4b25d9debf587900797b0b9619'|'AdminCarrierWizard8317f5bb182c1e92c11221955592b518'|'AdminCarrierWizard885ef9bdb910d1379b853075daf44e43'|'AdminCarrierWizard8c2857a9ad1d8f31659e35e904e20fa6'|'AdminCarrierWizard920bd1fb6d54c93fca528ce941464225'|'AdminCarrierWizard93cba07454f06a4a960172bbd6e2a435'|'AdminCarrierWizard9c3448f86be5ee19015f4ecce4bbd6fe'|'AdminCarrierWizard9d55fc80bbb875322aa67fd22fc98469'|'AdminCarrierWizard9ef70769595c35cca03dae49ac1f31d1'|'AdminCarrierWizarda083cb6637472c81ec701d3342320adf'|'AdminCarrierWizarda20ddccbb6f808ec42cd66323e6c6061'|'AdminCarrierWizarda788f81b3aa0ef9c9efcb1fb67708d82'|'AdminCarrierWizardaacaecfacce577935cf83eeb01bcac40'|'AdminCarrierWizardb9f5c797ebbf55adccdd8539a65a0241'|'AdminCarrierWizardbae6cceb9789ee48445a0ddc8c143f0b'|'AdminCarrierWizardbafd7322c6e97d25b6299b5d6fe8920b'|'AdminCarrierWizardbe78233fdb6fe537e065a0d8650c0e84'|'AdminCarrierWizardc8b462f779749d2e27abed2e9501b2bd'|'AdminCarrierWizardc91e596246bbf8fdff9dae7b349d71d9'|'AdminCarrierWizardcfabe09befdc8289f6ca5fbc6887ffe5'|'AdminCarrierWizardd7049d8a068769eb32177e404639b8ce'|'AdminCarrierWizardda5c987cbda47de7a6b09406b0840ec4'|'AdminCarrierWizarddd1f775e443ff3b9a89270713580a51b'|'AdminCarrierWizarddde695268ea519ababd83f0ca3d274fc'|'AdminCarrierWizardde62775a71fc2bf7a13d7530ae24a7ed'|'AdminCarrierWizarde0c892f1ca1fb503987c2db8fd250a43'|'AdminCarrierWizarde2fb9fa6091dd9f779b98efdf998a00a'|'AdminCarrierWizardea4788705e6873b424c65e91c2846b19'|'AdminCarrierWizardf1fe3b3625cdded65fc740dd16b978a6'|'AdminCartRules447da4af35bd09b4d501afb8a2090909'|'AdminCartRules49ee3087348e8d44e1feda1917443987'|'AdminCartRules502996d9790340c5fd7b86a5b93b1c9f'|'AdminCartRules65b7eaeb9ba4e9903f82297face9f7cd'|'AdminCartRules694e8d1f2ee056f98ee488bdc4982d73'|'AdminCartRules8c1279db4db86553e4b9682f78cf500e'|'AdminCartRulesb718adec73e04ce3ec720dd11a06a308'|'AdminCartRulesbd0e34e5be6447844e6f262d51f1a9dc'|'AdminCartRulesca0dbad92a874b2f69b549293387925e'|'AdminCartRulesd3b206d196cd6be3a2764c1fb90b200f'|'AdminCartRulese25f0ecd41211b01c83e5fec41df4fe7'|'AdminCartRulesec53a8c4f07baed5d8825072c89799be'|'AdminCartRulesf7de1b71605a10ef04416effa4c6e09e'|'AdminCarts0b91ef9198a761459c595de4b12ca109'|'AdminCarts0ec8109e3ffa61bcc147c89d9a396cd7'|'AdminCarts121401ccf0e3e23bcefe6a454f0f0601'|'AdminCarts44749712dbec183e983dcd78a7736c41'|'AdminCarts4d9e1e12ad8a61ea2a5554407488d91a'|'AdminCarts54e85d70ea67acdcc86963b14d6223a8'|'AdminCarts54f664c70c22054ea0d8d26fc3997ce7'|'AdminCarts90855df1b2d1240c62d81bd35d4cfb06'|'AdminCarts914419aa32f04011357d3b604a86d7eb'|'AdminCarts915000b6f3e7bb451a6ed4ffc2839ab6'|'AdminCarts947d8520f04473da621f2718138f3bc6'|'AdminCarts96b0141273eabab320119c467cdcaf17'|'AdminCartsb00b85425e74ed2c85dc3119b78ff2c3'|'AdminCartsb718adec73e04ce3ec720dd11a06a308'|'AdminCartsc595d2957600891ad3063a9b13dda4b0'|'AdminCartsce26601dac0dea138b7295f02b7620a7'|'AdminCartsd3b206d196cd6be3a2764c1fb90b200f'|'AdminCartsd79cf3f429596f77db95c65074663a54'|'AdminCartse25f0ecd41211b01c83e5fec41df4fe7'|'AdminCartse4c3da18c66c0147144767efeb59198f'|'AdminCartsee77ea46b0c548ed60eadf31bdd68613'|'AdminCartsf9b01554c32cc580b7380302f22613de'|'AdminCartsffbb5322a3702b0d8d9c7f506209c540'|'AdminCategories00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCategories09e2683b6b92b326691cd992f6e5684b'|'AdminCategories154b6e494bf56cc4c787bfee6deac113'|'AdminCategories1dec4f55522b828fe5dacf8478021a9e'|'AdminCategories2028f52eb6d12dc1814f92f18c7365a0'|'AdminCategories3adbdb3ac060038aa0e6e6c138ef9873'|'AdminCategories3b449120fdb2867c000d7bba671aead3'|'AdminCategories3e053943605d9e4bf7dd7588ea19e9d2'|'AdminCategories3f64b2beede1082fd32ddb0bf11a641f'|'AdminCategories42c9e94e8e5c29861de422525262ff17'|'AdminCategories42f9ee5026d32792987af851a2ea0343'|'AdminCategories463848257c086c4816d9f4c020a8d19e'|'AdminCategories49ee3087348e8d44e1feda1917443987'|'AdminCategories4ae362f049719078c429941bed5dd440'|'AdminCategories52b68aaa602d202c340d9e4e9157f276'|'AdminCategories52f5e0bc3859bc5f5e25130b6c7e8881'|'AdminCategories53d98bd116f47fdfe15c8eb4525c5e99'|'AdminCategories5f573e91e5eaa092e00a4c4df393c0cb'|'AdminCategories6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminCategories630f6dc397fe74e52d5189e2c80f282b'|'AdminCategories728b291abe64a8db2e524340d3a5ad4a'|'AdminCategories72d6d7a1885885bb55a565fd1070581a'|'AdminCategories7d7559ccac6bc30a4d985db11cb34a3a'|'AdminCategories7dce122004969d56ae2e0245cb754d35'|'AdminCategories7e35726fb991605ab3d0e6406599e6ef'|'AdminCategories850da4810ae3771d696d504d7346caa6'|'AdminCategories86754577897acfb25deb69039d49d9a7'|'AdminCategories86c34fe1588fab846f096e74c989972f'|'AdminCategories920bd1fb6d54c93fca528ce941464225'|'AdminCategories93cba07454f06a4a960172bbd6e2a435'|'AdminCategories947d8520f04473da621f2718138f3bc6'|'AdminCategories9d55fc80bbb875322aa67fd22fc98469'|'AdminCategories9e11e4b371570340ca07913bc4783a7a'|'AdminCategoriesa6398f9bbc9739ed67ca273b82da0a55'|'AdminCategoriesb5a7adde1af5c87d7fd797b6245c2a39'|'AdminCategoriesb718adec73e04ce3ec720dd11a06a308'|'AdminCategoriesb9f5c797ebbf55adccdd8539a65a0241'|'AdminCategoriesbafd7322c6e97d25b6299b5d6fe8920b'|'AdminCategoriesc9cc8cce247e49bae79f15173ce97354'|'AdminCategoriesd0d4e3688fdaee5afa292083b855e143'|'AdminCategoriesd3b206d196cd6be3a2764c1fb90b200f'|'AdminCategoriesde360c8b5dd9a9fdd592b1c08b3b4a62'|'AdminCategoriesde9ced9bf5e9829de4a93ad8c9d7a170'|'AdminCategoriese25f0ecd41211b01c83e5fec41df4fe7'|'AdminCategoriesf86f7b91afe27e79305a6b07bdb0d3c0'|'AdminCategoriesfe731b8039502b7b8a526edc4e232785'|'AdminCms00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCms1dec4f55522b828fe5dacf8478021a9e'|'AdminCms21f93401134586a6c481422bf01fccfd'|'AdminCms3ed349365d718a59eadb9df9d5c339f2'|'AdminCms3f64b2beede1082fd32ddb0bf11a641f'|'AdminCms45b1bce0ceb1e155fc99d59a21761b9e'|'AdminCms52f5e0bc3859bc5f5e25130b6c7e8881'|'AdminCms5ece607071fe59ddc4c88dc6abfe2310'|'AdminCms6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminCms7101cb00c6057071c3f5e52bcb31336b'|'AdminCms789ca3cc9e29e7ef767619e13c6b2f9e'|'AdminCms7d7559ccac6bc30a4d985db11cb34a3a'|'AdminCms86754577897acfb25deb69039d49d9a7'|'AdminCms87d49200bfc48e0bcfd3bae27d5616f3'|'AdminCms9d55fc80bbb875322aa67fd22fc98469'|'AdminCms9e11e4b371570340ca07913bc4783a7a'|'AdminCms9ea67be453eaccf020697b4654fc021a'|'AdminCmsb718adec73e04ce3ec720dd11a06a308'|'AdminCmsb78a3223503896721cca1303f776159b'|'AdminCmsb9f5c797ebbf55adccdd8539a65a0241'|'AdminCmsc9cc8cce247e49bae79f15173ce97354'|'AdminCmsCategories00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCmsCategories1dec4f55522b828fe5dacf8478021a9e'|'AdminCmsCategories3f64b2beede1082fd32ddb0bf11a641f'|'AdminCmsCategories49ee3087348e8d44e1feda1917443987'|'AdminCmsCategories52f5e0bc3859bc5f5e25130b6c7e8881'|'AdminCmsCategories57bd1d8ace15f17054281d1e88336b97'|'AdminCmsCategories6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminCmsCategories789ca3cc9e29e7ef767619e13c6b2f9e'|'AdminCmsCategories7d7559ccac6bc30a4d985db11cb34a3a'|'AdminCmsCategories86754577897acfb25deb69039d49d9a7'|'AdminCmsCategories9d55fc80bbb875322aa67fd22fc98469'|'AdminCmsCategories9e11e4b371570340ca07913bc4783a7a'|'AdminCmsCategoriesaf1b98adf7f686b84cd0b443e022b7a0'|'AdminCmsCategoriesb5a7adde1af5c87d7fd797b6245c2a39'|'AdminCmsCategoriesb718adec73e04ce3ec720dd11a06a308'|'AdminCmsCategoriesb9f5c797ebbf55adccdd8539a65a0241'|'AdminCmsCategoriesbed3b3133d292db46a0d28c5d91811b9'|'AdminCmsCategoriesc9cc8cce247e49bae79f15173ce97354'|'AdminCmsCategoriesd3b206d196cd6be3a2764c1fb90b200f'|'AdminCmsCategoriese25f0ecd41211b01c83e5fec41df4fe7'|'AdminCmscc4fbd30d676ea2f9994b7063a8ada15'|'AdminCmsce1e51212c9df52777620dc9de246da0'|'AdminCmsContentaf83e3b9f5d8398fc7b9e88cd6105bde'|'AdminCmsContentc7da501f54544eba6787960200d9efdb'|'AdminCmsContentd0ce974814566418b6ad509f305f319a'|'AdminCmsContentd3b206d196cd6be3a2764c1fb90b200f'|'AdminCmsContente25f0ecd41211b01c83e5fec41df4fe7'|'AdminCmsContentef61fb324d729c341ea8ab9901e23566'|'AdminCmsContentf7931413dee107ddf5289c8886baf7ec'|'AdminCmsd3b206d196cd6be3a2764c1fb90b200f'|'AdminCmse25f0ecd41211b01c83e5fec41df4fe7'|'AdminCmse6b391a8d2c4d45902a23a8b6585703d'|'AdminCmsef61fb324d729c341ea8ab9901e23566'|'AdminCmsf8825c9f08ff15b5ef6bc3a3898817e8'|'AdminContacts00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminContacts0f28459fa87b1b3ce6e8b17932f08c3a'|'AdminContacts9aa698f602b1e5694855cee73a683488'|'AdminContacts9cd9efd3eb168071eb0a199972c54aab'|'AdminContacts9d55fc80bbb875322aa67fd22fc98469'|'AdminContactsa2b086325f59e6c2fbd410511f4fdfb3'|'AdminContactsa4cd3191fdeea29906a113c78d4c0e26'|'AdminContactsb357b524e740bc85b9790a0712d84a30'|'AdminContactsb5a7adde1af5c87d7fd797b6245c2a39'|'AdminContactsb718adec73e04ce3ec720dd11a06a308'|'AdminContactsb78a3223503896721cca1303f776159b'|'AdminContactsb9f5c797ebbf55adccdd8539a65a0241'|'AdminContactsc41f67055a184ed2e895681336572761'|'AdminContactsc9cc8cce247e49bae79f15173ce97354'|'AdminContactsd3b206d196cd6be3a2764c1fb90b200f'|'AdminContactsdaedf9c5c8f38ac4cf641f3fb3e1bdc4'|'AdminContactse25f0ecd41211b01c83e5fec41df4fe7'|'AdminCountries00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCountries01e93e9457d86c646965decd586dc5ea'|'AdminCountries05820ffcf621269347a1c14d81d20b77'|'AdminCountries0bd345b58335589d4c2fa1e50ae38619'|'AdminCountries0c750dacc725ba4047374d2efc56ce3a'|'AdminCountries10d30c6319cf61386c878e4d9a3e09a2'|'AdminCountries21e6a1298ab4cd040464d67a19d0f957'|'AdminCountries25d176f9d01ba273d1097ca7b298d281'|'AdminCountries3477a6086401c89ab72387673c777af2'|'AdminCountries3a58c76da4f48aaeb46af20f34caac1b'|'AdminCountries3be0efaecb3514a14757b8beb4b5dbb3'|'AdminCountries46a2a41cc6e552044816a2d04634545d'|'AdminCountries4d3d769b812b6faa6b76e1a8abaece2d'|'AdminCountries59716c97497eb9694541f7c3d37b1a4d'|'AdminCountries6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminCountries6416e8cb5fc0a208d94fa7f5a300dbc4'|'AdminCountries665e1ad1c6657791cecb5b68008c7c00'|'AdminCountries790d59ef178acbc75d233bf4211763c6'|'AdminCountries92de0162cbdfa60f671ba3cad1d392a1'|'AdminCountries93cba07454f06a4a960172bbd6e2a435'|'AdminCountries94d7422ba3c5b0f2a35f50b048e51c6d'|'AdminCountries9d55fc80bbb875322aa67fd22fc98469'|'AdminCountriesa2ddbdfb29a0708bd711601f9277435c'|'AdminCountriesa4f164d8b1b72c87b8ce558827bcd423'|'AdminCountriesab81f235de173b2d7c0b69009dc6d492'|'AdminCountriesabb056fd74a8bdf858dbe3e68c5ea97c'|'AdminCountriesad68f9bafd9bf2dcf3865dac55662fd5'|'AdminCountriesb3ff996fe5c77610359114835baf9b38'|'AdminCountriesb718adec73e04ce3ec720dd11a06a308'|'AdminCountriesb9f5c797ebbf55adccdd8539a65a0241'|'AdminCountriesbafd7322c6e97d25b6299b5d6fe8920b'|'AdminCountriesc9cc8cce247e49bae79f15173ce97354'|'AdminCountriescd2f7b9409e0f1527766ad35aa8bd3c5'|'AdminCountriesce26601dac0dea138b7295f02b7620a7'|'AdminCountriesd3b206d196cd6be3a2764c1fb90b200f'|'AdminCountriesd3c5d8339f3840b75b4031c2b1e508de'|'AdminCountriesd8ec51bf63378409b1d40cc45c80f926'|'AdminCountriesdd7bf230fde8d4836917806aff6a6b27'|'AdminCountriese25f0ecd41211b01c83e5fec41df4fe7'|'AdminCountriesecefe3def8a2d034d80f6a8876c3d4b1'|'AdminCountriesf52c1ff75f69fa46ae947f0a3f653641'|'AdminCurrencies00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCurrencies02c86eb2792f3262c21d030a87e19793'|'AdminCurrencies05f78b95fd31ed10def4d0c1ef8e4751'|'AdminCurrencies076b68505282c6c0654708db343d6673'|'AdminCurrencies188b945338e1d6582c845dfebb469a45'|'AdminCurrencies1d10d84822a63187918311cb3a4e0c87'|'AdminCurrencies2b417805040de3a3df31c8fd3626b57c'|'AdminCurrencies2faec1f9f8cc7f8f40d521c4dd574f49'|'AdminCurrencies386c339d37e737a436499d423a77df0c'|'AdminCurrencies462fdc88328b3c9d31c63fa01b4f00b1'|'AdminCurrencies4abafa9686f98e398e29e46fd388fa36'|'AdminCurrencies4ef5571f164a6a7fcc9f4625d14e260b'|'AdminCurrencies586e27d3575f00e51ad43b66eb34e49f'|'AdminCurrencies597d44d65d4c76fe8cc8127b5b9b98bc'|'AdminCurrencies5f41116581201a5ef32656b7d4a51e88'|'AdminCurrencies5f838bbd088886f09f67b904e414f0e7'|'AdminCurrencies627b24abf27e2d03d38537f84e81cb2e'|'AdminCurrencies7559b7b096e0579368ca2ac7c187ba52'|'AdminCurrencies77428b04a1847555eb9bc52422a377b0'|'AdminCurrencies7c77e53206853cb381e91e037554faa3'|'AdminCurrencies8246d0c794e7db090587c4797b2a234f'|'AdminCurrencies876ca43ba50351d4e492970f40632661'|'AdminCurrencies9b9e87b59be497e92da8d2208f9914a0'|'AdminCurrencies9d55fc80bbb875322aa67fd22fc98469'|'AdminCurrenciesabe69e8e4b387562a767a6adaf112ed8'|'AdminCurrenciesad68f9bafd9bf2dcf3865dac55662fd5'|'AdminCurrenciesae2fce768106a7b6a61e57943b7a2143'|'AdminCurrenciesb718adec73e04ce3ec720dd11a06a308'|'AdminCurrenciesb9f5c797ebbf55adccdd8539a65a0241'|'AdminCurrenciesc1eaa657dda2892e5fec322ac710133a'|'AdminCurrenciesc9cc8cce247e49bae79f15173ce97354'|'AdminCurrenciesd3b206d196cd6be3a2764c1fb90b200f'|'AdminCurrenciesdfcfc43722eef1eab1e4a12e50a068b1'|'AdminCurrenciese25f0ecd41211b01c83e5fec41df4fe7'|'AdminCurrenciese75e316ab3a0a8c0c5fc4b48d1a7033f'|'AdminCurrenciesf6536046d7af41c3f3975868d6963179'|'AdminCurrenciesf90c17fdefeeca8b0d55b80a7bc3cb34'|'AdminCurrenciesfca4f4976817baa4a25858a3d6d5274d'|'AdminCustomerPreferences0db377921f4ce762c62526131097968f'|'AdminCustomerPreferences9f7a304fd501ed0e4d06b899fed739d0'|'AdminCustomerPreferencesbcb9adf1d2347258b5c65483e34cf86f'|'AdminCustomerPreferencesf2c822352f0e0a62e2de6d716475911b', '%s - All people who have created an account on this site.'|'%s - All people without a valid customer account.'|'%s - Customer who placed an order with the guest checkout.'|'%s tax excl.'|'(ie. "DROP TABLE IF EXISTS")'|'30 days'|'Abandoned cart'|'Abandoned Carts'|'According to total price'|'According to total price.'|'According to total weight'|'According to total weight.'|'Active'|'Add handling costs'|'Add New'|'Add new'|'Add new address'|'Add new attachment'|'Add New Attribute'|'Add new attribute'|'Add New Attributes'|'Add new carrier'|'Add new cart rule'|'Add new category'|'Add new CMS category'|'Add new CMS page'|'Add new contact'|'Add new country'|'Add new currency'|'Add new root category'|'Add New Value'|'Add new value'|'Add New Values'|'Address'|'Address alias'|'Address format'|'Address format invalid'|'Addresses'|'Age'|'Allowed characters: letters, spaces and %s'|'Allowed characters: letters, spaces and "%s".'|'An error occurred while saving associations of shops.'|'An error occurred while saving carrier groups.'|'An error occurred while saving carrier logo.'|'An error occurred while saving carrier ranges.'|'An error occurred while saving carrier zones.'|'An error occurred while saving the tax rules group.'|'An error occurred while saving this carrier.'|'Applies to all prices (e.g. $1,240.15).'|'Apply both regular shipping cost and product-specific shipping costs.'|'Apply shipping cost'|'Apply the cost of the highest defined range'|'Assign to a new zone'|'Associated with'|'Attachment'|'Attribute group'|'Attribute type'|'Attributes'|'Attributes generator'|'Automatically check for module updates'|'Automatically update currency rates'|'Average number of products per category'|'Average Order Value'|'Back to list'|'Back to the product'|'Backup options'|'Bad SQL query'|'Billing'|'Call prefix'|'Cancel'|'Carrier'|'Carrier name'|'Carrier name displayed during checkout'|'Carriers'|'Cart #%06d'|'Cart Rules'|'Categories'|'Category'|'Category Cover Image'|'Category thumbnail'|'Check the cookie\'s IP address'|'Check the IP address of the cookie in order to prevent your cookie from being stolen.'|'Choose a color with the color picker, or enter an HTML color (e.g. "lightblue", "#CC6600").'|'Choose the attribute group for this value.'|'City'|'CMS'|'CMS Category'|'CMS Page'|'Code'|'Color'|'Color or texture'|'Company'|'Contact name (e.g. Customer Support).'|'Contacts'|'Contains states'|'Conversion Rate'|'Countries'|'Country'|'Country name'|'Country options'|'Currencies'|'Currency'|'Currency format'|'Currency name'|'Currency rates'|'Current texture'|'Customer'|'Date'|'Day'|'Days'|'Decimals'|'Default behavior'|'Default currency'|'Default store currency'|'Define the upload limit for a downloadable product (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'|'Define the upload limit for an image (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'|'Delay'|'Delete'|'Delete selected'|'Delete selected item?'|'Delete selected items?'|'Delivery tracking URL: Type \'@\' where the tracking number should appear. It will be automatically replaced by the tracking number.'|'Delivery tracking URL: Type \'@\' where the tracking number should appear. It will then be automatically replaced by the tracking number.'|'Description'|'Disable carrier'|'Disabled'|'Disabled Categories'|'Display decimals in prices.'|'Display tax label (e.g. "Tax incl.")'|'Display this country to your customers (the selected country will always be displayed in the Back Office).'|'Displayed'|'DNI / NIF / NIE'|'Do you need a tax identification number?'|'Does it need Zip/postal code?'|'Drop existing tables during import'|'Drop existing tables during import.'|'Drop-down list'|'Edit'|'Edit New Attribute'|'Edit Value'|'Edit: %s'|'Email address'|'Emails will be sent to this address.'|'Empty Categories'|'Enable'|'Enable the carrier in the front office.'|'Enabled'|'Enter "0" for a longest shipping delay, or "9" for the shortest shipping delay.'|'Estimated delivery time will be displayed during checkout.'|'Exchange rate'|'Exchange rates are calculated from one unit of your shop\'s default currency. For example, if the default currency is euros and your chosen currency is dollars, type "1.20" (1€ = $1.20).'|'Expiration date'|'Export carts'|'Failed to copy the file.'|'Failed to update the status'|'File'|'File name'|'File not found'|'File size'|'Filename'|'Finish'|'First Name'|'For example: \'http://example.com/track.php?num=@\' with \'@\' where the tracking number should appear.'|'For in-store pickup, enter 0 to replace the carrier name with your shop name.'|'Forbidden characters'|'Free Shipping'|'Free shipping'|'Friendly URL'|'From %s to %s'|'Further information regarding this contact.'|'General'|'General settings'|'Geographical region.'|'Group access'|'Home phone'|'Hour'|'Hours'|'hours'|'ID'|'Identification Number'|'If enabled, all messages will be saved in the "Customer Service" page under the "Customer" menu.'|'If enabled, the backup script will drop your tables prior to restoring data.'|'Ignore statistics tables'|'Import'|'Include a space between symbol and price (e.g. $1,240.15 -> $ 1,240.15).'|'Include the handling costs (as set in Shipping > Preferences) in the final carrier price.'|'Include the shipping and handling costs in the carrier price.'|'Indexation by search engines'|'Indicate the format of the postal code: use L for a letter, N for a number, and C for the country\'s ISO 3166-1 alpha-2 code. For example, NNNNN for the United States, France, Poland and many other; LNNNNLLL for Argentina, etc. If you do not want PrestaShop to verify the postal code for this country, leave it blank.'|'International call prefix, (e.g. 1 for United States).'|'Invalid characters'|'ISO code'|'ISO code (e.g. USD for Dollars, EUR for Euros, etc.).'|'ISO code number'|'It appears the backup was successful, however you must download and carefully verify the backup file before proceeding.'|'Last Name'|'Lifetime of back office cookies'|'Lifetime of front office cookies'|'Logo'|'Mark all of the customer groups which you would like to have access to this category.'|'Mark the groups that are allowed access to this carrier.'|'Maximum depth managed by this carrier. Set the value to "0", or leave this field blank to ignore.'|'Maximum depth managed by this carrier. Set the value to "0," or leave this field blank to ignore.'|'Maximum height managed by this carrier. Set the value to "0", or leave this field blank to ignore.'|'Maximum height managed by this carrier. Set the value to "0," or leave this field blank to ignore.'|'Maximum package depth'|'Maximum package depth (%s)'|'Maximum package height'|'Maximum package height (%s)'|'Maximum package weight'|'Maximum package weight (%s)'|'Maximum package width'|'Maximum package width (%s)'|'Maximum size for a downloadable product'|'Maximum size for a product\'s image'|'Maximum size for attachment'|'Maximum weight managed by this carrier. Set the value to "0", or leave this field blank to ignore.'|'Maximum weight managed by this carrier. Set the value to "0," or leave this field blank to ignore.'|'Maximum width managed by this carrier. Set the value to "0", or leave this field blank to ignore.'|'Maximum width managed by this carrier. Set the value to "0," or leave this field blank to ignore.'|'megabytes'|'Meta description'|'Meta keywords'|'Meta title'|'Mobile phone'|'MultiStore'|'Name'|'Net Profit per Visitor'|'New modules and updates are displayed on the modules page.'|'Next'|'No'|'No items found'|'No Tax'|'No tax'|'Non ordered'|'Notifications'|'Notifications are numbered bubbles displayed at the very top of your back office, right next to the shop\'s name. They display the number of new items since you last clicked on them.'|'Numeric ISO code'|'Numeric ISO code (e.g. 840 for Dollars, 978 for Euros, etc.).'|'Official list here'|'Online'|'Only account creation'|'Only letters and the hyphen (-) character are allowed.'|'Only letters and the minus (-) character are allowed.'|'Only letters and the minus character are allowed.'|'Only letters, numbers, underscore (_) and the minus (-) character are allowed.'|'or'|'Order ID'|'Other'|'Out-of-range behavior'|'Out-of-range behavior occurs when no defined range matches the customer\'s cart (e.g. when the weight of the cart is greater than the highest weight limit defined by the weight ranges).'|'Out-of-range behavior occurs when none is defined (e.g. when a customer\'s cart weight is greater than the highest range limit).'|'Page content'|'Pages in category "%s"'|'Pages in this category'|'Parent category'|'Parent CMS Category'|'Payment'|'Performance'|'Please set another carrier as default before deleting this one.'|'Position'|'Previous'|'Priority'|'product(s)'|'Public name'|'Quantity'|'Radio buttons'|'Registration process type'|'Restrict country selections in front office to those covered by active carriers'|'Root Category'|'Save'|'Save and preview'|'Save and Stay'|'Save and stay'|'Save messages?'|'Save then add another value'|'Set the amount of hours during which the back office cookies are valid. After that amount of time, the PrestaShop user will have to log in again.'|'Set the amount of hours during which the front office cookies are valid. After that amount of time, the customer will have to log in again.'|'Set the maximum size allowed for attachment files (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'|'Shipping and handling'|'Shipping locations and costs'|'Shop association'|'Show notifications for new customers'|'Show notifications for new messages'|'Show notifications for new orders'|'Size'|'Size, weight, and group access'|'Spacing'|'Speed grade'|'Standard (account creation and address creation)'|'State'|'Status'|'Such as with Dollars'|'Such as with Euros'|'Summary'|'Symbol'|'Tax'|'Texture'|'The "Backups" directory located in the admin directory must be writable (CHMOD 755 / 777).'|'The carrier\'s name will be displayed during checkout.'|'The estimated delivery time will be displayed during checkout.'|'The file %1dollars exceeds the size allowed by the server. The limit is set to %2dollard MB.'|'The file is too large. Maximum size allowed is: %1dollard kB. The file you are trying to upload is %2dollard kB.'|'The public name for this attribute, displayed to the customers.'|'The status has been updated successfully'|'The value must be an integer.'|'The way the attribute\'s values will be presented to the customers in the product\'s page.'|'The zones in which this carrier will be used.'|'This attachment is associated with the following products, do you really want to delete it?'|'This feature has been disabled. You can activate it here: %s.'|'This is the main image for your category, displayed in the category page. The category description will overlap this image and appear in its top-left corner.'|'This will display notifications every time a new customer registers in your shop.'|'This will display notifications when new messages are posted in your shop.'|'This will display notifications when new orders are made in your shop.'|'This will override the HTML color!'|'Title'|'To add "tags" click in the field, write something, and then press "Enter."'|'To add "tags," click in the field, write something, and then press "Enter."'|'Top Category'|'Total'|'Total Cart'|'Tracking URL'|'Transit time'|'Two -- or three -- letter ISO code (e.g. "us for United States).'|'Two -- or three -- letter ISO code (e.g. U.S. for United States)'|'Update currency rates'|'Upload a logo from your computer.'|'Upload an image file containing the color texture from your computer.'|'Upload error. Please check your server configurations for the maximum upload size allowed.'|'Upload quota'|'URL'|'Use one of our recommended carrier modules'|'Use PrestaShop\'s webservice to update your currency exchange rates. However, please use caution: rates are provided as-is.'|'Use PrestaShop\'s webservice to update your currency\'s exchange rates. However, please use caution: rates are provided as-is.'|'Value'|'Values'|'Values count'|'VAT number'|'Warehouse'|'Will appear in front office (e.g. $, €, etc.)'|'Yes'|'You can place the following URL in your crontab file, or you can click it yourself regularly'|'You cannot delete the default currency'|'You cannot disable the default currency'|'You must choose at least one shop or group shop.'|'You must register at least one phone number.'|'You now have three default customer groups.'|'Your internal name for this attribute.'|'Zip/Postal Code'|'Zip/postal code format'|'Zone'>&oversized-array", $_LANGADM); + +$_LANGADM['1_AdminCms5ece607071fe59ddc4c88dc6abfe2310'] = 'No items found'; +$_LANGADM['1_AdminContactsd3b206d196cd6be3a2764c1fb90b200f'] = 'Delete selected'; +$_LANGADM['1_AdminContactse25f0ecd41211b01c83e5fec41df4fe7'] = 'Delete selected items?'; +$_LANGADM['1_AdminContactsb718adec73e04ce3ec720dd11a06a308'] = 'ID'; +$_LANGADM['1_AdminContactsb78a3223503896721cca1303f776159b'] = 'Title'; +$_LANGADM['1_AdminContactsb357b524e740bc85b9790a0712d84a30'] = 'Email address'; +$_LANGADM['1_AdminContactsb5a7adde1af5c87d7fd797b6245c2a39'] = 'Description'; +$_LANGADM['1_AdminContacts9aa698f602b1e5694855cee73a683488'] = 'Contacts'; +$_LANGADM['1_AdminContacts9cd9efd3eb168071eb0a199972c54aab'] = 'Contact name (e.g. Customer Support).'; +$_LANGADM['1_AdminContactsdaedf9c5c8f38ac4cf641f3fb3e1bdc4'] = 'Emails will be sent to this address.'; +$_LANGADM['1_AdminContactsa4cd3191fdeea29906a113c78d4c0e26'] = 'Save messages?'; +$_LANGADM['1_AdminContacts0f28459fa87b1b3ce6e8b17932f08c3a'] = 'If enabled, all messages will be saved in the "Customer Service" page under the "Customer" menu.'; +$_LANGADM['1_AdminContacts00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Enabled'; +$_LANGADM['1_AdminContactsb9f5c797ebbf55adccdd8539a65a0241'] = 'Disabled'; +$_LANGADM['1_AdminContactsa2b086325f59e6c2fbd410511f4fdfb3'] = 'Further information regarding this contact.'; +$_LANGADM['1_AdminCountriesd8ec51bf63378409b1d40cc45c80f926'] = 'Call prefix'; +$_LANGADM['1_AdminCountriesb3ff996fe5c77610359114835baf9b38'] = 'Zone'; +$_LANGADM['1_AdminCountries00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Enabled'; + + + +assertType("non-empty-array<'1_AdminCms5ece607071fe59ddc4c88dc6abfe2310'|'1_AdminContacts00d23a76e43b46dae9ec7aa9dcbebb32'|'1_AdminContacts0f28459fa87b1b3ce6e8b17932f08c3a'|'1_AdminContacts9aa698f602b1e5694855cee73a683488'|'1_AdminContacts9cd9efd3eb168071eb0a199972c54aab'|'1_AdminContactsa2b086325f59e6c2fbd410511f4fdfb3'|'1_AdminContactsa4cd3191fdeea29906a113c78d4c0e26'|'1_AdminContactsb357b524e740bc85b9790a0712d84a30'|'1_AdminContactsb5a7adde1af5c87d7fd797b6245c2a39'|'1_AdminContactsb718adec73e04ce3ec720dd11a06a308'|'1_AdminContactsb78a3223503896721cca1303f776159b'|'1_AdminContactsb9f5c797ebbf55adccdd8539a65a0241'|'1_AdminContactsd3b206d196cd6be3a2764c1fb90b200f'|'1_AdminContactsdaedf9c5c8f38ac4cf641f3fb3e1bdc4'|'1_AdminContactse25f0ecd41211b01c83e5fec41df4fe7'|'1_AdminCountries00d23a76e43b46dae9ec7aa9dcbebb32'|'1_AdminCountriesb3ff996fe5c77610359114835baf9b38'|'1_AdminCountriesd8ec51bf63378409b1d40cc45c80f926'|'AdminAddresses1c76cbfe21c6f44c1d1e59d54f3e4420'|'AdminAddresses284b47b0bb63ae2df3b29f0e691d6fcf'|'AdminAddresses3e053943605d9e4bf7dd7588ea19e9d2'|'AdminAddresses41c2fff4867cc204120f001e7af20f7a'|'AdminAddresses46a2a41cc6e552044816a2d04634545d'|'AdminAddresses57d056ed0984166336b7879c2af3657f'|'AdminAddresses59716c97497eb9694541f7c3d37b1a4d'|'AdminAddresses6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminAddresses6311ae17c1ee52b36e68aaf4ad066387'|'AdminAddresses72d6d7a1885885bb55a565fd1070581a'|'AdminAddresses77587239bf4c54ea493c7033e1dbf636'|'AdminAddresses7cb32e708d6b961d476baced73d362bb'|'AdminAddresses919d1ffe6c1855e790a416efa7b4cc4e'|'AdminAddressesb718adec73e04ce3ec720dd11a06a308'|'AdminAddressesbaa31a65f29121c32b637bb845d41acf'|'AdminAddressesbc910f8bdf70f29374f496f05be0330c'|'AdminAddressesbed08e8af70a98c1a8361f13ec477be0'|'AdminAddressesc9cc8cce247e49bae79f15173ce97354'|'AdminAddressesce26601dac0dea138b7295f02b7620a7'|'AdminAddressesd3b206d196cd6be3a2764c1fb90b200f'|'AdminAddressesdd7bf230fde8d4836917806aff6a6b27'|'AdminAddressese25f0ecd41211b01c83e5fec41df4fe7'|'AdminAddressese4eb5dadb6ee84c5c55a8edf53f6e554'|'AdminAddressesea318a4ad37f0c2d2c368e6c958ed551'|'AdminAddresseseeabead01c6c6f25f22bf0b041df58a9'|'AdminAddressesfe66abce284ec8589e7d791185b5c442'|'AdminAdminPreferences0db377921f4ce762c62526131097968f'|'AdminAdminPreferences0f81567617bb8ebc23f48e74d8ae8acf'|'AdminAdminPreferences11b3df1e92b11e2d899494d3cdf4dd13'|'AdminAdminPreferences1b1befcb86d487715da458117710dfeb'|'AdminAdminPreferences20d6b6498eab9f749d55c9b53151e00a'|'AdminAdminPreferences2c111a587b8e6a65856ac7933d76bdce'|'AdminAdminPreferences46f18d3960afc01e5a1a5a0e0e9d571b'|'AdminAdminPreferences4ae386b852a3ee22324e8922e50c9aec'|'AdminAdminPreferences4e7ff7ca556a7ac8329ab27834e9631b'|'AdminAdminPreferences694c63d4a2b60499f7ba524fb639811f'|'AdminAdminPreferences73cdddd7730abfc13a55efb9f5685a3b'|'AdminAdminPreferences8004e61ca76ff500d1e6ee92f7cb7f93'|'AdminAdminPreferences99059a2047f475cdc6428076e3360134'|'AdminAdminPreferencesa274f4d4670213a9045ce258c6c56b80'|'AdminAdminPreferencesa676520f8296be0319ad6268657471ea'|'AdminAdminPreferencesade28d54bcdbc7c4cfd45d84ad517f7b'|'AdminAdminPreferencesb32a8e98434105bcfe4f234aa4c7b28b'|'AdminAdminPreferencesb48de7251c23e4b0eb0975b1c7bf9bc5'|'AdminAdminPreferencesb8a8fa662505e278031049e4990e428a'|'AdminAdminPreferencesc9cc8cce247e49bae79f15173ce97354'|'AdminAdminPreferencescabcb35221054c8ad296eb4e406e2cd7'|'AdminAdminPreferencesdcfba1534995899d2ca36cda978da215'|'AdminAdminPreferencese0853b619fbd24fdabc3ae78beb81193'|'AdminAdminPreferencese0c9f1de766b906e5660ea07af8a02ec'|'AdminAdminPreferencese62d77475fe6318731b4411ba1181dca'|'AdminAdminPreferencese78f32f514dbd49e570066db36343d13'|'AdminAdminPreferencese7fe6b70f4558e23f0254d80f52ae6d8'|'AdminAttachments0b27918290ff5323bea1e3b78a9cf04e'|'AdminAttachments0c6c7ccc80b3bfb8fcb57dc63405f599'|'AdminAttachments1351017ac6423911223bc19a8cb7c653'|'AdminAttachments1f66f9472666b18b19c22fd0f1a6a07b'|'AdminAttachments49ee3087348e8d44e1feda1917443987'|'AdminAttachments5251010ec9e364492c236bf8b9983928'|'AdminAttachments6f6cb72d544962fa333e2e34ce64f719'|'AdminAttachments8a23b9ee3a4502a0de3fc32c5ba7aa65'|'AdminAttachments8ecfb7c46cc91aaa98cc88b3f43cfffc'|'AdminAttachmentsb5a7adde1af5c87d7fd797b6245c2a39'|'AdminAttachmentsb718adec73e04ce3ec720dd11a06a308'|'AdminAttachmentsbdf4f1da184f2dc052c75ad7e1afbd4a'|'AdminAttachmentsc9cc8cce247e49bae79f15173ce97354'|'AdminAttachmentsd3b206d196cd6be3a2764c1fb90b200f'|'AdminAttachmentsd647666a6c4cef994b4fa1a540ba4481'|'AdminAttachmentse25f0ecd41211b01c83e5fec41df4fe7'|'AdminAttachmentse9cb217697088a98b1937d111d936281'|'AdminAttachmentseefad10f0e06ebfb6a27344408e54660'|'AdminAttachmentsfc1ff5390ecc7efd695f697f3d6b7e4b'|'AdminAttributeGenerator402784f5f14c30e7309a135ba6be531f'|'AdminAttributeGenerator81315cfd898aada1e99e0034b4b078c3'|'AdminAttributeGenerator9446a98ad14416153cc4d45ab8b531bf'|'AdminAttributeGeneratorced303d99586792bb560b5e1d35ea220'|'AdminAttributesGroups00039b674d8ced58313546dcab88a032'|'AdminAttributesGroups0e010c6b3fb88bf4277c880d1657787a'|'AdminAttributesGroups170269305ed04c49b26b2d5dbe053dc6'|'AdminAttributesGroups1736c2a3dfbe74f884bf5c9750bd4606'|'AdminAttributesGroups17af8baa9b3f90e936589069e4223280'|'AdminAttributesGroups1f40023e11d8401b0bffadc419135247'|'AdminAttributesGroups22cbf85c41427960736dc10cfec5faf4'|'AdminAttributesGroups287234a1ff35a314b5b6bc4e5828e745'|'AdminAttributesGroups2dce4461e5743f3b01acd4599a38d646'|'AdminAttributesGroups49ee3087348e8d44e1feda1917443987'|'AdminAttributesGroups5204077231fc7164e2269e96b584dd95'|'AdminAttributesGroups52729803b243ea9693a892161d5b8e38'|'AdminAttributesGroups52f5e0bc3859bc5f5e25130b6c7e8881'|'AdminAttributesGroups561f47d9c8a6153b011def4fd72386d5'|'AdminAttributesGroups577cf2cf1be74419ac04093a2b4cd64d'|'AdminAttributesGroups6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminAttributesGroups630f6dc397fe74e52d5189e2c80f282b'|'AdminAttributesGroups689202409e48743b914713f96d93947c'|'AdminAttributesGroups713271e705e5269fc82684445cd063a8'|'AdminAttributesGroups71c476c94d0a0e3dfc0826afd03d2dda'|'AdminAttributesGroups71e8f8a090925f75719dfa0a5eae059e'|'AdminAttributesGroups72d6d7a1885885bb55a565fd1070581a'|'AdminAttributesGroups7d5672f569de406c85249db6f1c99ec0'|'AdminAttributesGroups8bd90a6d76a77fe0b160e8abd85c8590'|'AdminAttributesGroups9446a98ad14416153cc4d45ab8b531bf'|'AdminAttributesGroups9d55fc80bbb875322aa67fd22fc98469'|'AdminAttributesGroupsa3e8ae43188ae76d38f414b2bdb0077b'|'AdminAttributesGroupsb5e6921c2d093fbcb0088c9466ee9983'|'AdminAttributesGroupsb718adec73e04ce3ec720dd11a06a308'|'AdminAttributesGroupsba353198430b2004efeb1ac6d1f410d0'|'AdminAttributesGroupsc82a6100dace2b41087ba6cf99a5976a'|'AdminAttributesGroupsc9cc8cce247e49bae79f15173ce97354'|'AdminAttributesGroupscb5feb1b7314637725a2e73bdc9f7295'|'AdminAttributesGroupsced303d99586792bb560b5e1d35ea220'|'AdminAttributesGroupsd274013ea65428454962a59b7b373a41'|'AdminAttributesGroupsd3b206d196cd6be3a2764c1fb90b200f'|'AdminAttributesGroupsdd24a1142c1070a0efbdf43b4f0167cc'|'AdminAttributesGroupse25f0ecd41211b01c83e5fec41df4fe7'|'AdminAttributesGroupsf2d1c5443636295e9720caac90ea8d93'|'AdminAttributesGroupsf68b27443f6e6f685cce3f9f422a2b84'|'AdminAttributesGroupsf7931413dee107ddf5289c8886baf7ec'|'AdminAttributesGroupsfce2e84f3cce0e5351e85e9f0cb20107'|'AdminBackup03727ac48595a24daed975559c944a44'|'AdminBackup1589ac76f2f88749f51028f09b23f9d4'|'AdminBackup1908624a0bca678cd26b99bfd405324e'|'AdminBackup2c7338ad06a6bb0747b0d432c33464ce'|'AdminBackup2e25562aa49c13b17e979d826fecc25f'|'AdminBackup30c210e0173f2ff607cc84dc01ffc1f0'|'AdminBackup34082694d21dbdcfc31e6e32d9fb2b9f'|'AdminBackup44749712dbec183e983dcd78a7736c41'|'AdminBackup6a7e73161603d87b26a8eac49dab0a9c'|'AdminBackup6afc2b40f9acff2a4d1e67f2dfcd8a30'|'AdminBackup8859ec81a77f2f2b165bf5ea9858ecfc'|'AdminBackup9d8d2d5ab12b515182a505f54db7f538'|'AdminBackupb07ccf1ffff29007509d45dbcc13f923'|'AdminBackupb55e509c697e4cca0e1d160a7806698f'|'AdminBackupc9cc8cce247e49bae79f15173ce97354'|'AdminBackupd3b206d196cd6be3a2764c1fb90b200f'|'AdminBackupe25f0ecd41211b01c83e5fec41df4fe7'|'AdminBackupe807d3ccf8d24c8c1a3d86db5da78da8'|'AdminBackupea4788705e6873b424c65e91c2846b19'|'AdminBackupf36c9a20c2ce51f491c944e41fde5ace'|'AdminCarriers00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCarriers049de64decc4aa8fa5aa89cf8b17470c'|'AdminCarriers0687bb4ca6cc1c51d79684159f91ff11'|'AdminCarriers082ebbb29b5ba59c293a00a55581679b'|'AdminCarriers0cce6348a3d85f52a44d053f542afcbc'|'AdminCarriers1412292b09d3cd39f32549afb1f5f102'|'AdminCarriers1935671a637346f67b485596b9fcba2c'|'AdminCarriers1c0e287237d8c352c6ead633b019c047'|'AdminCarriers1c6c9d089ce4b751673e3dd09e97b935'|'AdminCarriers1c76cbfe21c6f44c1d1e59d54f3e4420'|'AdminCarriers1d6af794b2599c1407a83029a09d1ecf'|'AdminCarriers3194ebe40c7a8c29c78ea79066b6e05c'|'AdminCarriers324029d06c6bfe85489099f6e69b7637'|'AdminCarriers3e86ececa46af50900510892f94c4ed6'|'AdminCarriers482836cce404046ca7dc34fb0a6fc526'|'AdminCarriers49ee3087348e8d44e1feda1917443987'|'AdminCarriers49fec5c86a3b43821fdf0d9aa7bbd935'|'AdminCarriers4b78ac8eb158840e9638a3aeb26c4a9d'|'AdminCarriers4ca4a355318f45dac9fb0ee632d8dc3c'|'AdminCarriers4e140ba723a03baa6948340bf90e2ef6'|'AdminCarriers4f890cf6a72112cad95093baecf39831'|'AdminCarriers52f5e0bc3859bc5f5e25130b6c7e8881'|'AdminCarriers590f6d9a5885f042982c9a911f76abda'|'AdminCarriers5e6b7c069d71052ffc8c4410c0c46992'|'AdminCarriers6803abe0c8347830d574da8e04fa78e5'|'AdminCarriers6e6fbb3d274ac15210f6b7892c7d24c1'|'AdminCarriers7475ec0d41372a307c497acb7eeea8c4'|'AdminCarriers7589dfa9a5a899e9701335164c9ab520'|'AdminCarriers780c462e85ba4399a5d42e88f69a15ca'|'AdminCarriers7dce122004969d56ae2e0245cb754d35'|'AdminCarriers8a52ca34a90eb8486886815e62958ac1'|'AdminCarriers8c2857a9ad1d8f31659e35e904e20fa6'|'AdminCarriers8f497c1a3d15af9e0c215019f26b887d'|'AdminCarriers91aa2e3b1cd071ba7031bf4263e11821'|'AdminCarriers920bd1fb6d54c93fca528ce941464225'|'AdminCarriers93cba07454f06a4a960172bbd6e2a435'|'AdminCarriers9d55fc80bbb875322aa67fd22fc98469'|'AdminCarriers9e93aab109e30d26aa231a49385c99db'|'AdminCarriersa414ac63c6b29218661d1fa2c6e21b5b'|'AdminCarriersa788f81b3aa0ef9c9efcb1fb67708d82'|'AdminCarriersb00b85425e74ed2c85dc3119b78ff2c3'|'AdminCarriersb3ff996fe5c77610359114835baf9b38'|'AdminCarriersb718adec73e04ce3ec720dd11a06a308'|'AdminCarriersb9f5c797ebbf55adccdd8539a65a0241'|'AdminCarriersbafd7322c6e97d25b6299b5d6fe8920b'|'AdminCarriersc26732c157d7b353c1be9f7ba8962e57'|'AdminCarriersc8b462f779749d2e27abed2e9501b2bd'|'AdminCarriersc9cc8cce247e49bae79f15173ce97354'|'AdminCarrierscdaa245d6e50b5647bfd9fcb77ac9a21'|'AdminCarriersd3b206d196cd6be3a2764c1fb90b200f'|'AdminCarriersd7049d8a068769eb32177e404639b8ce'|'AdminCarriersdde695268ea519ababd83f0ca3d274fc'|'AdminCarrierse1bcd0aa73dbc610f1fc628499244d8f'|'AdminCarrierse25f0ecd41211b01c83e5fec41df4fe7'|'AdminCarrierse29e90d06dc78b1a6b2e5e9d61f2f724'|'AdminCarrierse3d29a6f3d7588301aa04429e686b260'|'AdminCarrierse6b391a8d2c4d45902a23a8b6585703d'|'AdminCarrierse81c4e4f2b7b93b481e13a8553c2ae1b'|'AdminCarriersec53a8c4f07baed5d8825072c89799be'|'AdminCarriersf2a6c498fb90ee345d997f888fce3b18'|'AdminCarriersf8af50e8f2eb39dc8581b4943d6ec59f'|'AdminCarriersff5e2cfc010955358f7ff264d9e58398'|'AdminCarrierWizard00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCarrierWizard0668ec4bb8d6bcb27d283b2af9bc5888'|'AdminCarrierWizard082ebbb29b5ba59c293a00a55581679b'|'AdminCarrierWizard08c490a8c2d633b012b63dccd00cc719'|'AdminCarrierWizard0979779c4569141b98591d326d343ec2'|'AdminCarrierWizard0f696253cf9dacf6079bf5060e60da06'|'AdminCarrierWizard10ac3d04253ef7e1ddc73e6091c0cd55'|'AdminCarrierWizard1778e0e8555dc044231c1d615b41ddea'|'AdminCarrierWizard1c6c9d089ce4b751673e3dd09e97b935'|'AdminCarrierWizard2222c64a45d69edbf16dd5fb81db904b'|'AdminCarrierWizard290612199861c31d1036b185b4e69b75'|'AdminCarrierWizard29aa46cc3d2677c7e0f216910df600ff'|'AdminCarrierWizard2f79e7f703f8cd0258b0ef7e0237a4be'|'AdminCarrierWizard40fe120d89217e6f04a27723136b8601'|'AdminCarrierWizard482836cce404046ca7dc34fb0a6fc526'|'AdminCarrierWizard497876c111e98a20564817545518f829'|'AdminCarrierWizard4b78ac8eb158840e9638a3aeb26c4a9d'|'AdminCarrierWizard4ca4a355318f45dac9fb0ee632d8dc3c'|'AdminCarrierWizard4f890cf6a72112cad95093baecf39831'|'AdminCarrierWizard5929a4e1d04d4653b6dbe2aac59d8a41'|'AdminCarrierWizard5b26cf06b6165264574bf9e097f062bc'|'AdminCarrierWizard6305822e6fd3b92120ee6f23552164c4'|'AdminCarrierWizard65a0cd2bca5d0a980a5582a548d79900'|'AdminCarrierWizard6f3455d187a23443796efdcbe044096b'|'AdminCarrierWizard756eb8cebeb953f5ae47235ff2e183b5'|'AdminCarrierWizard780c462e85ba4399a5d42e88f69a15ca'|'AdminCarrierWizard7cee91acc888d490e2622f3eca17cd37'|'AdminCarrierWizard81e24bc79af497d9e9c486bfa24742be'|'AdminCarrierWizard829c7cc5ed48e11df7ac9b05e236a12c'|'AdminCarrierWizard82ef5a4b25d9debf587900797b0b9619'|'AdminCarrierWizard8317f5bb182c1e92c11221955592b518'|'AdminCarrierWizard885ef9bdb910d1379b853075daf44e43'|'AdminCarrierWizard8c2857a9ad1d8f31659e35e904e20fa6'|'AdminCarrierWizard920bd1fb6d54c93fca528ce941464225'|'AdminCarrierWizard93cba07454f06a4a960172bbd6e2a435'|'AdminCarrierWizard9c3448f86be5ee19015f4ecce4bbd6fe'|'AdminCarrierWizard9d55fc80bbb875322aa67fd22fc98469'|'AdminCarrierWizard9ef70769595c35cca03dae49ac1f31d1'|'AdminCarrierWizarda083cb6637472c81ec701d3342320adf'|'AdminCarrierWizarda20ddccbb6f808ec42cd66323e6c6061'|'AdminCarrierWizarda788f81b3aa0ef9c9efcb1fb67708d82'|'AdminCarrierWizardaacaecfacce577935cf83eeb01bcac40'|'AdminCarrierWizardb9f5c797ebbf55adccdd8539a65a0241'|'AdminCarrierWizardbae6cceb9789ee48445a0ddc8c143f0b'|'AdminCarrierWizardbafd7322c6e97d25b6299b5d6fe8920b'|'AdminCarrierWizardbe78233fdb6fe537e065a0d8650c0e84'|'AdminCarrierWizardc8b462f779749d2e27abed2e9501b2bd'|'AdminCarrierWizardc91e596246bbf8fdff9dae7b349d71d9'|'AdminCarrierWizardcfabe09befdc8289f6ca5fbc6887ffe5'|'AdminCarrierWizardd7049d8a068769eb32177e404639b8ce'|'AdminCarrierWizardda5c987cbda47de7a6b09406b0840ec4'|'AdminCarrierWizarddd1f775e443ff3b9a89270713580a51b'|'AdminCarrierWizarddde695268ea519ababd83f0ca3d274fc'|'AdminCarrierWizardde62775a71fc2bf7a13d7530ae24a7ed'|'AdminCarrierWizarde0c892f1ca1fb503987c2db8fd250a43'|'AdminCarrierWizarde2fb9fa6091dd9f779b98efdf998a00a'|'AdminCarrierWizardea4788705e6873b424c65e91c2846b19'|'AdminCarrierWizardf1fe3b3625cdded65fc740dd16b978a6'|'AdminCartRules447da4af35bd09b4d501afb8a2090909'|'AdminCartRules49ee3087348e8d44e1feda1917443987'|'AdminCartRules502996d9790340c5fd7b86a5b93b1c9f'|'AdminCartRules65b7eaeb9ba4e9903f82297face9f7cd'|'AdminCartRules694e8d1f2ee056f98ee488bdc4982d73'|'AdminCartRules8c1279db4db86553e4b9682f78cf500e'|'AdminCartRulesb718adec73e04ce3ec720dd11a06a308'|'AdminCartRulesbd0e34e5be6447844e6f262d51f1a9dc'|'AdminCartRulesca0dbad92a874b2f69b549293387925e'|'AdminCartRulesd3b206d196cd6be3a2764c1fb90b200f'|'AdminCartRulese25f0ecd41211b01c83e5fec41df4fe7'|'AdminCartRulesec53a8c4f07baed5d8825072c89799be'|'AdminCartRulesf7de1b71605a10ef04416effa4c6e09e'|'AdminCarts0b91ef9198a761459c595de4b12ca109'|'AdminCarts0ec8109e3ffa61bcc147c89d9a396cd7'|'AdminCarts121401ccf0e3e23bcefe6a454f0f0601'|'AdminCarts44749712dbec183e983dcd78a7736c41'|'AdminCarts4d9e1e12ad8a61ea2a5554407488d91a'|'AdminCarts54e85d70ea67acdcc86963b14d6223a8'|'AdminCarts54f664c70c22054ea0d8d26fc3997ce7'|'AdminCarts90855df1b2d1240c62d81bd35d4cfb06'|'AdminCarts914419aa32f04011357d3b604a86d7eb'|'AdminCarts915000b6f3e7bb451a6ed4ffc2839ab6'|'AdminCarts947d8520f04473da621f2718138f3bc6'|'AdminCarts96b0141273eabab320119c467cdcaf17'|'AdminCartsb00b85425e74ed2c85dc3119b78ff2c3'|'AdminCartsb718adec73e04ce3ec720dd11a06a308'|'AdminCartsc595d2957600891ad3063a9b13dda4b0'|'AdminCartsce26601dac0dea138b7295f02b7620a7'|'AdminCartsd3b206d196cd6be3a2764c1fb90b200f'|'AdminCartsd79cf3f429596f77db95c65074663a54'|'AdminCartse25f0ecd41211b01c83e5fec41df4fe7'|'AdminCartse4c3da18c66c0147144767efeb59198f'|'AdminCartsee77ea46b0c548ed60eadf31bdd68613'|'AdminCartsf9b01554c32cc580b7380302f22613de'|'AdminCartsffbb5322a3702b0d8d9c7f506209c540'|'AdminCategories00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCategories09e2683b6b92b326691cd992f6e5684b'|'AdminCategories154b6e494bf56cc4c787bfee6deac113'|'AdminCategories1dec4f55522b828fe5dacf8478021a9e'|'AdminCategories2028f52eb6d12dc1814f92f18c7365a0'|'AdminCategories3adbdb3ac060038aa0e6e6c138ef9873'|'AdminCategories3b449120fdb2867c000d7bba671aead3'|'AdminCategories3e053943605d9e4bf7dd7588ea19e9d2'|'AdminCategories3f64b2beede1082fd32ddb0bf11a641f'|'AdminCategories42c9e94e8e5c29861de422525262ff17'|'AdminCategories42f9ee5026d32792987af851a2ea0343'|'AdminCategories463848257c086c4816d9f4c020a8d19e'|'AdminCategories49ee3087348e8d44e1feda1917443987'|'AdminCategories4ae362f049719078c429941bed5dd440'|'AdminCategories52b68aaa602d202c340d9e4e9157f276'|'AdminCategories52f5e0bc3859bc5f5e25130b6c7e8881'|'AdminCategories53d98bd116f47fdfe15c8eb4525c5e99'|'AdminCategories5f573e91e5eaa092e00a4c4df393c0cb'|'AdminCategories6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminCategories630f6dc397fe74e52d5189e2c80f282b'|'AdminCategories728b291abe64a8db2e524340d3a5ad4a'|'AdminCategories72d6d7a1885885bb55a565fd1070581a'|'AdminCategories7d7559ccac6bc30a4d985db11cb34a3a'|'AdminCategories7dce122004969d56ae2e0245cb754d35'|'AdminCategories7e35726fb991605ab3d0e6406599e6ef'|'AdminCategories850da4810ae3771d696d504d7346caa6'|'AdminCategories86754577897acfb25deb69039d49d9a7'|'AdminCategories86c34fe1588fab846f096e74c989972f'|'AdminCategories920bd1fb6d54c93fca528ce941464225'|'AdminCategories93cba07454f06a4a960172bbd6e2a435'|'AdminCategories947d8520f04473da621f2718138f3bc6'|'AdminCategories9d55fc80bbb875322aa67fd22fc98469'|'AdminCategories9e11e4b371570340ca07913bc4783a7a'|'AdminCategoriesa6398f9bbc9739ed67ca273b82da0a55'|'AdminCategoriesb5a7adde1af5c87d7fd797b6245c2a39'|'AdminCategoriesb718adec73e04ce3ec720dd11a06a308'|'AdminCategoriesb9f5c797ebbf55adccdd8539a65a0241'|'AdminCategoriesbafd7322c6e97d25b6299b5d6fe8920b'|'AdminCategoriesc9cc8cce247e49bae79f15173ce97354'|'AdminCategoriesd0d4e3688fdaee5afa292083b855e143'|'AdminCategoriesd3b206d196cd6be3a2764c1fb90b200f'|'AdminCategoriesde360c8b5dd9a9fdd592b1c08b3b4a62'|'AdminCategoriesde9ced9bf5e9829de4a93ad8c9d7a170'|'AdminCategoriese25f0ecd41211b01c83e5fec41df4fe7'|'AdminCategoriesf86f7b91afe27e79305a6b07bdb0d3c0'|'AdminCategoriesfe731b8039502b7b8a526edc4e232785'|'AdminCms00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCms1dec4f55522b828fe5dacf8478021a9e'|'AdminCms21f93401134586a6c481422bf01fccfd'|'AdminCms3ed349365d718a59eadb9df9d5c339f2'|'AdminCms3f64b2beede1082fd32ddb0bf11a641f'|'AdminCms45b1bce0ceb1e155fc99d59a21761b9e'|'AdminCms52f5e0bc3859bc5f5e25130b6c7e8881'|'AdminCms5ece607071fe59ddc4c88dc6abfe2310'|'AdminCms6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminCms7101cb00c6057071c3f5e52bcb31336b'|'AdminCms789ca3cc9e29e7ef767619e13c6b2f9e'|'AdminCms7d7559ccac6bc30a4d985db11cb34a3a'|'AdminCms86754577897acfb25deb69039d49d9a7'|'AdminCms87d49200bfc48e0bcfd3bae27d5616f3'|'AdminCms9d55fc80bbb875322aa67fd22fc98469'|'AdminCms9e11e4b371570340ca07913bc4783a7a'|'AdminCms9ea67be453eaccf020697b4654fc021a'|'AdminCmsb718adec73e04ce3ec720dd11a06a308'|'AdminCmsb78a3223503896721cca1303f776159b'|'AdminCmsb9f5c797ebbf55adccdd8539a65a0241'|'AdminCmsc9cc8cce247e49bae79f15173ce97354'|'AdminCmsCategories00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCmsCategories1dec4f55522b828fe5dacf8478021a9e'|'AdminCmsCategories3f64b2beede1082fd32ddb0bf11a641f'|'AdminCmsCategories49ee3087348e8d44e1feda1917443987'|'AdminCmsCategories52f5e0bc3859bc5f5e25130b6c7e8881'|'AdminCmsCategories57bd1d8ace15f17054281d1e88336b97'|'AdminCmsCategories6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminCmsCategories789ca3cc9e29e7ef767619e13c6b2f9e'|'AdminCmsCategories7d7559ccac6bc30a4d985db11cb34a3a'|'AdminCmsCategories86754577897acfb25deb69039d49d9a7'|'AdminCmsCategories9d55fc80bbb875322aa67fd22fc98469'|'AdminCmsCategories9e11e4b371570340ca07913bc4783a7a'|'AdminCmsCategoriesaf1b98adf7f686b84cd0b443e022b7a0'|'AdminCmsCategoriesb5a7adde1af5c87d7fd797b6245c2a39'|'AdminCmsCategoriesb718adec73e04ce3ec720dd11a06a308'|'AdminCmsCategoriesb9f5c797ebbf55adccdd8539a65a0241'|'AdminCmsCategoriesbed3b3133d292db46a0d28c5d91811b9'|'AdminCmsCategoriesc9cc8cce247e49bae79f15173ce97354'|'AdminCmsCategoriesd3b206d196cd6be3a2764c1fb90b200f'|'AdminCmsCategoriese25f0ecd41211b01c83e5fec41df4fe7'|'AdminCmscc4fbd30d676ea2f9994b7063a8ada15'|'AdminCmsce1e51212c9df52777620dc9de246da0'|'AdminCmsContentaf83e3b9f5d8398fc7b9e88cd6105bde'|'AdminCmsContentc7da501f54544eba6787960200d9efdb'|'AdminCmsContentd0ce974814566418b6ad509f305f319a'|'AdminCmsContentd3b206d196cd6be3a2764c1fb90b200f'|'AdminCmsContente25f0ecd41211b01c83e5fec41df4fe7'|'AdminCmsContentef61fb324d729c341ea8ab9901e23566'|'AdminCmsContentf7931413dee107ddf5289c8886baf7ec'|'AdminCmsd3b206d196cd6be3a2764c1fb90b200f'|'AdminCmse25f0ecd41211b01c83e5fec41df4fe7'|'AdminCmse6b391a8d2c4d45902a23a8b6585703d'|'AdminCmsef61fb324d729c341ea8ab9901e23566'|'AdminCmsf8825c9f08ff15b5ef6bc3a3898817e8'|'AdminContacts00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminContacts0f28459fa87b1b3ce6e8b17932f08c3a'|'AdminContacts9aa698f602b1e5694855cee73a683488'|'AdminContacts9cd9efd3eb168071eb0a199972c54aab'|'AdminContacts9d55fc80bbb875322aa67fd22fc98469'|'AdminContactsa2b086325f59e6c2fbd410511f4fdfb3'|'AdminContactsa4cd3191fdeea29906a113c78d4c0e26'|'AdminContactsb357b524e740bc85b9790a0712d84a30'|'AdminContactsb5a7adde1af5c87d7fd797b6245c2a39'|'AdminContactsb718adec73e04ce3ec720dd11a06a308'|'AdminContactsb78a3223503896721cca1303f776159b'|'AdminContactsb9f5c797ebbf55adccdd8539a65a0241'|'AdminContactsc41f67055a184ed2e895681336572761'|'AdminContactsc9cc8cce247e49bae79f15173ce97354'|'AdminContactsd3b206d196cd6be3a2764c1fb90b200f'|'AdminContactsdaedf9c5c8f38ac4cf641f3fb3e1bdc4'|'AdminContactse25f0ecd41211b01c83e5fec41df4fe7'|'AdminCountries00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCountries01e93e9457d86c646965decd586dc5ea'|'AdminCountries05820ffcf621269347a1c14d81d20b77'|'AdminCountries0bd345b58335589d4c2fa1e50ae38619'|'AdminCountries0c750dacc725ba4047374d2efc56ce3a'|'AdminCountries10d30c6319cf61386c878e4d9a3e09a2'|'AdminCountries21e6a1298ab4cd040464d67a19d0f957'|'AdminCountries25d176f9d01ba273d1097ca7b298d281'|'AdminCountries3477a6086401c89ab72387673c777af2'|'AdminCountries3a58c76da4f48aaeb46af20f34caac1b'|'AdminCountries3be0efaecb3514a14757b8beb4b5dbb3'|'AdminCountries46a2a41cc6e552044816a2d04634545d'|'AdminCountries4d3d769b812b6faa6b76e1a8abaece2d'|'AdminCountries59716c97497eb9694541f7c3d37b1a4d'|'AdminCountries6252c0f2c2ed83b7b06dfca86d4650bb'|'AdminCountries6416e8cb5fc0a208d94fa7f5a300dbc4'|'AdminCountries665e1ad1c6657791cecb5b68008c7c00'|'AdminCountries790d59ef178acbc75d233bf4211763c6'|'AdminCountries92de0162cbdfa60f671ba3cad1d392a1'|'AdminCountries93cba07454f06a4a960172bbd6e2a435'|'AdminCountries94d7422ba3c5b0f2a35f50b048e51c6d'|'AdminCountries9d55fc80bbb875322aa67fd22fc98469'|'AdminCountriesa2ddbdfb29a0708bd711601f9277435c'|'AdminCountriesa4f164d8b1b72c87b8ce558827bcd423'|'AdminCountriesab81f235de173b2d7c0b69009dc6d492'|'AdminCountriesabb056fd74a8bdf858dbe3e68c5ea97c'|'AdminCountriesad68f9bafd9bf2dcf3865dac55662fd5'|'AdminCountriesb3ff996fe5c77610359114835baf9b38'|'AdminCountriesb718adec73e04ce3ec720dd11a06a308'|'AdminCountriesb9f5c797ebbf55adccdd8539a65a0241'|'AdminCountriesbafd7322c6e97d25b6299b5d6fe8920b'|'AdminCountriesc9cc8cce247e49bae79f15173ce97354'|'AdminCountriescd2f7b9409e0f1527766ad35aa8bd3c5'|'AdminCountriesce26601dac0dea138b7295f02b7620a7'|'AdminCountriesd3b206d196cd6be3a2764c1fb90b200f'|'AdminCountriesd3c5d8339f3840b75b4031c2b1e508de'|'AdminCountriesd8ec51bf63378409b1d40cc45c80f926'|'AdminCountriesdd7bf230fde8d4836917806aff6a6b27'|'AdminCountriese25f0ecd41211b01c83e5fec41df4fe7'|'AdminCountriesecefe3def8a2d034d80f6a8876c3d4b1'|'AdminCountriesf52c1ff75f69fa46ae947f0a3f653641'|'AdminCurrencies00d23a76e43b46dae9ec7aa9dcbebb32'|'AdminCurrencies02c86eb2792f3262c21d030a87e19793'|'AdminCurrencies05f78b95fd31ed10def4d0c1ef8e4751'|'AdminCurrencies076b68505282c6c0654708db343d6673'|'AdminCurrencies188b945338e1d6582c845dfebb469a45'|'AdminCurrencies1d10d84822a63187918311cb3a4e0c87'|'AdminCurrencies2b417805040de3a3df31c8fd3626b57c'|'AdminCurrencies2faec1f9f8cc7f8f40d521c4dd574f49'|'AdminCurrencies386c339d37e737a436499d423a77df0c'|'AdminCurrencies462fdc88328b3c9d31c63fa01b4f00b1'|'AdminCurrencies4abafa9686f98e398e29e46fd388fa36'|'AdminCurrencies4ef5571f164a6a7fcc9f4625d14e260b'|'AdminCurrencies586e27d3575f00e51ad43b66eb34e49f'|'AdminCurrencies597d44d65d4c76fe8cc8127b5b9b98bc'|'AdminCurrencies5f41116581201a5ef32656b7d4a51e88'|'AdminCurrencies5f838bbd088886f09f67b904e414f0e7'|'AdminCurrencies627b24abf27e2d03d38537f84e81cb2e'|'AdminCurrencies7559b7b096e0579368ca2ac7c187ba52'|'AdminCurrencies77428b04a1847555eb9bc52422a377b0'|'AdminCurrencies7c77e53206853cb381e91e037554faa3'|'AdminCurrencies8246d0c794e7db090587c4797b2a234f'|'AdminCurrencies876ca43ba50351d4e492970f40632661'|'AdminCurrencies9b9e87b59be497e92da8d2208f9914a0'|'AdminCurrencies9d55fc80bbb875322aa67fd22fc98469'|'AdminCurrenciesabe69e8e4b387562a767a6adaf112ed8'|'AdminCurrenciesad68f9bafd9bf2dcf3865dac55662fd5'|'AdminCurrenciesae2fce768106a7b6a61e57943b7a2143'|'AdminCurrenciesb718adec73e04ce3ec720dd11a06a308'|'AdminCurrenciesb9f5c797ebbf55adccdd8539a65a0241'|'AdminCurrenciesc1eaa657dda2892e5fec322ac710133a'|'AdminCurrenciesc9cc8cce247e49bae79f15173ce97354'|'AdminCurrenciesd3b206d196cd6be3a2764c1fb90b200f'|'AdminCurrenciesdfcfc43722eef1eab1e4a12e50a068b1'|'AdminCurrenciese25f0ecd41211b01c83e5fec41df4fe7'|'AdminCurrenciese75e316ab3a0a8c0c5fc4b48d1a7033f'|'AdminCurrenciesf6536046d7af41c3f3975868d6963179'|'AdminCurrenciesf90c17fdefeeca8b0d55b80a7bc3cb34'|'AdminCurrenciesfca4f4976817baa4a25858a3d6d5274d'|'AdminCustomerPreferences0db377921f4ce762c62526131097968f'|'AdminCustomerPreferences9f7a304fd501ed0e4d06b899fed739d0'|'AdminCustomerPreferencesbcb9adf1d2347258b5c65483e34cf86f'|'AdminCustomerPreferencesf2c822352f0e0a62e2de6d716475911b', '%s - All people who have created an account on this site.'|'%s - All people without a valid customer account.'|'%s - Customer who placed an order with the guest checkout.'|'%s tax excl.'|'(ie. "DROP TABLE IF EXISTS")'|'30 days'|'Abandoned cart'|'Abandoned Carts'|'According to total price'|'According to total price.'|'According to total weight'|'According to total weight.'|'Active'|'Add handling costs'|'Add New'|'Add new'|'Add new address'|'Add new attachment'|'Add New Attribute'|'Add new attribute'|'Add New Attributes'|'Add new carrier'|'Add new cart rule'|'Add new category'|'Add new CMS category'|'Add new CMS page'|'Add new contact'|'Add new country'|'Add new currency'|'Add new root category'|'Add New Value'|'Add new value'|'Add New Values'|'Address'|'Address alias'|'Address format'|'Address format invalid'|'Addresses'|'Age'|'Allowed characters: letters, spaces and %s'|'Allowed characters: letters, spaces and "%s".'|'An error occurred while saving associations of shops.'|'An error occurred while saving carrier groups.'|'An error occurred while saving carrier logo.'|'An error occurred while saving carrier ranges.'|'An error occurred while saving carrier zones.'|'An error occurred while saving the tax rules group.'|'An error occurred while saving this carrier.'|'Applies to all prices (e.g. $1,240.15).'|'Apply both regular shipping cost and product-specific shipping costs.'|'Apply shipping cost'|'Apply the cost of the highest defined range'|'Assign to a new zone'|'Associated with'|'Attachment'|'Attribute group'|'Attribute type'|'Attributes'|'Attributes generator'|'Automatically check for module updates'|'Automatically update currency rates'|'Average number of products per category'|'Average Order Value'|'Back to list'|'Back to the product'|'Backup options'|'Bad SQL query'|'Billing'|'Call prefix'|'Cancel'|'Carrier'|'Carrier name'|'Carrier name displayed during checkout'|'Carriers'|'Cart #%06d'|'Cart Rules'|'Categories'|'Category'|'Category Cover Image'|'Category thumbnail'|'Check the cookie\'s IP address'|'Check the IP address of the cookie in order to prevent your cookie from being stolen.'|'Choose a color with the color picker, or enter an HTML color (e.g. "lightblue", "#CC6600").'|'Choose the attribute group for this value.'|'City'|'CMS'|'CMS Category'|'CMS Page'|'Code'|'Color'|'Color or texture'|'Company'|'Contact name (e.g. Customer Support).'|'Contacts'|'Contains states'|'Conversion Rate'|'Countries'|'Country'|'Country name'|'Country options'|'Currencies'|'Currency'|'Currency format'|'Currency name'|'Currency rates'|'Current texture'|'Customer'|'Date'|'Day'|'Days'|'Decimals'|'Default behavior'|'Default currency'|'Default store currency'|'Define the upload limit for a downloadable product (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'|'Define the upload limit for an image (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'|'Delay'|'Delete'|'Delete selected'|'Delete selected item?'|'Delete selected items?'|'Delivery tracking URL: Type \'@\' where the tracking number should appear. It will be automatically replaced by the tracking number.'|'Delivery tracking URL: Type \'@\' where the tracking number should appear. It will then be automatically replaced by the tracking number.'|'Description'|'Disable carrier'|'Disabled'|'Disabled Categories'|'Display decimals in prices.'|'Display tax label (e.g. "Tax incl.")'|'Display this country to your customers (the selected country will always be displayed in the Back Office).'|'Displayed'|'DNI / NIF / NIE'|'Do you need a tax identification number?'|'Does it need Zip/postal code?'|'Drop existing tables during import'|'Drop existing tables during import.'|'Drop-down list'|'Edit'|'Edit New Attribute'|'Edit Value'|'Edit: %s'|'Email address'|'Emails will be sent to this address.'|'Empty Categories'|'Enable'|'Enable the carrier in the front office.'|'Enabled'|'Enter "0" for a longest shipping delay, or "9" for the shortest shipping delay.'|'Estimated delivery time will be displayed during checkout.'|'Exchange rate'|'Exchange rates are calculated from one unit of your shop\'s default currency. For example, if the default currency is euros and your chosen currency is dollars, type "1.20" (1€ = $1.20).'|'Expiration date'|'Export carts'|'Failed to copy the file.'|'Failed to update the status'|'File'|'File name'|'File not found'|'File size'|'Filename'|'Finish'|'First Name'|'For example: \'http://example.com/track.php?num=@\' with \'@\' where the tracking number should appear.'|'For in-store pickup, enter 0 to replace the carrier name with your shop name.'|'Forbidden characters'|'Free Shipping'|'Free shipping'|'Friendly URL'|'From %s to %s'|'Further information regarding this contact.'|'General'|'General settings'|'Geographical region.'|'Group access'|'Home phone'|'Hour'|'Hours'|'hours'|'ID'|'Identification Number'|'If enabled, all messages will be saved in the "Customer Service" page under the "Customer" menu.'|'If enabled, the backup script will drop your tables prior to restoring data.'|'Ignore statistics tables'|'Import'|'Include a space between symbol and price (e.g. $1,240.15 -> $ 1,240.15).'|'Include the handling costs (as set in Shipping > Preferences) in the final carrier price.'|'Include the shipping and handling costs in the carrier price.'|'Indexation by search engines'|'Indicate the format of the postal code: use L for a letter, N for a number, and C for the country\'s ISO 3166-1 alpha-2 code. For example, NNNNN for the United States, France, Poland and many other; LNNNNLLL for Argentina, etc. If you do not want PrestaShop to verify the postal code for this country, leave it blank.'|'International call prefix, (e.g. 1 for United States).'|'Invalid characters'|'ISO code'|'ISO code (e.g. USD for Dollars, EUR for Euros, etc.).'|'ISO code number'|'It appears the backup was successful, however you must download and carefully verify the backup file before proceeding.'|'Last Name'|'Lifetime of back office cookies'|'Lifetime of front office cookies'|'Logo'|'Mark all of the customer groups which you would like to have access to this category.'|'Mark the groups that are allowed access to this carrier.'|'Maximum depth managed by this carrier. Set the value to "0", or leave this field blank to ignore.'|'Maximum depth managed by this carrier. Set the value to "0," or leave this field blank to ignore.'|'Maximum height managed by this carrier. Set the value to "0", or leave this field blank to ignore.'|'Maximum height managed by this carrier. Set the value to "0," or leave this field blank to ignore.'|'Maximum package depth'|'Maximum package depth (%s)'|'Maximum package height'|'Maximum package height (%s)'|'Maximum package weight'|'Maximum package weight (%s)'|'Maximum package width'|'Maximum package width (%s)'|'Maximum size for a downloadable product'|'Maximum size for a product\'s image'|'Maximum size for attachment'|'Maximum weight managed by this carrier. Set the value to "0", or leave this field blank to ignore.'|'Maximum weight managed by this carrier. Set the value to "0," or leave this field blank to ignore.'|'Maximum width managed by this carrier. Set the value to "0", or leave this field blank to ignore.'|'Maximum width managed by this carrier. Set the value to "0," or leave this field blank to ignore.'|'megabytes'|'Meta description'|'Meta keywords'|'Meta title'|'Mobile phone'|'MultiStore'|'Name'|'Net Profit per Visitor'|'New modules and updates are displayed on the modules page.'|'Next'|'No'|'No items found'|'No Tax'|'No tax'|'Non ordered'|'Notifications'|'Notifications are numbered bubbles displayed at the very top of your back office, right next to the shop\'s name. They display the number of new items since you last clicked on them.'|'Numeric ISO code'|'Numeric ISO code (e.g. 840 for Dollars, 978 for Euros, etc.).'|'Official list here'|'Online'|'Only account creation'|'Only letters and the hyphen (-) character are allowed.'|'Only letters and the minus (-) character are allowed.'|'Only letters and the minus character are allowed.'|'Only letters, numbers, underscore (_) and the minus (-) character are allowed.'|'or'|'Order ID'|'Other'|'Out-of-range behavior'|'Out-of-range behavior occurs when no defined range matches the customer\'s cart (e.g. when the weight of the cart is greater than the highest weight limit defined by the weight ranges).'|'Out-of-range behavior occurs when none is defined (e.g. when a customer\'s cart weight is greater than the highest range limit).'|'Page content'|'Pages in category "%s"'|'Pages in this category'|'Parent category'|'Parent CMS Category'|'Payment'|'Performance'|'Please set another carrier as default before deleting this one.'|'Position'|'Previous'|'Priority'|'product(s)'|'Public name'|'Quantity'|'Radio buttons'|'Registration process type'|'Restrict country selections in front office to those covered by active carriers'|'Root Category'|'Save'|'Save and preview'|'Save and Stay'|'Save and stay'|'Save messages?'|'Save then add another value'|'Set the amount of hours during which the back office cookies are valid. After that amount of time, the PrestaShop user will have to log in again.'|'Set the amount of hours during which the front office cookies are valid. After that amount of time, the customer will have to log in again.'|'Set the maximum size allowed for attachment files (in megabytes). This value has to be lower or equal to the maximum file upload allotted by your server (currently: %s MB).'|'Shipping and handling'|'Shipping locations and costs'|'Shop association'|'Show notifications for new customers'|'Show notifications for new messages'|'Show notifications for new orders'|'Size'|'Size, weight, and group access'|'Spacing'|'Speed grade'|'Standard (account creation and address creation)'|'State'|'Status'|'Such as with Dollars'|'Such as with Euros'|'Summary'|'Symbol'|'Tax'|'Texture'|'The "Backups" directory located in the admin directory must be writable (CHMOD 755 / 777).'|'The carrier\'s name will be displayed during checkout.'|'The estimated delivery time will be displayed during checkout.'|'The file %1dollars exceeds the size allowed by the server. The limit is set to %2dollard MB.'|'The file is too large. Maximum size allowed is: %1dollard kB. The file you are trying to upload is %2dollard kB.'|'The public name for this attribute, displayed to the customers.'|'The status has been updated successfully'|'The value must be an integer.'|'The way the attribute\'s values will be presented to the customers in the product\'s page.'|'The zones in which this carrier will be used.'|'This attachment is associated with the following products, do you really want to delete it?'|'This feature has been disabled. You can activate it here: %s.'|'This is the main image for your category, displayed in the category page. The category description will overlap this image and appear in its top-left corner.'|'This will display notifications every time a new customer registers in your shop.'|'This will display notifications when new messages are posted in your shop.'|'This will display notifications when new orders are made in your shop.'|'This will override the HTML color!'|'Title'|'To add "tags" click in the field, write something, and then press "Enter."'|'To add "tags," click in the field, write something, and then press "Enter."'|'Top Category'|'Total'|'Total Cart'|'Tracking URL'|'Transit time'|'Two -- or three -- letter ISO code (e.g. "us for United States).'|'Two -- or three -- letter ISO code (e.g. U.S. for United States)'|'Update currency rates'|'Upload a logo from your computer.'|'Upload an image file containing the color texture from your computer.'|'Upload error. Please check your server configurations for the maximum upload size allowed.'|'Upload quota'|'URL'|'Use one of our recommended carrier modules'|'Use PrestaShop\'s webservice to update your currency exchange rates. However, please use caution: rates are provided as-is.'|'Use PrestaShop\'s webservice to update your currency\'s exchange rates. However, please use caution: rates are provided as-is.'|'Value'|'Values'|'Values count'|'VAT number'|'Warehouse'|'Will appear in front office (e.g. $, €, etc.)'|'Yes'|'You can place the following URL in your crontab file, or you can click it yourself regularly'|'You cannot delete the default currency'|'You cannot disable the default currency'|'You must choose at least one shop or group shop.'|'You must register at least one phone number.'|'You now have three default customer groups.'|'Your internal name for this attribute.'|'Zip/Postal Code'|'Zip/postal code format'|'Zone'>&oversized-array", $_LANGADM); diff --git a/tests/PHPStan/Rules/Methods/ReturnTypeRuleTest.php b/tests/PHPStan/Rules/Methods/ReturnTypeRuleTest.php index b5b8d1e4e1..a3f6c33fd7 100644 --- a/tests/PHPStan/Rules/Methods/ReturnTypeRuleTest.php +++ b/tests/PHPStan/Rules/Methods/ReturnTypeRuleTest.php @@ -6,8 +6,10 @@ use PHPStan\Rules\Rule; use PHPStan\Rules\RuleLevelHelper; use PHPStan\Testing\RuleTestCase; +use PHPStan\Type\Constant\ConstantArrayTypeBuilder; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\RequiresPhp; +use PHPUnit\Framework\Attributes\RunInSeparateProcess; use const PHP_VERSION_ID; /** @@ -855,8 +857,12 @@ public function testBug8223(): void $this->analyse([__DIR__ . '/data/bug-8223.php'], $errors); } + /** @runInSeparateProcess */ + #[RunInSeparateProcess] public function testBug8146bErrors(): void { + ConstantArrayTypeBuilder::setArrayCountLimit(256); + $this->checkBenevolentUnionTypes = true; $this->analyse([__DIR__ . '/data/bug-8146b-errors.php'], [ [ @@ -1291,4 +1297,9 @@ public function testBug10771(): void $this->analyse([__DIR__ . '/data/bug-10771.php'], []); } + public function testBug8636(): void + { + $this->analyse([__DIR__ . '/data/bug-8636.php'], []); + } + } diff --git a/tests/PHPStan/Rules/Methods/data/bug-8636.php b/tests/PHPStan/Rules/Methods/data/bug-8636.php new file mode 100644 index 0000000000..c3a7fdd533 --- /dev/null +++ b/tests/PHPStan/Rules/Methods/data/bug-8636.php @@ -0,0 +1,308 @@ + [ + 'p1' => 'en', + 'p2' => 'Austria', + 'p3' => 'b', + 'p4' => 'de_AT', + 'p5' => 'EUR', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + ]; + + public const HUGE_CONST = [ + 'at' => [ + 'p1' => 'en', + 'p2' => 'Austria', + 'p3' => 'b', + 'p4' => 'de_AT', + 'p5' => 'EUR', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'au' => [ + 'p1' => 'en', + 'p2' => 'Australia', + 'p3' => 'b', + 'p4' => 'en_AU', + 'p5' => 'AUD', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a'], + ], + + 'be' => [ + 'p1' => 'fr', + 'p2' => 'Belgium', + 'p3' => 'b', + 'p4' => 'fr_BE', + 'p5' => 'EUR', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'bx' => [ + 'p1' => 'en', + 'p2' => 'Belgium', + 'p3' => 'b', + 'p4' => 'nl_BE', + 'p5' => 'EUR', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'ca' => [ + 'p1' => 'en', + 'p2' => 'Canada', + 'p3' => 'b', + 'p4' => 'en_CA', + 'p5' => 'CAD', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'xf' => [ + 'p1' => 'fr', + 'p2' => 'Canada', + 'p3' => 'b', + 'p4' => 'fr_CA', + 'p5' => 'CAD', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'ch' => [ + 'p1' => 'fr', + 'p2' => 'Switzerland', + 'p3' => 'b', + 'p4' => 'fr_CH', + 'p5' => 'CHF', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a'], + ], + + 'cx' => [ + 'p1' => 'en', + 'p2' => 'Switzerland', + 'p3' => 'b', + 'p4' => 'de_CH', + 'p5' => 'CHF', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'cn' => [ + 'p1' => 'en', + 'p2' => 'China', + 'p3' => 'b', + 'p4' => 'zh_CN', + 'p5' => 'CNY', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a'], + ], + + 'de' => [ + 'p1' => 'en', + 'p2' => 'Germany', + 'p3' => 'b', + 'p4' => 'de_DE', + 'p5' => 'EUR', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'es' => [ + 'p1' => 'en', + 'p2' => 'Spain', + 'p3' => 'b', + 'p4' => 'es_ES', + 'p5' => 'EUR', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'fr' => [ + 'p1' => 'fr', + 'p2' => 'France', + 'p3' => 'b', + 'p4' => 'fr_FR', + 'p5' => 'EUR', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a'], + ], + + 'hk' => [ + 'p1' => 'en', + 'p2' => 'Hong-Kong', + 'p3' => 'b', + 'p4' => 'en_HK', + 'p5' => 'HKD', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'hz' => [ + 'p1' => 'en', + 'p2' => 'Hong-Kong', + 'p3' => 'b', + 'p4' => 'zh_HK', + 'p5' => 'HKD', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'ie' => [ + 'p1' => 'en', + 'p2' => 'Ireland', + 'p3' => 'b', + 'p4' => 'en_IE', + 'p5' => 'EUR', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'it' => [ + 'p1' => 'en', + 'p2' => 'Italy', + 'p3' => 'b', + 'p4' => 'it_IT', + 'p5' => 'EUR', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'jp' => [ + 'p1' => 'en', + 'p2' => 'Japan', + 'p3' => 'b', + 'p4' => 'ja_JP', + 'p5' => 'JPY', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'kr' => [ + 'p1' => 'en', + 'p2' => 'South Korea', + 'p3' => 'b', + 'p4' => 'ko_KR', + 'p5' => 'KRW', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'nl' => [ + 'p1' => 'en', + 'p2' => 'Netherlands', + 'p3' => 'b', + 'p4' => 'nl_NL', + 'p5' => 'EUR', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'nz' => [ + 'p1' => 'en', + 'p2' => 'New Zealand', + 'p3' => 'b', + 'p4' => 'en_NZ', + 'p5' => 'NZD', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'pl' => [ + 'p1' => 'en', + 'p2' => 'Poland', + 'p3' => 'b', + 'p4' => 'pl_PL', + 'p5' => 'PLN', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'sg' => [ + 'p1' => 'en', + 'p2' => 'Singapore', + 'p3' => 'b', + 'p4' => 'en_SG', + 'p5' => 'SGD', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + 'tw' => [ + 'p1' => 'en', + 'p2' => 'Taiwan', + 'p3' => 'b', + 'p4' => 'zh_TW', + 'p5' => 'TWD', + 'p6' => 'https://', + 'p7' => 'https://', + 'p8' => [], + 'p9' => ['a', 'a', 'a'], + ], + + ]; + + public function huge(string $c, string $r): string + { + return str_replace( + 'a', + 'b', + self::HUGE_CONST[$c]['p7'], + ); + } +}