Skip to content

Commit

Permalink
Author familyName & type when writing GeomSubset primitives Autodesk#…
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastienblor committed Jul 16, 2024
1 parent c3cecca commit 5d4100f
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 21 deletions.
35 changes: 25 additions & 10 deletions libs/translator/writer/prim_writer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,19 @@

PXR_NAMESPACE_USING_DIRECTIVE

// clang-format off
TF_DEFINE_PRIVATE_TOKENS(
_tokens,
(subset)
(face)
(materialBind)
(partition)
(displayColor)
(displayOpacity)
((outputsOut, "outputs:out"))
((floatToRgba, "arnold:float_to_rgba"))
);

namespace {

inline GfMatrix4d _NodeGetGfMatrix(const AtNode* node, const char* param)
Expand Down Expand Up @@ -171,11 +184,11 @@ const ParamConversionMap& _ParamConversionMap()
[](const AtNode* no, const char* na) -> VtValue {
const auto* nentry = AiNodeGetNodeEntry(no);
if (nentry == nullptr) {
return VtValue(TfToken(""));
return VtValue(TfToken());
}
const auto* pentry = AiNodeEntryLookUpParameter(nentry, AtString(na));
if (pentry == nullptr) {
return VtValue(TfToken(""));
return VtValue(TfToken());
}
const auto enums = AiParamGetEnum(pentry);
return VtValue(TfToken(_GetEnum(enums, AiNodeGetInt(no, AtString(na)))));
Expand Down Expand Up @@ -405,7 +418,7 @@ class UsdArnoldPrimvarWriter {
VtValue* vtVal = (VtValue*)(&value);
VtArray<GfVec3f> arrayValue;
arrayValue.push_back(vtVal->Get<GfVec3f>());
UsdGeomPrimvar primVar = _primvarsAPI.GetPrimvar(TfToken("displayColor"));
UsdGeomPrimvar primVar = _primvarsAPI.GetPrimvar(_tokens->displayColor);
if (primVar)
writer.SetPrimVar(primVar, arrayValue);
}
Expand All @@ -418,7 +431,7 @@ class UsdArnoldPrimvarWriter {
VtValue* vtVal = (VtValue*)(&value);
VtArray<float> arrayValue;
arrayValue.push_back(vtVal->Get<float>());
UsdGeomPrimvar primVar = _primvarsAPI.GetPrimvar(TfToken("displayOpacity"));
UsdGeomPrimvar primVar = _primvarsAPI.GetPrimvar(_tokens->displayOpacity);
if (primVar)
writer.SetPrimVar(primVar, arrayValue);
}
Expand Down Expand Up @@ -609,7 +622,7 @@ static inline std::string GetConnectedNode(UsdArnoldWriter& writer, AtNode* targ
if (outputIterType) {
// Create the output attribute on the node, of the corresponding type
// For now we call it outputs:out to be generic, but it could be called rgb, vec, float, etc...
UsdAttribute attr = targetPrim.CreateAttribute(TfToken("outputs:out"), outputIterType->type, false);
UsdAttribute attr = targetPrim.CreateAttribute(_tokens->outputsOut, outputIterType->type, false);
// the connection will point at this output attribute
targetName += ".outputs:out";
}
Expand Down Expand Up @@ -893,10 +906,10 @@ static inline bool convertArnoldAttribute(
adapterName += std::string("_") + std::string(paramName);
UsdShadeShader shaderAPI = UsdShadeShader::Define(writer.GetUsdStage(), SdfPath(adapterName));
// float_to_rgba can be used to convert rgb, rgba, vector, and vector2
writer.SetAttribute(shaderAPI.CreateIdAttr(), TfToken("arnold:float_to_rgba"));
writer.SetAttribute(shaderAPI.CreateIdAttr(), _tokens->floatToRgba);

UsdPrim shaderPrim = shaderAPI.GetPrim();
UsdAttribute outAttr = shaderPrim.CreateAttribute(TfToken("outputs:out"), SdfValueTypeNames->Color4f, false);
UsdAttribute outAttr = shaderPrim.CreateAttribute(_tokens->outputsOut, SdfValueTypeNames->Color4f, false);
// the connection will point at this output attribute
std::string outAttrName = adapterName + std::string(".outputs:out");
// connect the attribute to the adapter
Expand Down Expand Up @@ -1267,9 +1280,11 @@ void UsdArnoldPrimWriter::_WriteMaterialBinding(
}

UsdGeomSubset subset = UsdGeomSubset::CreateUniqueGeomSubset(
geom, TfToken("subset"),
TfToken("face"), // currently the only supported type
indices);
geom, _tokens->subset,
_tokens->face, // currently the only supported type
indices,
_tokens->materialBind,
_tokens->partition);
UsdPrim subsetPrim = subset.GetPrim();

// Process the material binding on the subset primitive
Expand Down
2 changes: 1 addition & 1 deletion testsuite/groups
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ darwin:
#######################
# Tests that can be run in hydra mode

hydra: test_0000 test_0001 test_0002 test_0003 test_0004 test_0005 test_0006 test_0007 test_0008 test_0009 test_0010 test_0011 test_0012 test_0014 test_0016 test_0017 test_0018 test_0019 test_0020 test_0021 test_0022 test_0023 test_0024 test_0025 test_0026 test_0027 test_0028 test_0029 test_0030 test_0031 test_0032 test_0033 test_0034 test_0037 test_0038 test_0041 test_0046 test_0048 test_0049 test_0050 test_0051 test_0052 test_0053 test_0055 test_0056 test_0057 test_0058 test_0059 test_0060 test_0062 test_0064 test_0066 test_0067 test_0068 test_0071 test_0072 test_0073 test_0074 test_0076 test_0077 test_0080 test_0081 test_0082 test_0083 test_0084 test_0086 test_0087 test_0088 test_0091 test_0093 test_0094 test_0097 test_0099 test_0104 test_0105 test_0107 test_0108 test_0110 test_0111 test_0112 test_0113 test_0114 test_0115 test_0117 test_0120 test_0121 test_0122 test_0123 test_0125 test_0126 test_0127 test_0128 test_0129 test_0130 test_0132 test_0133 test_0135 test_0139 test_0140 test_0141 test_0142 test_0143 test_0144 test_0145 test_0148 test_0149 test_0150 test_0151 test_0158 test_0159 test_0160 test_0161 test_0162 test_0163 test_0164 test_0165 test_0166 test_0168 test_0169 test_0170 test_0171 test_0172 test_0173 test_0174 test_0175 test_0177 test_0178 test_0179 test_0180 test_0183 test_0184 test_0186 test_0187 test_0188 test_0189 test_0191 test_0194 test_0195 test_0196 test_0197 test_0198 test_0200 test_0201 test_0202 test_0204 test_0205 test_0206 test_0207 test_0209 test_0210 test_0215 test_0216 test_0217 test_0218 test_0219 test_0220 test_0221 test_0222 test_0223 test_0225 test_0226 test_0227 test_0228 test_0229 test_0230 test_0231 test_0232 test_0233 test_0234 test_0238 test_0239 test_0240 test_0242 test_0243 test_0244 test_0245 test_0299 test_0316 test_0317 test_0739 test_1181 test_1204 test_1209 test_1223 test_1225 test_1232 test_1237 test_1238 test_1245 test_1262 test_1282 test_1294 test_1309 test_1311 test_1313 test_1316 test_1329 test_1333 test_1334 test_1346 test_1354 test_1366 test_1383 test_1416 test_1420 test_1426 test_1427.1 test_1427.2 test_1427.3 test_1430 test_1433 test_1435 test_1438 test_1442 test_1447 test_1457 test_1476 test_1485 test_1486 test_1499 test_1521 test_1524 test_1525 test_1530 test_1535 test_1538 test_1546 test_1547.1 test_1547.2 test_1550 test_1567 test_1588 test_1590 test_1593 test_1607 test_1613 test_1625 test_1632 test_1635 test_1654 test_1657 test_1678 test_1705 test_1718 test_1726 test_1730 test_1735 test_1769 test_1772 test_1776 test_1814 test_1868 test_1873 test_1878 test_1881 test_1894 test_1906 test_1923 test_1939 test_1940 test_14028
hydra: test_0000 test_0001 test_0002 test_0003 test_0004 test_0005 test_0006 test_0007 test_0008 test_0009 test_0010 test_0011 test_0012 test_0014 test_0016 test_0017 test_0018 test_0019 test_0020 test_0021 test_0022 test_0023 test_0024 test_0025 test_0026 test_0027 test_0028 test_0029 test_0030 test_0031 test_0032 test_0033 test_0034 test_0035 test_0036 test_0037 test_0038 test_0041 test_0046 test_0048 test_0049 test_0050 test_0051 test_0052 test_0053 test_0055 test_0056 test_0057 test_0058 test_0059 test_0060 test_0062 test_0064 test_0066 test_0067 test_0068 test_0070 test_0071 test_0072 test_0073 test_0074 test_0076 test_0077 test_0080 test_0081 test_0082 test_0083 test_0084 test_0086 test_0087 test_0088 test_0091 test_0093 test_0094 test_0097 test_0099 test_0102 test_0104 test_0105 test_0107 test_0108 test_0110 test_0111 test_0112 test_0113 test_0114 test_0115 test_0117 test_0120 test_0121 test_0122 test_0123 test_0125 test_0126 test_0127 test_0128 test_0129 test_0130 test_0132 test_0133 test_0135 test_0139 test_0140 test_0141 test_0142 test_0143 test_0144 test_0145 test_0148 test_0149 test_0150 test_0151 test_0158 test_0159 test_0160 test_0161 test_0162 test_0163 test_0164 test_0165 test_0166 test_0168 test_0169 test_0170 test_0171 test_0172 test_0173 test_0174 test_0175 test_0177 test_0178 test_0179 test_0180 test_0183 test_0184 test_0186 test_0187 test_0188 test_0189 test_0191 test_0194 test_0195 test_0196 test_0197 test_0198 test_0200 test_0201 test_0202 test_0204 test_0205 test_0206 test_0207 test_0209 test_0210 test_0215 test_0216 test_0217 test_0218 test_0219 test_0220 test_0221 test_0222 test_0223 test_0224 test_0225 test_0226 test_0227 test_0228 test_0229 test_0230 test_0231 test_0232 test_0233 test_0234 test_0238 test_0239 test_0240 test_0242 test_0243 test_0244 test_0245 test_0299 test_0316 test_0317 test_0739 test_1181 test_1204 test_1209 test_1223 test_1225 test_1232 test_1237 test_1238 test_1245 test_1262 test_1282 test_1294 test_1309 test_1311 test_1313 test_1316 test_1329 test_1333 test_1334 test_1346 test_1354 test_1366 test_1383 test_1416 test_1420 test_1426 test_1427.1 test_1427.2 test_1427.3 test_1430 test_1433 test_1435 test_1438 test_1442 test_1447 test_1457 test_1476 test_1485 test_1486 test_1499 test_1521 test_1524 test_1525 test_1530 test_1535 test_1538 test_1546 test_1547.1 test_1547.2 test_1550 test_1567 test_1588 test_1590 test_1593 test_1607 test_1613 test_1625 test_1632 test_1635 test_1654 test_1657 test_1678 test_1705 test_1718 test_1726 test_1730 test_1735 test_1769 test_1772 test_1776 test_1814 test_1868 test_1873 test_1878 test_1881 test_1894 test_1906 test_1923 test_1939 test_1940 test_14028

# Tests in this group will never be executed (you can use it to temporarily disable some tests and/or groups)
ignore:
Expand Down
6 changes: 4 additions & 2 deletions testsuite/test_0035/data/geom.usda
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,20 @@ def Xform "suzanne"
interpolation = "faceVarying"
)
uniform token subdivisionScheme = "none"
uniform token subsetFamily:materialBind:familyType = "partition"


def GeomSubset "evenFaces"
{
uniform token elementType = "face"
uniform token familyName = ""
uniform token familyName = "materialBind"
int[] indices = [46, 0, 2, 44, 44, 2, 4, 42, 2, 8, 6, 4, 0, 10, 8, 2, 10, 12, 14, 8, 8, 14, 16, 6, 14, 20, 18, 16, 12, 22, 20, 14, 22, 24, 26, 20, 20, 26, 28, 18, 26, 32, 30, 28, 24, 34, 32, 26, 34, 36, 38, 32, 32, 38, 40, 30, 38, 44, 42, 40, 36, 46, 44, 38, 46, 36, 50, 48, 36, 34, 52, 50, 34, 24, 54, 52, 24, 22, 56, 54, 22, 12, 58, 56, 12, 10, 62, 58, 10, 0, 64, 62, 0, 46, 48, 64, 60, 64, 48, 62, 64, 60, 60, 58, 62, 60, 56, 58, 60, 54, 56, 60, 52, 54, 60, 50, 52, 60, 48, 50, 88, 90, 174, 90, 86, 88, 174, 172, 84, 86, 172, 170, 82, 84, 170, 168, 80, 82, 168, 166, 78, 146, 92, 164, 148, 94, 92, 146, 150, 96, 94, 148, 152, 98, 96, 150, 154, 100, 98, 152, 156, 102, 100, 154, 158, 104, 102, 156, 160, 106, 104, 158, 162, 108, 106, 160, 66, 66, 108, 162, 160, 128, 110, 162, 178, 158, 128, 160, 178, 158, 156, 126, 156, 154, 124, 126, 154, 152, 122, 124, 152, 150, 120, 122, 150, 148, 118, 120, 148, 146, 116, 118, 146, 164, 114, 116, 180, 176, 176, 114, 164, 162, 110, 112, 182, 112, 176, 180, 182, 176, 134, 136, 136, 174, 132, 134, 174, 172, 130, 132, 172, 170, 186, 184, 166, 168, 130, 184, 168, 170, 188, 186, 188, 144, 184, 186, 188, 68, 188, 68, 130, 184, 68, 68, 192, 190, 142, 144, 194, 192, 140, 142, 138, 196, 194, 138, 140, 70, 196, 138, 70, 138, 190, 144, 190, 206, 70, 198, 196, 200, 198, 70, 196, 194, 202, 200, 194, 192, 204, 202, 192, 190, 206, 204, 198, 202, 204, 198, 200, 198, 206, 198, 204, 138, 176, 164, 140, 138, 176, 210, 142, 140, 164, 212, 210, 144, 142, 186, 212, 166, 144, 80, 208, 212, 166, 208, 214, 210, 212, 78, 210, 214, 164, 130, 222, 132, 130, 222, 220, 134, 132, 220, 218, 136, 134, 216, 218, 136, 216, 216, 228, 230, 218, 216, 230, 226, 228, 220, 218, 224, 226, 222, 220, 224, 222, 230, 228, 224, 230, 224, 228, 226, 182, 180, 234, 232, 182, 232, 112, 254, 254, 112, 110, 256, 180, 252, 114, 234, 250, 116, 114, 252, 248, 118, 116, 250, 246, 120, 118, 248, 244, 122, 120, 246, 242, 124, 122, 244, 240, 126, 124, 242, 178, 236, 126, 240, 178, 238, 128, 236, 256, 110, 128, 238, 258, 256, 238, 276, 276, 238, 236, 278, 278, 236, 240, 274, 274, 240, 242, 272, 272, 242, 244, 270, 270, 244, 246, 268, 268, 246, 248, 266, 266, 248, 250, 264, 264, 250, 252, 262, 262, 252, 234, 280, 260, 254, 256, 258, 282, 232, 254, 260, 280, 234, 232, 282, 66, 72, 284, 108, 66, 72, 286, 106, 108, 284, 288, 104, 106, 286, 290, 102, 104, 288, 292, 100, 102, 290, 294, 98, 100, 292, 296, 96, 98, 294, 298, 94, 96, 296, 300, 92, 94, 298, 308, 328, 308, 338, 306, 338, 306, 336, 306, 336, 306, 340, 88, 90, 90, 340, 86, 88, 340, 334, 84, 86, 334, 330, 82, 84, 330, 332, 338, 336, 330, 332, 340, 334, 330, 336, 338, 332, 326, 328, 80, 82, 332, 326, 208, 214, 344, 342, 80, 208, 342, 326, 78, 214, 344, 346, 78, 300, 346, 92, 76, 352, 324, 76, 350, 352, 304, 348, 350, 304, 304, 308, 328, 348, 304, 308, 348, 328, 326, 342, 318, 298, 296, 310, 76, 324, 316, 76, 302, 356, 358, 302, 302, 74, 354, 356, 302, 74, 74, 316, 354, 74, 362, 294, 292, 364, 368, 362, 364, 366, 370, 368, 366, 372, 376, 370, 372, 374, 374, 378, 314, 376, 374, 354, 316, 378, 372, 356, 354, 374, 366, 358, 356, 372, 364, 360, 358, 366, 364, 292, 290, 360, 358, 360, 288, 286, 284, 290, 360, 290, 284, 72, 284, 72, 310, 296, 294, 362, 368, 312, 310, 362, 370, 382, 312, 368, 370, 376, 314, 382, 386, 350, 348, 384, 386, 384, 318, 320, 384, 300, 298, 318, 342, 344, 300, 384, 384, 348, 342, 344, 346, 300, 380, 322, 314, 378, 380, 378, 316, 324, 380, 386, 320, 322, 380, 352, 350, 386, 352, 380, 324, 414, 388, 400, 402, 404, 402, 400, 398, 406, 404, 398, 396, 408, 406, 396, 394, 410, 408, 394, 392, 412, 410, 392, 390, 418, 420, 410, 412, 420, 422, 408, 410, 422, 424, 406, 408, 424, 426, 404, 406, 426, 428, 402, 404, 416, 414, 402, 428, 444, 320, 318, 442, 412, 390, 320, 444, 442, 318, 310, 312, 414, 430, 382, 388, 440, 418, 412, 444, 444, 446, 438, 440, 438, 446, 434, 436, 446, 448, 432, 434, 432, 448, 430, 450, 450, 430, 414, 416, 430, 448, 312, 382, 446, 442, 312, 448, 446, 444, 442, 452, 450, 416, 476, 462, 432, 450, 452, 460, 434, 432, 462, 458, 436, 434, 460, 456, 438, 436, 458, 454, 440, 438, 456, 474, 418, 440, 454, 476, 416, 428, 464, 464, 428, 426, 466, 466, 426, 424, 468, 468, 424, 422, 470, 470, 422, 420, 472, 472, 420, 418, 474, 480, 456, 458, 478, 482, 480, 478, 484, 488, 482, 484, 486, 490, 488, 486, 492, 486, 476, 464, 492, 486, 484, 452, 476, 478, 462, 452, 484, 462, 478, 458, 460, 480, 474, 454, 456, 480, 482, 472, 474, 482, 488, 470, 472, 488, 490, 468, 470, 490, 492, 466, 468, 466, 492, 464, 504, 390, 392, 502, 502, 392, 394, 500, 500, 394, 396, 498, 498, 396, 398, 496, 496, 398, 400, 494, 494, 400, 388, 506, 504, 502, 494, 506, 500, 496, 494, 502, 500, 498, 496, 388, 382, 314, 506, 504, 506, 314, 322, 504, 322, 320, 390]
}

def GeomSubset "oddFaces"
{
uniform token elementType = "face"
uniform token familyName = ""
uniform token familyName = "materialBind"
int[] indices = [3, 1, 47, 45, 5, 3, 45, 43, 7, 9, 3, 5, 9, 11, 1, 3, 15, 13, 11, 9, 17, 15, 9, 7, 19, 21, 15, 17, 21, 23, 13, 15, 27, 25, 23, 21, 29, 27, 21, 19, 31, 33, 27, 29, 33, 35, 25, 27, 39, 37, 35, 33, 41, 39, 33, 31, 43, 45, 39, 41, 45, 47, 37, 39, 51, 37, 47, 49, 53, 35, 37, 51, 55, 25, 35, 53, 57, 23, 25, 55, 59, 13, 23, 57, 63, 11, 13, 59, 65, 1, 11, 63, 49, 47, 1, 65, 49, 65, 61, 61, 65, 63, 63, 59, 61, 59, 57, 61, 57, 55, 61, 55, 53, 61, 53, 51, 61, 51, 49, 61, 173, 175, 175, 89, 171, 173, 87, 89, 169, 171, 85, 87, 167, 169, 83, 85, 165, 167, 81, 83, 91, 145, 163, 79, 91, 93, 147, 145, 93, 95, 149, 147, 95, 97, 151, 149, 97, 99, 153, 151, 99, 101, 155, 153, 101, 103, 157, 155, 103, 105, 159, 157, 105, 107, 161, 159, 107, 67, 161, 67, 109, 127, 159, 161, 127, 157, 159, 179, 125, 155, 157, 179, 123, 153, 155, 125, 121, 151, 153, 123, 119, 149, 151, 121, 117, 147, 149, 119, 115, 145, 147, 117, 113, 163, 145, 115, 113, 163, 181, 109, 161, 67, 111, 67, 111, 67, 177, 177, 67, 183, 177, 183, 181, 177, 175, 173, 175, 135, 173, 171, 135, 133, 171, 169, 133, 131, 165, 167, 185, 187, 169, 167, 131, 185, 143, 189, 189, 187, 187, 185, 129, 185, 131, 129, 141, 143, 191, 193, 139, 141, 193, 195, 139, 195, 197, 137, 197, 137, 189, 143, 69, 191, 189, 69, 69, 205, 207, 191, 69, 207, 199, 197, 199, 201, 197, 195, 201, 203, 195, 193, 203, 205, 193, 191, 203, 201, 199, 207, 205, 203, 207, 139, 163, 139, 141, 163, 211, 141, 143, 213, 211, 143, 165, 187, 213, 165, 213, 209, 81, 211, 215, 209, 213, 163, 211, 79, 215, 129, 71, 221, 71, 129, 131, 221, 219, 131, 133, 219, 217, 133, 135, 217, 135, 217, 229, 217, 219, 227, 229, 219, 221, 225, 227, 221, 71, 223, 223, 71, 225, 223, 229, 223, 225, 227, 229, 225, 233, 231, 181, 183, 111, 231, 253, 183, 109, 111, 253, 255, 113, 251, 233, 181, 113, 115, 249, 251, 115, 117, 247, 249, 117, 119, 245, 247, 119, 121, 243, 245, 121, 123, 241, 243, 123, 125, 239, 241, 125, 235, 239, 179, 127, 237, 235, 179, 127, 109, 255, 237, 237, 255, 257, 275, 235, 237, 275, 277, 239, 235, 277, 273, 241, 239, 273, 271, 243, 241, 271, 269, 245, 243, 269, 267, 247, 245, 267, 265, 249, 247, 265, 263, 251, 249, 263, 261, 233, 251, 261, 279, 255, 253, 259, 257, 253, 231, 281, 259, 231, 233, 279, 281, 107, 283, 107, 105, 285, 283, 105, 103, 287, 285, 103, 101, 289, 287, 101, 99, 291, 289, 99, 97, 293, 291, 97, 95, 295, 293, 95, 93, 297, 295, 93, 91, 299, 297, 307, 327, 337, 307, 307, 337, 335, 307, 305, 335, 339, 305, 305, 339, 305, 89, 339, 333, 89, 87, 333, 329, 87, 85, 329, 331, 85, 83, 329, 335, 337, 331, 329, 333, 339, 335, 325, 331, 337, 327, 331, 325, 83, 81, 341, 343, 209, 215, 325, 341, 81, 209, 343, 345, 215, 79, 345, 299, 91, 79, 323, 351, 303, 303, 303, 351, 349, 77, 303, 77, 77, 349, 347, 77, 347, 327, 325, 327, 347, 341, 295, 297, 317, 309, 75, 315, 323, 75, 301, 357, 355, 301, 355, 353, 353, 315, 75, 75, 291, 293, 361, 363, 363, 361, 367, 365, 365, 367, 369, 371, 371, 369, 375, 373, 313, 377, 373, 375, 315, 353, 373, 377, 353, 355, 371, 373, 355, 357, 365, 371, 357, 359, 363, 365, 289, 291, 363, 359, 73, 359, 357, 301, 73, 301, 283, 285, 287, 289, 283, 289, 359, 73, 73, 283, 73, 73, 293, 295, 309, 361, 309, 311, 367, 361, 311, 381, 369, 367, 313, 375, 369, 381, 347, 349, 385, 383, 317, 383, 385, 319, 297, 299, 383, 317, 299, 343, 341, 383, 341, 347, 383, 299, 345, 343, 313, 321, 379, 377, 315, 377, 379, 323, 319, 385, 379, 321, 349, 351, 379, 385, 323, 379, 351, 399, 387, 413, 401, 399, 401, 403, 397, 397, 403, 405, 395, 395, 405, 407, 393, 393, 407, 409, 391, 391, 409, 411, 389, 409, 419, 417, 411, 407, 421, 419, 409, 405, 423, 421, 407, 403, 425, 423, 405, 401, 427, 425, 403, 401, 413, 415, 427, 317, 319, 443, 441, 319, 389, 411, 443, 309, 317, 441, 311, 381, 429, 413, 387, 411, 417, 439, 443, 437, 445, 443, 439, 433, 445, 437, 435, 431, 447, 445, 433, 429, 447, 431, 449, 413, 429, 449, 415, 311, 447, 429, 381, 311, 441, 445, 447, 441, 443, 445, 415, 449, 451, 475, 449, 431, 461, 451, 431, 433, 459, 461, 433, 435, 457, 459, 435, 437, 455, 457, 437, 439, 453, 455, 439, 417, 473, 453, 427, 415, 475, 463, 425, 427, 463, 465, 423, 425, 465, 467, 421, 423, 467, 469, 419, 421, 469, 471, 417, 419, 471, 473, 457, 455, 479, 477, 477, 479, 481, 483, 483, 481, 487, 485, 485, 487, 489, 491, 463, 475, 485, 491, 451, 483, 485, 475, 451, 461, 477, 483, 457, 477, 461, 459, 453, 473, 479, 455, 471, 481, 479, 473, 469, 487, 481, 471, 467, 489, 487, 469, 465, 491, 489, 467, 463, 491, 465, 391, 389, 503, 501, 393, 391, 501, 499, 395, 393, 499, 497, 397, 395, 497, 495, 399, 397, 495, 493, 387, 399, 493, 505, 493, 501, 503, 505, 493, 495, 499, 501, 495, 497, 499, 313, 381, 387, 505, 313, 505, 503, 321, 319, 321, 503, 389]
}
}
Expand Down
Loading

0 comments on commit 5d4100f

Please sign in to comment.