ALU52WZJLRFVE3V7SLKBM2ENA6CO6LU2MDNUVGPTWXO7ZCXDV2WAC HNGPGVBTFCEYF4YCAUTDGADAU7IXQBAAUNE6RIFUD3HXFGU5QPBAC HVXL2XUZTOWJPESBHBFD74B4QXNMG5SX4LOXDLPJ7732IU4SUYWQC 5X6FHW3SHOE5R37WJPLKNVJM6VWFT6SNRMC5OFFCCW3IGC4ORY2QC 4N5APGRGHTKFMEJ7THSJX6TSYYAP3BUZQG73AJBKCQLXOOEHPATQC DPYJFBXU55M7PFYHARO5FSZ4GFNZQQI4GYV5YTIXC77FUCVUU3PAC KD5237CUR4X3VRUD46H3CVU22NYS7LOPF3WXENWHNSF7GKEIQZ6QC Value * v = drv.queryMeta(name);if (v) {state.forceValue(*v);if (v->type == tString)return v->string.s;else if (v->isList()) {string res = "";for (unsigned int n = 0; n < v->listSize(); ++n) {Value v2(*v->listElems()[n]);state.forceValue(v2);if (v2.type == tString) {if (res.size() != 0) res += ", ";res += v2.string.s;}}return res;
Strings res;std::function<void(Value & v)> rec;rec = [&](Value & v) {state.forceValue(v);if (v.type == tString)res.push_back(v.string.s);else if (v.isList())for (unsigned int n = 0; n < v.listSize(); ++n)rec(*v.listElems()[n]);else if (v.type == tAttrs) {auto a = v.attrs->find(state.symbols.create("shortName"));if (a != v.attrs->end())res.push_back(state.forceString(*a->value));