/* automatically generated by JSCoverage - do not edit */
if (typeof _$jscoverage === 'undefined') _$jscoverage = {};
if (! _$jscoverage['manikin-tools.js']) {
  _$jscoverage['manikin-tools.js'] = [];
  _$jscoverage['manikin-tools.js'][2] = 0;
  _$jscoverage['manikin-tools.js'][3] = 0;
  _$jscoverage['manikin-tools.js'][5] = 0;
  _$jscoverage['manikin-tools.js'][8] = 0;
  _$jscoverage['manikin-tools.js'][10] = 0;
  _$jscoverage['manikin-tools.js'][11] = 0;
  _$jscoverage['manikin-tools.js'][12] = 0;
  _$jscoverage['manikin-tools.js'][13] = 0;
  _$jscoverage['manikin-tools.js'][14] = 0;
  _$jscoverage['manikin-tools.js'][15] = 0;
  _$jscoverage['manikin-tools.js'][18] = 0;
  _$jscoverage['manikin-tools.js'][19] = 0;
  _$jscoverage['manikin-tools.js'][20] = 0;
  _$jscoverage['manikin-tools.js'][21] = 0;
  _$jscoverage['manikin-tools.js'][22] = 0;
  _$jscoverage['manikin-tools.js'][25] = 0;
  _$jscoverage['manikin-tools.js'][26] = 0;
  _$jscoverage['manikin-tools.js'][29] = 0;
  _$jscoverage['manikin-tools.js'][30] = 0;
  _$jscoverage['manikin-tools.js'][31] = 0;
  _$jscoverage['manikin-tools.js'][37] = 0;
  _$jscoverage['manikin-tools.js'][38] = 0;
  _$jscoverage['manikin-tools.js'][40] = 0;
  _$jscoverage['manikin-tools.js'][41] = 0;
  _$jscoverage['manikin-tools.js'][43] = 0;
  _$jscoverage['manikin-tools.js'][44] = 0;
  _$jscoverage['manikin-tools.js'][45] = 0;
  _$jscoverage['manikin-tools.js'][46] = 0;
  _$jscoverage['manikin-tools.js'][47] = 0;
  _$jscoverage['manikin-tools.js'][49] = 0;
  _$jscoverage['manikin-tools.js'][54] = 0;
  _$jscoverage['manikin-tools.js'][55] = 0;
  _$jscoverage['manikin-tools.js'][56] = 0;
  _$jscoverage['manikin-tools.js'][57] = 0;
  _$jscoverage['manikin-tools.js'][58] = 0;
  _$jscoverage['manikin-tools.js'][60] = 0;
  _$jscoverage['manikin-tools.js'][63] = 0;
  _$jscoverage['manikin-tools.js'][64] = 0;
  _$jscoverage['manikin-tools.js'][65] = 0;
  _$jscoverage['manikin-tools.js'][66] = 0;
  _$jscoverage['manikin-tools.js'][67] = 0;
  _$jscoverage['manikin-tools.js'][69] = 0;
  _$jscoverage['manikin-tools.js'][72] = 0;
  _$jscoverage['manikin-tools.js'][73] = 0;
  _$jscoverage['manikin-tools.js'][74] = 0;
  _$jscoverage['manikin-tools.js'][75] = 0;
  _$jscoverage['manikin-tools.js'][76] = 0;
  _$jscoverage['manikin-tools.js'][77] = 0;
  _$jscoverage['manikin-tools.js'][78] = 0;
  _$jscoverage['manikin-tools.js'][79] = 0;
  _$jscoverage['manikin-tools.js'][80] = 0;
  _$jscoverage['manikin-tools.js'][83] = 0;
  _$jscoverage['manikin-tools.js'][84] = 0;
  _$jscoverage['manikin-tools.js'][87] = 0;
  _$jscoverage['manikin-tools.js'][88] = 0;
  _$jscoverage['manikin-tools.js'][90] = 0;
  _$jscoverage['manikin-tools.js'][93] = 0;
  _$jscoverage['manikin-tools.js'][94] = 0;
  _$jscoverage['manikin-tools.js'][95] = 0;
  _$jscoverage['manikin-tools.js'][96] = 0;
  _$jscoverage['manikin-tools.js'][97] = 0;
  _$jscoverage['manikin-tools.js'][98] = 0;
  _$jscoverage['manikin-tools.js'][99] = 0;
  _$jscoverage['manikin-tools.js'][100] = 0;
  _$jscoverage['manikin-tools.js'][101] = 0;
  _$jscoverage['manikin-tools.js'][102] = 0;
  _$jscoverage['manikin-tools.js'][107] = 0;
  _$jscoverage['manikin-tools.js'][115] = 0;
  _$jscoverage['manikin-tools.js'][116] = 0;
  _$jscoverage['manikin-tools.js'][117] = 0;
  _$jscoverage['manikin-tools.js'][118] = 0;
  _$jscoverage['manikin-tools.js'][120] = 0;
  _$jscoverage['manikin-tools.js'][121] = 0;
  _$jscoverage['manikin-tools.js'][122] = 0;
  _$jscoverage['manikin-tools.js'][129] = 0;
  _$jscoverage['manikin-tools.js'][130] = 0;
  _$jscoverage['manikin-tools.js'][131] = 0;
  _$jscoverage['manikin-tools.js'][132] = 0;
  _$jscoverage['manikin-tools.js'][139] = 0;
  _$jscoverage['manikin-tools.js'][140] = 0;
  _$jscoverage['manikin-tools.js'][141] = 0;
  _$jscoverage['manikin-tools.js'][142] = 0;
  _$jscoverage['manikin-tools.js'][149] = 0;
  _$jscoverage['manikin-tools.js'][150] = 0;
  _$jscoverage['manikin-tools.js'][152] = 0;
  _$jscoverage['manikin-tools.js'][153] = 0;
  _$jscoverage['manikin-tools.js'][154] = 0;
  _$jscoverage['manikin-tools.js'][155] = 0;
  _$jscoverage['manikin-tools.js'][156] = 0;
  _$jscoverage['manikin-tools.js'][159] = 0;
  _$jscoverage['manikin-tools.js'][160] = 0;
  _$jscoverage['manikin-tools.js'][161] = 0;
  _$jscoverage['manikin-tools.js'][162] = 0;
  _$jscoverage['manikin-tools.js'][168] = 0;
  _$jscoverage['manikin-tools.js'][169] = 0;
  _$jscoverage['manikin-tools.js'][170] = 0;
  _$jscoverage['manikin-tools.js'][171] = 0;
  _$jscoverage['manikin-tools.js'][172] = 0;
  _$jscoverage['manikin-tools.js'][173] = 0;
  _$jscoverage['manikin-tools.js'][175] = 0;
  _$jscoverage['manikin-tools.js'][176] = 0;
  _$jscoverage['manikin-tools.js'][177] = 0;
  _$jscoverage['manikin-tools.js'][178] = 0;
  _$jscoverage['manikin-tools.js'][185] = 0;
  _$jscoverage['manikin-tools.js'][187] = 0;
  _$jscoverage['manikin-tools.js'][188] = 0;
  _$jscoverage['manikin-tools.js'][189] = 0;
  _$jscoverage['manikin-tools.js'][190] = 0;
  _$jscoverage['manikin-tools.js'][192] = 0;
  _$jscoverage['manikin-tools.js'][199] = 0;
}
_$jscoverage['manikin-tools.js'][2]++;
(function () {
  _$jscoverage['manikin-tools.js'][3]++;
  "use strict";
  _$jscoverage['manikin-tools.js'][5]++;
  var desugarModel, getAllIndirectOwners, getAllOwners, _, __slice = [].slice;
  _$jscoverage['manikin-tools.js'][8]++;
  _ = require("underscore");
  _$jscoverage['manikin-tools.js'][10]++;
  desugarModel = (function (modelName, tgt, src, keys) {
  _$jscoverage['manikin-tools.js'][11]++;
  return keys.forEach((function (key) {
  _$jscoverage['manikin-tools.js'][12]++;
  var obj;
  _$jscoverage['manikin-tools.js'][13]++;
  if (typeof src[key] === "string") {
    _$jscoverage['manikin-tools.js'][14]++;
    obj = {};
    _$jscoverage['manikin-tools.js'][15]++;
    obj[key] = {type: src[key]};
    _$jscoverage['manikin-tools.js'][18]++;
    return desugarModel(modelName, tgt, obj, [key]);
  }
  else {
    _$jscoverage['manikin-tools.js'][19]++;
    if (! (src[key].type != null)) {
      _$jscoverage['manikin-tools.js'][20]++;
      throw new Error("must assign a type: " + key);
    }
    else {
      _$jscoverage['manikin-tools.js'][21]++;
      if (src[key].type === "mixed") {
        _$jscoverage['manikin-tools.js'][22]++;
        return tgt[key] = {type: "mixed"};
      }
      else {
        _$jscoverage['manikin-tools.js'][25]++;
        if (src[key].type === "nested") {
          _$jscoverage['manikin-tools.js'][26]++;
          tgt[key] = {type: "nested"};
          _$jscoverage['manikin-tools.js'][29]++;
          return desugarModel(modelName, tgt[key], src[key], _.without(Object.keys(src[key]), "type"));
        }
        else {
          _$jscoverage['manikin-tools.js'][30]++;
          if (_(["string", "number", "date", "boolean"]).contains(src[key].type)) {
            _$jscoverage['manikin-tools.js'][31]++;
            tgt[key] = {type: src[key].type, required: ! ! src[key].required, index: ! ! src[key].index, unique: ! ! src[key].unique};
            _$jscoverage['manikin-tools.js'][37]++;
            if (src[key]["default"] != null) {
              _$jscoverage['manikin-tools.js'][38]++;
              tgt[key]["default"] = src[key]["default"];
            }
            _$jscoverage['manikin-tools.js'][40]++;
            if (src[key].validate != null) {
              _$jscoverage['manikin-tools.js'][41]++;
              return tgt[key].validate = src[key].validate;
            }
          }
          else {
            _$jscoverage['manikin-tools.js'][43]++;
            if (src[key].type === "hasOne") {
              _$jscoverage['manikin-tools.js'][44]++;
              return tgt[key] = src[key];
            }
            else {
              _$jscoverage['manikin-tools.js'][45]++;
              if (src[key].type === "hasMany") {
                _$jscoverage['manikin-tools.js'][46]++;
                tgt[key] = src[key];
                _$jscoverage['manikin-tools.js'][47]++;
                return tgt[key].inverseName = src[key].inverseName || key;
              }
              else {
                _$jscoverage['manikin-tools.js'][49]++;
                throw new Error("Invalid type: " + src[key].type);
              }
            }
          }
        }
      }
    }
  }
}));
});
  _$jscoverage['manikin-tools.js'][54]++;
  getAllOwners = (function (specmodels, modelName) {
  _$jscoverage['manikin-tools.js'][55]++;
  var indirect, owners;
  _$jscoverage['manikin-tools.js'][56]++;
  owners = specmodels[modelName].owners;
  _$jscoverage['manikin-tools.js'][57]++;
  indirect = _.values(owners).map((function (model) {
  _$jscoverage['manikin-tools.js'][58]++;
  return getAllOwners(specmodels, model);
}));
  _$jscoverage['manikin-tools.js'][60]++;
  return _.extend.apply(_, [{}, owners].concat(__slice.call(indirect)));
});
  _$jscoverage['manikin-tools.js'][63]++;
  getAllIndirectOwners = (function (specmodels, modelName) {
  _$jscoverage['manikin-tools.js'][64]++;
  var indirect, owners;
  _$jscoverage['manikin-tools.js'][65]++;
  owners = specmodels[modelName].owners;
  _$jscoverage['manikin-tools.js'][66]++;
  indirect = _.flatten(_.values(owners).map((function (model) {
  _$jscoverage['manikin-tools.js'][67]++;
  return getAllOwners(specmodels, model);
})));
  _$jscoverage['manikin-tools.js'][69]++;
  return _.extend.apply(_, [{}].concat(__slice.call(indirect)));
});
  _$jscoverage['manikin-tools.js'][72]++;
  exports.desugar = (function (models) {
  _$jscoverage['manikin-tools.js'][73]++;
  var rest;
  _$jscoverage['manikin-tools.js'][74]++;
  rest = {};
  _$jscoverage['manikin-tools.js'][75]++;
  Object.keys(models).forEach((function (modelName) {
  _$jscoverage['manikin-tools.js'][76]++;
  var inspec, spec;
  _$jscoverage['manikin-tools.js'][77]++;
  spec = {};
  _$jscoverage['manikin-tools.js'][78]++;
  inspec = models[modelName].fields || {};
  _$jscoverage['manikin-tools.js'][79]++;
  desugarModel(modelName, spec, inspec, Object.keys(inspec));
  _$jscoverage['manikin-tools.js'][80]++;
  rest[modelName] = _.extend({}, models[modelName], {fields: spec});
  _$jscoverage['manikin-tools.js'][83]++;
  if (! rest[modelName].owners) {
    _$jscoverage['manikin-tools.js'][84]++;
    return rest[modelName].owners = {};
  }
}));
  _$jscoverage['manikin-tools.js'][87]++;
  Object.keys(rest).forEach((function (modelName) {
  _$jscoverage['manikin-tools.js'][88]++;
  return rest[modelName].indirectOwners = getAllIndirectOwners(rest, modelName);
}));
  _$jscoverage['manikin-tools.js'][90]++;
  return rest;
});
  _$jscoverage['manikin-tools.js'][93]++;
  exports.getMeta = (function (specmodels) {
  _$jscoverage['manikin-tools.js'][94]++;
  var meta;
  _$jscoverage['manikin-tools.js'][95]++;
  meta = {};
  _$jscoverage['manikin-tools.js'][96]++;
  Object.keys(specmodels).forEach((function (modelName) {
  _$jscoverage['manikin-tools.js'][97]++;
  var apa, otherMany, ownMany;
  _$jscoverage['manikin-tools.js'][98]++;
  meta[modelName] = meta[modelName] || {};
  _$jscoverage['manikin-tools.js'][99]++;
  meta[modelName].owners = _.pairs(specmodels[modelName].owners).map((function (_arg) {
  _$jscoverage['manikin-tools.js'][100]++;
  var plur, sing;
  _$jscoverage['manikin-tools.js'][101]++;
  sing = _arg[0], plur = _arg[1];
  _$jscoverage['manikin-tools.js'][102]++;
  return ({sing: sing, plur: plur});
}));
  _$jscoverage['manikin-tools.js'][107]++;
  meta[modelName].fields = [{name: "id", readonly: true, required: false, type: "string"}];
  _$jscoverage['manikin-tools.js'][115]++;
  meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].fields).filter((function (_arg) {
  _$jscoverage['manikin-tools.js'][116]++;
  var k, v;
  _$jscoverage['manikin-tools.js'][117]++;
  k = _arg[0], v = _arg[1];
  _$jscoverage['manikin-tools.js'][118]++;
  return v.type !== "hasMany";
})).map((function (_arg) {
  _$jscoverage['manikin-tools.js'][120]++;
  var k, v;
  _$jscoverage['manikin-tools.js'][121]++;
  k = _arg[0], v = _arg[1];
  _$jscoverage['manikin-tools.js'][122]++;
  return ({name: k, readonly: k === "_id", required: ! ! v.require, type: v.type});
})));
  _$jscoverage['manikin-tools.js'][129]++;
  meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].owners).map((function (_arg) {
  _$jscoverage['manikin-tools.js'][130]++;
  var k, v;
  _$jscoverage['manikin-tools.js'][131]++;
  k = _arg[0], v = _arg[1];
  _$jscoverage['manikin-tools.js'][132]++;
  return ({name: k, readonly: true, required: true, type: "string"});
})));
  _$jscoverage['manikin-tools.js'][139]++;
  meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].indirectOwners).map((function (_arg) {
  _$jscoverage['manikin-tools.js'][140]++;
  var k, v;
  _$jscoverage['manikin-tools.js'][141]++;
  k = _arg[0], v = _arg[1];
  _$jscoverage['manikin-tools.js'][142]++;
  return ({name: k, readonly: true, required: true, type: "string"});
})));
  _$jscoverage['manikin-tools.js'][149]++;
  meta[modelName].fields = _.sortBy(meta[modelName].fields, (function (x) {
  _$jscoverage['manikin-tools.js'][150]++;
  return x.name;
}));
  _$jscoverage['manikin-tools.js'][152]++;
  apa = (function (modelName) {
  _$jscoverage['manikin-tools.js'][153]++;
  return _.pairs(specmodels[modelName].fields).filter((function (_arg) {
  _$jscoverage['manikin-tools.js'][154]++;
  var key, value;
  _$jscoverage['manikin-tools.js'][155]++;
  key = _arg[0], value = _arg[1];
  _$jscoverage['manikin-tools.js'][156]++;
  return value.type === "hasMany";
}));
});
  _$jscoverage['manikin-tools.js'][159]++;
  ownMany = apa(modelName).map((function (_arg) {
  _$jscoverage['manikin-tools.js'][160]++;
  var k, v;
  _$jscoverage['manikin-tools.js'][161]++;
  k = _arg[0], v = _arg[1];
  _$jscoverage['manikin-tools.js'][162]++;
  return ({ref: v.model, name: k, inverseName: v.inverseName});
}));
  _$jscoverage['manikin-tools.js'][168]++;
  otherMany = Object.keys(specmodels).map((function (mn) {
  _$jscoverage['manikin-tools.js'][169]++;
  var fd;
  _$jscoverage['manikin-tools.js'][170]++;
  fd = apa(mn).filter((function (_arg) {
  _$jscoverage['manikin-tools.js'][171]++;
  var k, v;
  _$jscoverage['manikin-tools.js'][172]++;
  k = _arg[0], v = _arg[1];
  _$jscoverage['manikin-tools.js'][173]++;
  return v.model === modelName;
}));
  _$jscoverage['manikin-tools.js'][175]++;
  return fd.map((function (_arg) {
  _$jscoverage['manikin-tools.js'][176]++;
  var k, v;
  _$jscoverage['manikin-tools.js'][177]++;
  k = _arg[0], v = _arg[1];
  _$jscoverage['manikin-tools.js'][178]++;
  return ({ref: mn, name: v.inverseName, inverseName: k});
}));
}));
  _$jscoverage['manikin-tools.js'][185]++;
  return meta[modelName].manyToMany = _.flatten(ownMany.concat(otherMany));
}));
  _$jscoverage['manikin-tools.js'][187]++;
  Object.keys(meta).forEach((function (metaName) {
  _$jscoverage['manikin-tools.js'][188]++;
  return meta[metaName].owns = _.flatten(Object.keys(meta).map((function (mn) {
  _$jscoverage['manikin-tools.js'][189]++;
  return meta[mn].owners.filter((function (x) {
  _$jscoverage['manikin-tools.js'][190]++;
  return x.plur === metaName;
})).map((function (x) {
  _$jscoverage['manikin-tools.js'][192]++;
  return ({name: mn, field: x.sing});
}));
})));
}));
  _$jscoverage['manikin-tools.js'][199]++;
  return meta;
});
}).call(this);
_$jscoverage['manikin-tools.js'].source = ["// Generated by CoffeeScript 1.4.0","(function() {","  \"use strict\";","","  var desugarModel, getAllIndirectOwners, getAllOwners, _,","    __slice = [].slice;","","  _ = require('underscore');","","  desugarModel = function(modelName, tgt, src, keys) {","    return keys.forEach(function(key) {","      var obj;","      if (typeof src[key] === 'string') {","        obj = {};","        obj[key] = {","          type: src[key]","        };","        return desugarModel(modelName, tgt, obj, [key]);","      } else if (!(src[key].type != null)) {","        throw new Error(\"must assign a type: \" + key);","      } else if (src[key].type === 'mixed') {","        return tgt[key] = {","          type: 'mixed'","        };","      } else if (src[key].type === 'nested') {","        tgt[key] = {","          type: 'nested'","        };","        return desugarModel(modelName, tgt[key], src[key], _.without(Object.keys(src[key]), 'type'));","      } else if (_(['string', 'number', 'date', 'boolean']).contains(src[key].type)) {","        tgt[key] = {","          type: src[key].type,","          required: !!src[key].required,","          index: !!src[key].index,","          unique: !!src[key].unique","        };","        if (src[key][\"default\"] != null) {","          tgt[key][\"default\"] = src[key][\"default\"];","        }","        if (src[key].validate != null) {","          return tgt[key].validate = src[key].validate;","        }","      } else if (src[key].type === 'hasOne') {","        return tgt[key] = src[key];","      } else if (src[key].type === 'hasMany') {","        tgt[key] = src[key];","        return tgt[key].inverseName = src[key].inverseName || key;","      } else {","        throw new Error(\"Invalid type: \" + src[key].type);","      }","    });","  };","","  getAllOwners = function(specmodels, modelName) {","    var indirect, owners;","    owners = specmodels[modelName].owners;","    indirect = _.values(owners).map(function(model) {","      return getAllOwners(specmodels, model);","    });","    return _.extend.apply(_, [{}, owners].concat(__slice.call(indirect)));","  };","","  getAllIndirectOwners = function(specmodels, modelName) {","    var indirect, owners;","    owners = specmodels[modelName].owners;","    indirect = _.flatten(_.values(owners).map(function(model) {","      return getAllOwners(specmodels, model);","    }));","    return _.extend.apply(_, [{}].concat(__slice.call(indirect)));","  };","","  exports.desugar = function(models) {","    var rest;","    rest = {};","    Object.keys(models).forEach(function(modelName) {","      var inspec, spec;","      spec = {};","      inspec = models[modelName].fields || {};","      desugarModel(modelName, spec, inspec, Object.keys(inspec));","      rest[modelName] = _.extend({}, models[modelName], {","        fields: spec","      });","      if (!rest[modelName].owners) {","        return rest[modelName].owners = {};","      }","    });","    Object.keys(rest).forEach(function(modelName) {","      return rest[modelName].indirectOwners = getAllIndirectOwners(rest, modelName);","    });","    return rest;","  };","","  exports.getMeta = function(specmodels) {","    var meta;","    meta = {};","    Object.keys(specmodels).forEach(function(modelName) {","      var apa, otherMany, ownMany;","      meta[modelName] = meta[modelName] || {};","      meta[modelName].owners = _.pairs(specmodels[modelName].owners).map(function(_arg) {","        var plur, sing;","        sing = _arg[0], plur = _arg[1];","        return {","          sing: sing,","          plur: plur","        };","      });","      meta[modelName].fields = [","        {","          name: 'id',","          readonly: true,","          required: false,","          type: 'string'","        }","      ];","      meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].fields).filter(function(_arg) {","        var k, v;","        k = _arg[0], v = _arg[1];","        return v.type !== 'hasMany';","      }).map(function(_arg) {","        var k, v;","        k = _arg[0], v = _arg[1];","        return {","          name: k,","          readonly: k === '_id',","          required: !!v.require,","          type: v.type","        };","      }));","      meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].owners).map(function(_arg) {","        var k, v;","        k = _arg[0], v = _arg[1];","        return {","          name: k,","          readonly: true,","          required: true,","          type: 'string'","        };","      }));","      meta[modelName].fields = meta[modelName].fields.concat(_.pairs(specmodels[modelName].indirectOwners).map(function(_arg) {","        var k, v;","        k = _arg[0], v = _arg[1];","        return {","          name: k,","          readonly: true,","          required: true,","          type: 'string'","        };","      }));","      meta[modelName].fields = _.sortBy(meta[modelName].fields, function(x) {","        return x.name;","      });","      apa = function(modelName) {","        return _.pairs(specmodels[modelName].fields).filter(function(_arg) {","          var key, value;","          key = _arg[0], value = _arg[1];","          return value.type === 'hasMany';","        });","      };","      ownMany = apa(modelName).map(function(_arg) {","        var k, v;","        k = _arg[0], v = _arg[1];","        return {","          ref: v.model,","          name: k,","          inverseName: v.inverseName","        };","      });","      otherMany = Object.keys(specmodels).map(function(mn) {","        var fd;","        fd = apa(mn).filter(function(_arg) {","          var k, v;","          k = _arg[0], v = _arg[1];","          return v.model === modelName;","        });","        return fd.map(function(_arg) {","          var k, v;","          k = _arg[0], v = _arg[1];","          return {","            ref: mn,","            name: v.inverseName,","            inverseName: k","          };","        });","      });","      return meta[modelName].manyToMany = _.flatten(ownMany.concat(otherMany));","    });","    Object.keys(meta).forEach(function(metaName) {","      return meta[metaName].owns = _.flatten(Object.keys(meta).map(function(mn) {","        return meta[mn].owners.filter(function(x) {","          return x.plur === metaName;","        }).map(function(x) {","          return {","            name: mn,","            field: x.sing","          };","        });","      }));","    });","    return meta;","  };","","}).call(this);"];
