Built motion from commit 6fa6f14.|1.0.18
[motion.git] / server / api / default_report / default_report.controller.js
index 2fe6dd8..4db6e08 100644 (file)
@@ -1 +1 @@
-var _0xfe0b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x62\x75\x69\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x67\x65\x74\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x72\x79","\x45\x72\x72\x6F\x72\x20\x67\x65\x74\x74\x69\x6E\x67\x20\x71\x75\x65\x72\x79\x20\x66\x72\x6F\x6D\x20\x61\x70\x69\x3A","\x6C\x6F\x67","\x61\x6C\x6C","\x62\x75\x69\x6C\x64\x51\x75\x65\x72\x79","\x73\x70\x72\x65\x61\x64","\x75\x73\x65\x72","\x62\x75\x69\x6C\x64\x46\x69\x6C\x74\x65\x72","\x66\x6F\x75\x6E\x64\x20\x72\x65\x70\x6F\x72\x74","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x64\x61\x69\x6C\x79","\x74\x72\x75\x65","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44","\x66\x6F\x72\x6D\x61\x74","\x65\x6E\x64\x44\x61\x74\x65","\x74\x61\x62\x6C\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x5F\x68\x69\x73\x74\x6F\x72\x79","","\x72\x65\x70\x6C\x61\x63\x65","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x66\x69\x65\x6C\x64\x73","\x73\x63\x6F\x70\x65","\x70\x72\x65\x76\x69\x65\x77","\x6C\x65\x6E\x67\x74\x68","\x6C\x69\x6D\x69\x74","\x76\x61\x6C\x75\x65","\x74\x61\x6B\x65","\x6F\x66\x66\x73\x65\x74","\x73\x6C\x69\x63\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x4F\x77\x6E","\x66\x6F\x72\x45\x61\x63\x68","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66","\x50\x44\x46","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76","\x43\x53\x56","\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6A\x73","\x66\x6F\x72\x6B","\x65\x72\x72\x6F\x72","\x63\x68\x69\x6C\x64\x20\x65\x72\x72\x6F\x72","\x6F\x6E","\x63\x6C\x6F\x73\x65","\x63\x68\x69\x6C\x64\x20\x63\x6C\x6F\x73\x65","\x6D\x65\x73\x73\x61\x67\x65","\x63\x68\x69\x6C\x64\x20\x6D\x65\x73\x73\x61\x67\x65","\x6B\x69\x6C\x6C","\x6E\x61\x6D\x65","\x63\x72\x65\x61\x74\x65","\x28","\x72\x75\x6C\x65\x73","\x20","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x67\x72\x6F\x75\x70","\x66\x69\x65\x6C\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x20\x27","\x4C\x49\x4B\x45","\x25","\x27","\x29","\x73\x68\x6F\x77","\x63\x6F\x70\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x70\x61\x72\x65\x6E\x74","\x62\x6F\x64\x79","\x46\x69\x65\x6C\x64\x73","\x6D\x61\x70","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x49\x64","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xfe0b[0];var _=require(_0xfe0b[1]);var util=require(_0xfe0b[2]);var DefaultReport=require(_0xfe0b[4])[_0xfe0b[3]];var sequelize=require(_0xfe0b[4])[_0xfe0b[5]];var CustomReport=require(_0xfe0b[4])[_0xfe0b[6]];var ExtractedReport=require(_0xfe0b[4])[_0xfe0b[7]];var extractUtils=require(_0xfe0b[8]);var reportBuildUtils=require(_0xfe0b[9]);var Util=require(_0xfe0b[10]);var moment=require(_0xfe0b[11]);var cp=require(_0xfe0b[12]);exports[_0xfe0b[13]]=function(_0xac47xc,_0xac47xd,_0xac47xe){return DefaultReport[_0xfe0b[20]](Util[_0xfe0b[19]](_0xac47xc[_0xfe0b[18]]))[_0xfe0b[17]](function(_0xac47x10){_0xac47xd[_0xfe0b[16]](200)[_0xfe0b[15]](_0xac47x10)})[_0xfe0b[14]](function(_0xac47xf){return handleError(_0xac47xd,_0xac47xf)})};exports[_0xfe0b[21]]=function(_0xac47xc,_0xac47xd){return Promise[_0xfe0b[24]]([])[_0xfe0b[17]](getQuery(_0xac47xc,_0xac47xd))[_0xfe0b[17]](function(_0xac47x11){_0xac47xd[_0xfe0b[16]](200)[_0xfe0b[15]]({query:_0xac47x11})})[_0xfe0b[14]](function(_0xac47xf){console[_0xfe0b[23]](_0xfe0b[22],_0xac47xf)})};function getQuery(_0xac47xc,_0xac47xd){var _0xac47x13;return function(){return DefaultReport[_0xfe0b[46]](_0xfe0b[45])[_0xfe0b[44]](_0xac47xc[_0xfe0b[43]][_0xfe0b[42]])[_0xfe0b[17]](function(_0xac47x15){console[_0xfe0b[23]](_0xfe0b[29]);if(!_0xac47x15){return _0xac47xd[_0xfe0b[30]](404)};if(_0xac47xc[_0xfe0b[18]][_0xfe0b[31]]&&_0xac47xc[_0xfe0b[18]][_0xfe0b[31]]===_0xfe0b[32]){_0xac47xc[_0xfe0b[18]][_0xfe0b[33]]=moment()[_0xfe0b[35]](_0xfe0b[34]);_0xac47xc[_0xfe0b[18]][_0xfe0b[36]]=moment()[_0xfe0b[35]](_0xfe0b[34]);_0xac47x15[_0xfe0b[38]][_0xfe0b[37]]=_0xac47x15[_0xfe0b[38]][_0xfe0b[37]][_0xfe0b[41]](_0xfe0b[39],_0xfe0b[40])};delete _0xac47xc[_0xfe0b[18]][_0xfe0b[31]];_0xac47x13=_0xac47x15[_0xfe0b[38]];return _0xac47x13[_0xfe0b[37]]})[_0xfe0b[17]](reportBuildUtils[_0xfe0b[28]](_0xac47xc[_0xfe0b[27]]))[_0xfe0b[17]](function(_0xac47x14){return [_0xac47x14,_0xac47x13]})[_0xfe0b[26]](reportBuildUtils[_0xfe0b[25]](_0xac47xc[_0xfe0b[18]]))}}exports[_0xfe0b[47]]=function(_0xac47xc,_0xac47xd){var _0xac47x16;return Promise[_0xfe0b[24]]([])[_0xfe0b[17]](getQuery(_0xac47xc,_0xac47xd))[_0xfe0b[17]](function(_0xac47x11){return sequelize[_0xfe0b[18]](_0xac47x11,{type:sequelize[_0xfe0b[58]][_0xfe0b[57]]})})[_0xfe0b[17]](function(_0xac47x17){_0xac47x16=_0xac47x17[_0xfe0b[48]];if(_0xac47xc[_0xfe0b[18]][_0xfe0b[49]]){_0xac47x17=_(_0xac47x17)[_0xfe0b[53]](_0xac47xc[_0xfe0b[18]][_0xfe0b[52]]||0)[_0xfe0b[51]](_0xac47xc[_0xfe0b[18]][_0xfe0b[49]])[_0xfe0b[50]]()};_[_0xfe0b[56]](_0xac47x17,function(_0xac47x18){_[_0xfe0b[55]](_0xac47x18,function(_0xac47x19,_0xac47x1a){if(_0xac47x19 instanceof Date){_0xac47x18[_0xac47x1a]=moment(_0xac47x19)[_0xfe0b[35]](_0xfe0b[54]).toString()}})});_0xac47xd[_0xfe0b[16]](200)[_0xfe0b[15]]({rows:_0xac47x17,count:_0xac47x16})})[_0xfe0b[14]](function(_0xac47xf){console[_0xfe0b[23]](_0xac47xf);return handleError(_0xac47xd,_0xac47xf)})};exports[_0xfe0b[59]]=function(_0xac47xc,_0xac47xd){docExtract(_0xac47xc,_0xac47xd,_0xfe0b[60])};exports[_0xfe0b[61]]=function(_0xac47xc,_0xac47xd){docExtract(_0xac47xc,_0xac47xd,_0xfe0b[62])};function docExtract(_0xac47xc,_0xac47xd,_0xac47x1c){DefaultReport[_0xfe0b[46]](_0xfe0b[45])[_0xfe0b[44]](_0xac47xc[_0xfe0b[43]][_0xfe0b[42]])[_0xfe0b[17]](function(_0xac47x15){if(!_0xac47x15){return _0xac47xd[_0xfe0b[30]](404)};if(_0xac47xc[_0xfe0b[18]][_0xfe0b[31]]&&_0xac47xc[_0xfe0b[18]][_0xfe0b[31]]===_0xfe0b[32]){_0xac47xc[_0xfe0b[18]][_0xfe0b[33]]=moment()[_0xfe0b[35]](_0xfe0b[34]);_0xac47xc[_0xfe0b[18]][_0xfe0b[36]]=moment()[_0xfe0b[35]](_0xfe0b[34]);_0xac47x15[_0xfe0b[38]][_0xfe0b[37]]=_0xac47x15[_0xfe0b[38]][_0xfe0b[37]][_0xfe0b[41]](_0xfe0b[39],_0xfe0b[40])};delete _0xac47xc[_0xfe0b[18]][_0xfe0b[31]];return [_0xac47x15,ExtractedReport[_0xfe0b[74]]({name:_0xac47x15[_0xfe0b[73]],startDate:_0xac47xc[_0xfe0b[18]][_0xfe0b[33]]||null,endDate:_0xac47xc[_0xfe0b[18]][_0xfe0b[36]]||null,output:_0xac47x1c,UserId:_0xac47xc[_0xfe0b[27]][_0xfe0b[42]]})]})[_0xfe0b[26]](function(_0xac47x15,_0xac47x1d){var _0xac47x1e=cp[_0xfe0b[64]](__dirname+_0xfe0b[63]);_0xac47x1e[_0xfe0b[67]](_0xfe0b[70],function(_0xac47x1f){console[_0xfe0b[23]](_0xfe0b[71],_0xac47x1f);_0xac47x1e[_0xfe0b[72]]()})[_0xfe0b[67]](_0xfe0b[68],function(){console[_0xfe0b[23]](_0xfe0b[69])})[_0xfe0b[67]](_0xfe0b[65],function(_0xac47xf){console[_0xfe0b[23]](_0xfe0b[66],_0xac47xf)});_0xac47x1e[_0xfe0b[15]]({report:_0xac47x15,query:_0xac47xc[_0xfe0b[18]],extractedId:_0xac47x1d[_0xfe0b[42]],user:_0xac47xc[_0xfe0b[27]],type:_0xac47x1c})})[_0xfe0b[14]](function(_0xac47xf){console[_0xfe0b[23]](_0xac47xf);return handleError(_0xac47xd,_0xac47xf)});return _0xac47xd[_0xfe0b[30]](200)}function getConditions(_0xac47x21){if(!_0xac47x21){return _0xfe0b[40]};for(var _0xac47x22=_0xfe0b[75],_0xac47x23=0;_0xac47x23<_0xac47x21[_0xfe0b[76]][_0xfe0b[48]];_0xac47x23++){_0xac47x23>0&&(_0xac47x22+=_0xfe0b[77]+_0xac47x21[_0xfe0b[78]]+_0xfe0b[77]);_0xac47x22+=_0xac47x21[_0xfe0b[76]][_0xac47x23][_0xfe0b[79]]?getConditions(_0xac47x21[_0xfe0b[76]][_0xac47x23][_0xfe0b[79]]):_0xac47x21[_0xfe0b[76]][_0xac47x23][_0xfe0b[80]]+_0xfe0b[77]+_0xac47x21[_0xfe0b[76]][_0xac47x23][_0xfe0b[81]]+_0xfe0b[82]+(_0xac47x21[_0xfe0b[76]][_0xac47x23][_0xfe0b[81]]===_0xfe0b[83]?_0xfe0b[84]+_0xac47x21[_0xfe0b[76]][_0xac47x23][_0xfe0b[50]]+_0xfe0b[84]:_0xac47x21[_0xfe0b[76]][_0xac47x23][_0xfe0b[50]])+_0xfe0b[85]};return _0xac47x22+_0xfe0b[86]}exports[_0xfe0b[87]]=function(_0xac47xc,_0xac47xd){return DefaultReport[_0xfe0b[44]](_0xac47xc[_0xfe0b[43]][_0xfe0b[42]],{include:[{all:true}]})[_0xfe0b[17]](function(_0xac47x15){if(!_0xac47x15){return _0xac47xd[_0xfe0b[30]](404)};return _0xac47xd[_0xfe0b[15]](_0xac47x15)})[_0xfe0b[14]](function(_0xac47xf){return handleError(_0xac47xd,_0xac47xf)})};exports[_0xfe0b[88]]=function(_0xac47xc,_0xac47xd){return DefaultReport[_0xfe0b[44]](_0xac47xc[_0xfe0b[43]][_0xfe0b[42]],{include:[{all:true}]})[_0xfe0b[17]](function(_0xac47x15){if(!_0xac47x15){return _0xac47xd[_0xfe0b[30]](404)};var _0xac47x24=_0xac47x15[_0xfe0b[38]];delete _0xac47x24[_0xfe0b[42]];delete _0xac47x24[_0xfe0b[89]];delete _0xac47x24[_0xfe0b[90]];_0xac47x24[_0xfe0b[91]]=_0xac47xc[_0xfe0b[92]][_0xfe0b[91]];_0xac47x24[_0xfe0b[93]]=_[_0xfe0b[94]](_0xac47x24.Fields,_0xfe0b[38]);_[_0xfe0b[56]](_0xac47x24.Fields,function(_0xac47x25){delete _0xac47x25[_0xfe0b[42]];delete _0xac47x25[_0xfe0b[95]];delete _0xac47x25[_0xfe0b[89]];delete _0xac47x25[_0xfe0b[90]]});return CustomReport[_0xfe0b[74]](_0xac47x24,{include:[{all:true}]})})[_0xfe0b[17]](function(){return _0xac47xd[_0xfe0b[30]](201)})[_0xfe0b[14]](function(_0xac47xf){console[_0xfe0b[23]](_0xac47xf);return handleError(_0xac47xd,_0xac47xf)})};exports[_0xfe0b[74]]=function(_0xac47xc,_0xac47xd){return DefaultReport[_0xfe0b[74]](_0xac47xc[_0xfe0b[92]])[_0xfe0b[17]](function(_0xac47x15){return _0xac47xd[_0xfe0b[16]](201)[_0xfe0b[15]](_0xac47x15)})[_0xfe0b[14]](function(_0xac47xf){return handleError(_0xac47xd,_0xac47xf)})};exports[_0xfe0b[96]]=function(_0xac47xc,_0xac47xd){if(_0xac47xc[_0xfe0b[92]][_0xfe0b[42]]){delete _0xac47xc[_0xfe0b[92]][_0xfe0b[42]]};return DefaultReport[_0xfe0b[44]](_0xac47xc[_0xfe0b[43]][_0xfe0b[42]])[_0xfe0b[17]](function(_0xac47x15){if(!_0xac47x15){return _0xac47xd[_0xfe0b[30]](404)};var _0xac47x26=_[_0xfe0b[97]](_0xac47x15,_0xac47xc[_0xfe0b[92]]);return _0xac47x26[_0xfe0b[98]]()})[_0xfe0b[17]](function(_0xac47x15){return _0xac47xd[_0xfe0b[16]](200)[_0xfe0b[15]](_0xac47x15)})[_0xfe0b[14]](function(_0xac47xf){return handleError(_0xac47xd,_0xac47xf)})};exports[_0xfe0b[99]]=function(_0xac47xc,_0xac47xd){return DefaultReport[_0xfe0b[44]](_0xac47xc[_0xfe0b[43]][_0xfe0b[42]])[_0xfe0b[17]](function(_0xac47x15){if(!_0xac47x15){return _0xac47xd[_0xfe0b[30]](404)};return _0xac47x15[_0xfe0b[99]]()})[_0xfe0b[17]](function(){return _0xac47xd[_0xfe0b[30]](204)})[_0xfe0b[14]](function(_0xac47xf){return handleError(_0xac47xd,_0xac47xf)})};function handleError(_0xac47xd,_0xac47xf){return _0xac47xd[_0xfe0b[16]](500)[_0xfe0b[15]](_0xac47xf)}
\ No newline at end of file
+var _0x8ab2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x46\x69\x65\x6C\x64","\x4D\x65\x74\x72\x69\x63","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x62\x75\x69\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72\x2E\x6A\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x65\x78\x70\x6F\x72\x74","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x70\x61\x72\x65\x6E\x74","\x74\x61\x62\x6C\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x65\x78\x70\x6F\x72\x74\x46\x69\x65\x6C\x64\x73","\x73\x63\x6F\x70\x65","\x67\x65\x74\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x72\x79","\x45\x72\x72\x6F\x72\x20\x67\x65\x74\x74\x69\x6E\x67\x20\x71\x75\x65\x72\x79\x20\x66\x72\x6F\x6D\x20\x61\x70\x69\x3A","\x73\x74\x61\x63\x6B","\x65\x72\x72\x6F\x72","\x6E\x6F\x20\x73\x75\x66\x66\x69\x63\x69\x65\x6E\x74\x20\x71\x75\x65\x75\x65\x20\x70\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x73\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x75\x73\x65\x72","\x70\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E","\x61\x6C\x6C","\x62\x75\x69\x6C\x64\x51\x75\x65\x72\x79","\x73\x70\x72\x65\x61\x64","\x75\x73\x65\x72","\x62\x75\x69\x6C\x64\x46\x69\x6C\x74\x65\x72","\x64\x61\x69\x6C\x79","\x74\x72\x75\x65","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44","\x66\x6F\x72\x6D\x61\x74","\x65\x6E\x64\x44\x61\x74\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x5F\x68\x69\x73\x74\x6F\x72\x79","","\x72\x65\x70\x6C\x61\x63\x65","\x66\x69\x65\x6C\x64\x73","\x70\x72\x65\x76\x69\x65\x77","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x6C\x69\x6D\x69\x74","\x76\x61\x6C\x75\x65","\x74\x61\x6B\x65","\x6F\x66\x66\x73\x65\x74","\x73\x6C\x69\x63\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x4F\x77\x6E","\x66\x6F\x72\x45\x61\x63\x68","\x71\x75\x65\x72\x79\x20\x65\x72\x72\x6F\x72","\x63\x68\x65\x63\x6B\x51\x75\x65\x72\x79","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66\x20\x61\x70\x69\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x64\x65\x62\x75\x67","\x50\x44\x46","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76\x20\x61\x70\x69\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x43\x53\x56","\x63\x6F\x6D\x6D\x6F\x6E\x20\x64\x6F\x63\x45\x78\x74\x72\x61\x63\x74\x20\x61\x70\x69\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x43\x72\x65\x61\x74\x65\x64\x20\x6E\x65\x77\x20\x65\x78\x74\x72\x61\x63\x74\x65\x64\x20\x72\x65\x70\x6F\x72\x74\x73\x20\x64\x62\x20\x65\x6E\x74\x72\x79\x2C\x20\x63\x61\x6C\x6C\x69\x6E\x67\x20\x65\x78\x74\x65\x72\x6E\x61\x6C\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x3A\x20","\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6A\x73","\x66\x6F\x72\x6B","\x52\x65\x70\x6F\x72\x74\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E\x20\x70\x72\x6F\x63\x65\x73\x73\x20\x65\x72\x72\x6F\x72","\x6F\x6E","\x63\x6C\x6F\x73\x65","\x52\x65\x70\x6F\x72\x74\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E\x20\x70\x72\x6F\x63\x65\x73\x73\x20\x63\x6C\x6F\x73\x65","\x6D\x65\x73\x73\x61\x67\x65","\x52\x65\x70\x6F\x72\x74\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E\x20\x70\x72\x6F\x63\x65\x73\x73\x20\x6D\x65\x73\x73\x61\x67\x65","\x6B\x69\x6C\x6C","\x74\x72\x65\x65","\x70\x61\x72\x73\x65","\x66\x69\x6E\x64","\x46\x6F\x75\x6E\x64\x20\x74\x68\x65\x20\x72\x65\x70\x6F\x72\x74\x2C\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x6E\x65\x77\x20\x44\x42\x20\x72\x6F\x77\x20\x66\x6F\x72\x20\x65\x78\x74\x72\x61\x63\x74\x65\x64\x20\x72\x65\x70\x6F\x72\x74\x73\x2E\x2E","\x73\x74\x61\x72\x74\x54\x69\x6D\x65","\x20","\x30\x30\x3A\x30\x30","\x65\x6E\x64\x54\x69\x6D\x65","\x32\x33\x3A\x35\x39","\x63\x72\x65\x61\x74\x65","\x74\x65\x78\x74","\x2F\x20","\x23","\x73\x68\x6F\x77","\x63\x6F\x70\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x62\x6F\x64\x79","\x6D\x61\x70","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x54\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x44\x65\x66\x61\x75\x6C\x74\x4D\x65\x74\x72\x69\x63\x49\x64","\x67\x72\x6F\x75\x70\x42\x79","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x6E\x75\x6C\x6C","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x52\x65\x70\x6F\x72\x74\x46\x69\x65\x6C\x64\x73","\x44\x65\x66\x61\x75\x6C\x74\x4D\x65\x74\x72\x69\x63","\x5F","\x70\x75\x73\x68","\x66\x69\x65\x6C\x64","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x63\x75\x73\x74\x6F\x6D","\x54\x68\x65\x20\x66\x69\x65\x6C\x64\x20","\x20\x79\x6F\x75\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x20\x69\x6E\x20\x74\x68\x65\x20\x74\x61\x62\x6C\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x59\x6F\x75\x20\x68\x61\x76\x65\x20\x6E\x6F\x74\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x74\x68\x65\x20\x74\x61\x62\x6C\x65\x20\x6F\x72\x20\x74\x68\x65\x20\x74\x61\x62\x6C\x65\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x8ab2[0];var _=require(_0x8ab2[1]);var util=require(_0x8ab2[2]);var DefaultReport=require(_0x8ab2[4])[_0x8ab2[3]];var ReportField=require(_0x8ab2[4])[_0x8ab2[5]];var Metric=require(_0x8ab2[4])[_0x8ab2[6]];var sequelize=require(_0x8ab2[4])[_0x8ab2[7]];var CustomReport=require(_0x8ab2[4])[_0x8ab2[8]];var ExtractedReport=require(_0x8ab2[4])[_0x8ab2[9]];var extractUtils=require(_0x8ab2[10]);var reportBuildUtils=require(_0x8ab2[11]);var Util=require(_0x8ab2[12]);var moment=require(_0x8ab2[13]);var cp=require(_0x8ab2[14]);var sr=require(_0x8ab2[15]);var ReportTree=require(_0x8ab2[4])[_0x8ab2[16]];var logger=require(_0x8ab2[18])(_0x8ab2[17]);exports[_0x8ab2[19]]= function(_0x2d00x11,_0x2d00x12,_0x2d00x13){return DefaultReport[_0x8ab2[26]](Util[_0x8ab2[25]](_0x2d00x11[_0x8ab2[24]]))[_0x8ab2[23]](function(_0x2d00x15){_0x2d00x12[_0x8ab2[22]](200)[_0x8ab2[21]](_0x2d00x15)})[_0x8ab2[20]](function(_0x2d00x14){return handleError(_0x2d00x12,_0x2d00x14)})};exports[_0x8ab2[27]]= function(_0x2d00x11,_0x2d00x12){return DefaultReport[_0x8ab2[38]]({method:[_0x8ab2[37],{DefaultReportId:_0x2d00x11[_0x8ab2[30]][_0x8ab2[29]]}]})[_0x8ab2[36]](_0x2d00x11[_0x8ab2[30]][_0x8ab2[29]],{attributes:[_0x8ab2[31],_0x8ab2[32],_0x8ab2[33],_0x8ab2[34],_0x8ab2[35]]})[_0x8ab2[23]](function(_0x2d00x16){if(!_0x2d00x16){return _0x2d00x12[_0x8ab2[28]](404)};return _0x2d00x12[_0x8ab2[21]](_0x2d00x16)})[_0x8ab2[20]](function(_0x2d00x14){return handleError(_0x2d00x12,_0x2d00x14)})};exports[_0x8ab2[39]]= function(_0x2d00x11,_0x2d00x12){return Promise[_0x8ab2[45]]([])[_0x8ab2[23]](getQuery(_0x2d00x11,_0x2d00x12))[_0x8ab2[23]](function(_0x2d00x17){if(_0x2d00x17){switch(_0x2d00x17){case _0x8ab2[44]:_0x2d00x17= _0x8ab2[43];break;default:}};_0x2d00x12[_0x8ab2[22]](200)[_0x8ab2[21]]({query:_0x2d00x17})})[_0x8ab2[20]](function(_0x2d00x14){logger[_0x8ab2[42]](_0x8ab2[40],_0x2d00x14[_0x8ab2[41]])})};function getQuery(_0x2d00x11,_0x2d00x12){var _0x2d00x19;return function(){return DefaultReport[_0x8ab2[38]](_0x8ab2[60])[_0x8ab2[36]](_0x2d00x11[_0x8ab2[30]][_0x8ab2[29]])[_0x8ab2[23]](function(_0x2d00x16){if(!_0x2d00x16){return _0x2d00x12[_0x8ab2[28]](404)};if(_0x2d00x11[_0x8ab2[24]][_0x8ab2[50]]&& _0x2d00x11[_0x8ab2[24]][_0x8ab2[50]]=== _0x8ab2[51]){_0x2d00x11[_0x8ab2[24]][_0x8ab2[52]]= moment()[_0x8ab2[54]](_0x8ab2[53]);_0x2d00x11[_0x8ab2[24]][_0x8ab2[55]]= moment()[_0x8ab2[54]](_0x8ab2[53]);_0x2d00x16[_0x8ab2[56]][_0x8ab2[35]]= _0x2d00x16[_0x8ab2[56]][_0x8ab2[35]][_0x8ab2[59]](_0x8ab2[57],_0x8ab2[58])};delete _0x2d00x11[_0x8ab2[24]][_0x8ab2[50]];_0x2d00x19= _0x2d00x16[_0x8ab2[56]];return _0x2d00x19[_0x8ab2[35]]})[_0x8ab2[23]](reportBuildUtils[_0x8ab2[49]](_0x2d00x11[_0x8ab2[48]]))[_0x8ab2[23]](function(_0x2d00x1a){return [_0x2d00x1a,_0x2d00x19]})[_0x8ab2[47]](reportBuildUtils[_0x8ab2[46]](_0x2d00x11[_0x8ab2[24]]))}}exports[_0x8ab2[61]]= function(_0x2d00x11,_0x2d00x12){var _0x2d00x1b;return Promise[_0x8ab2[45]]([])[_0x8ab2[23]](getQuery(_0x2d00x11,_0x2d00x12))[_0x8ab2[23]](reportBuildUtils[_0x8ab2[73]]())[_0x8ab2[23]](function(_0x2d00x1c){if(_0x2d00x1c&& _[_0x8ab2[62]](_0x2d00x1c)){_0x2d00x1b= _0x2d00x1c[_0x8ab2[63]];if(_0x2d00x11[_0x8ab2[24]][_0x8ab2[64]]){_0x2d00x1c= _(_0x2d00x1c)[_0x8ab2[68]](_0x2d00x11[_0x8ab2[24]][_0x8ab2[67]]|| 0)[_0x8ab2[66]](_0x2d00x11[_0x8ab2[24]][_0x8ab2[64]])[_0x8ab2[65]]()};_[_0x8ab2[71]](_0x2d00x1c,function(_0x2d00x1d){_[_0x8ab2[70]](_0x2d00x1d,function(_0x2d00x1e,_0x2d00x1f){if(_0x2d00x1e instanceof  Date){_0x2d00x1d[_0x2d00x1f]= moment(_0x2d00x1e)[_0x8ab2[54]](_0x8ab2[69]).toString()}})});_0x2d00x12[_0x8ab2[22]](200)[_0x8ab2[21]]({rows:_0x2d00x1c,count:_0x2d00x1b})}else {return handleError(_0x2d00x12,{message:_0x2d00x1c|| _0x8ab2[72]})}})[_0x8ab2[20]](function(_0x2d00x14){return handleError(_0x2d00x12,_0x2d00x14)})};exports[_0x8ab2[74]]= function(_0x2d00x11,_0x2d00x12){logger[_0x8ab2[76]](_0x8ab2[75]);docExtract(_0x2d00x11,_0x2d00x12,_0x8ab2[77])};exports[_0x8ab2[78]]= function(_0x2d00x11,_0x2d00x12){logger[_0x8ab2[76]](_0x8ab2[79]);docExtract(_0x2d00x11,_0x2d00x12,_0x8ab2[80])};function docExtract(_0x2d00x11,_0x2d00x12,_0x2d00x21){var _0x2d00x16;logger[_0x8ab2[76]](_0x8ab2[81]);DefaultReport[_0x8ab2[38]](_0x8ab2[60])[_0x8ab2[36]](_0x2d00x11[_0x8ab2[30]][_0x8ab2[29]])[_0x8ab2[23]](function(_0x2d00x19){if(!_0x2d00x19){return _0x2d00x12[_0x8ab2[28]](404)};_0x2d00x16= _0x2d00x19;return ReportTree[_0x8ab2[36]](1)})[_0x8ab2[23]](function(_0x2d00x25){_0x2d00x25= JSON[_0x8ab2[93]](_0x2d00x25[_0x8ab2[92]]);var _0x2d00x26=_[_0x8ab2[94]](_0x2d00x25,{id:_0x2d00x16[_0x8ab2[34]]});var _0x2d00x27=getReportPath(_0x2d00x26,_0x2d00x25,_0x2d00x16[_0x8ab2[33]]);logger[_0x8ab2[76]](_0x8ab2[95]);if(_0x2d00x11[_0x8ab2[24]][_0x8ab2[50]]&& _0x2d00x11[_0x8ab2[24]][_0x8ab2[50]]=== _0x8ab2[51]){_0x2d00x11[_0x8ab2[24]][_0x8ab2[52]]= moment()[_0x8ab2[54]](_0x8ab2[53]);_0x2d00x11[_0x8ab2[24]][_0x8ab2[55]]= moment()[_0x8ab2[54]](_0x8ab2[53]);_0x2d00x16[_0x8ab2[56]][_0x8ab2[35]]= _0x2d00x16[_0x8ab2[56]][_0x8ab2[35]][_0x8ab2[59]](_0x8ab2[57],_0x8ab2[58])};delete _0x2d00x11[_0x8ab2[24]][_0x8ab2[50]];return [_0x2d00x16,ExtractedReport[_0x8ab2[101]]({name:_0x2d00x27,startDate:_0x2d00x11[_0x8ab2[24]][_0x8ab2[52]]?_0x2d00x11[_0x8ab2[24]][_0x8ab2[52]]+ (_0x2d00x11[_0x8ab2[24]][_0x8ab2[96]]?_0x8ab2[97]+ _0x2d00x11[_0x8ab2[24]][_0x8ab2[96]]:_0x8ab2[98]):null,endDate:_0x2d00x11[_0x8ab2[24]][_0x8ab2[55]]?_0x2d00x11[_0x8ab2[24]][_0x8ab2[55]]+ (_0x2d00x11[_0x8ab2[24]][_0x8ab2[99]]?_0x8ab2[97]+ _0x2d00x11[_0x8ab2[24]][_0x8ab2[99]]:_0x8ab2[100]):null,output:_0x2d00x21,UserId:_0x2d00x11[_0x8ab2[48]][_0x8ab2[29]]})]})[_0x8ab2[47]](function(_0x2d00x16,_0x2d00x22){logger[_0x8ab2[76]](_0x8ab2[82]+ _0x2d00x21);var _0x2d00x23=cp[_0x8ab2[84]](__dirname+ _0x8ab2[83]);_0x2d00x23[_0x8ab2[86]](_0x8ab2[89],function(_0x2d00x24){logger[_0x8ab2[76]](_0x8ab2[90],_0x2d00x24);_0x2d00x23[_0x8ab2[91]]()})[_0x8ab2[86]](_0x8ab2[87],function(){logger[_0x8ab2[76]](_0x8ab2[88])})[_0x8ab2[86]](_0x8ab2[42],function(_0x2d00x14){logger[_0x8ab2[76]](_0x8ab2[85],_0x2d00x14)});_0x2d00x23[_0x8ab2[21]]({report:_0x2d00x16,query:_0x2d00x11[_0x8ab2[24]],extractedId:_0x2d00x22[_0x8ab2[29]],user:_0x2d00x11[_0x8ab2[48]],type:_0x2d00x21})})[_0x8ab2[20]](function(_0x2d00x14){return handleError(_0x2d00x12,_0x2d00x14)});return _0x2d00x12[_0x8ab2[28]](200)}function getReportPath(_0x2d00x26,_0x2d00x25,_0x2d00x27){_0x2d00x27= _0x2d00x26[_0x8ab2[102]]+ _0x8ab2[103]+ _0x2d00x27;if(_0x2d00x26[_0x8ab2[34]]=== _0x8ab2[104]){return _0x2d00x27}else {return getReportPath(_[_0x8ab2[94]](_0x2d00x25,{id:_0x2d00x26[_0x8ab2[34]]}),_0x2d00x25,_0x2d00x27)}}exports[_0x8ab2[105]]= function(_0x2d00x11,_0x2d00x12){return DefaultReport[_0x8ab2[36]](_0x2d00x11[_0x8ab2[30]][_0x8ab2[29]],{include:[{all:true}]})[_0x8ab2[23]](function(_0x2d00x16){if(!_0x2d00x16){return _0x2d00x12[_0x8ab2[28]](404)};return _0x2d00x12[_0x8ab2[21]](_0x2d00x16)})[_0x8ab2[20]](function(_0x2d00x14){return handleError(_0x2d00x12,_0x2d00x14)})};exports[_0x8ab2[106]]= function(_0x2d00x11,_0x2d00x12){var _0x2d00x29;return sequelize[_0x8ab2[111]](function(_0x2d00x2a){return DefaultReport[_0x8ab2[38]]({method:[_0x8ab2[37],{DefaultReportId:_0x2d00x11[_0x8ab2[30]][_0x8ab2[29]]}]})[_0x8ab2[36]](_0x2d00x11[_0x8ab2[30]][_0x8ab2[29]])[_0x8ab2[23]](function(_0x2d00x16){if(!_0x2d00x16){return _0x2d00x12[_0x8ab2[28]](404)};var _0x2d00x2b=_0x2d00x16[_0x8ab2[56]];delete _0x2d00x2b[_0x8ab2[29]];delete _0x2d00x2b[_0x8ab2[107]];delete _0x2d00x2b[_0x8ab2[108]];_0x2d00x2b[_0x8ab2[34]]= _0x2d00x11[_0x8ab2[109]][_0x8ab2[34]];_0x2d00x29= _[_0x8ab2[110]](_0x2d00x2b.Fields,_0x8ab2[56]);return CustomReport[_0x8ab2[101]](_0x2d00x2b,{transaction:_0x2d00x2a})})[_0x8ab2[23]](function(_0x2d00x16){return [_0x2d00x16,_0x2d00x29]})[_0x8ab2[47]](createCopyFields(_0x2d00x2a))})[_0x8ab2[23]](function(){return _0x2d00x12[_0x8ab2[28]](201)})[_0x8ab2[20]](function(_0x2d00x14){return handleError(_0x2d00x12,_0x2d00x14)})};function createCopyFields(_0x2d00x2a){return function(_0x2d00x16,_0x2d00x2d){if(_0x2d00x2d&& Array[_0x8ab2[62]](_0x2d00x2d)&& _0x2d00x2d[_0x8ab2[63]]){var _0x2d00x2e=reportBuildUtils[_0x8ab2[112]](_0x2d00x16[_0x8ab2[35]]);if(_0x2d00x2e){var _0x2d00x2f;return _0x2d00x2e[_0x8ab2[128]]()[_0x8ab2[23]](function(_0x2d00x30){_0x2d00x2f= _[_0x8ab2[113]](_0x2d00x30);var _0x2d00x31=[];var _0x2d00x32=_[_0x8ab2[115]](_0x2d00x2d,_0x8ab2[114]);_[_0x8ab2[70]](_0x2d00x32,function(_0x2d00x33,_0x2d00x1f){if(_0x2d00x1f!== _0x8ab2[116]&& _0x2d00x1f!== _0x8ab2[117]){_0x2d00x33[0][_0x8ab2[120]][_0x8ab2[119]][_0x8ab2[71]](function(_0x2d00x34){_0x2d00x34[_0x8ab2[118]]= _0x2d00x16[_0x8ab2[29]]});_0x2d00x33[0][_0x8ab2[120]][_0x8ab2[33]]+= _0x8ab2[121]+ sr({length:5});_0x2d00x31[_0x8ab2[122]](Metric[_0x8ab2[101]](_0x2d00x33[0][_0x8ab2[120]][_0x8ab2[56]],{include:[{model:ReportField,as:_0x8ab2[119]}],transaction:_0x2d00x2a}))}else {_0x2d00x33[_0x8ab2[71]](function(_0x2d00x34){if(_[_0x8ab2[124]](_0x2d00x2f,_0x2d00x34[_0x8ab2[123]])|| _0x2d00x34[_0x8ab2[125]]){_0x2d00x34[_0x8ab2[118]]= _0x2d00x16[_0x8ab2[29]];_0x2d00x31[_0x8ab2[122]](ReportField[_0x8ab2[101]](_0x2d00x34,{transaction:_0x2d00x2a}))}else {throw  new sequelize.Error(_0x8ab2[126]+ _0x2d00x34[_0x8ab2[123]]+ _0x8ab2[127])}})}});return _0x2d00x31})[_0x8ab2[45]]()}else {throw  new sequelize.Error(_0x8ab2[129])}}}}exports[_0x8ab2[101]]= function(_0x2d00x11,_0x2d00x12){return DefaultReport[_0x8ab2[101]](_0x2d00x11[_0x8ab2[109]])[_0x8ab2[23]](function(_0x2d00x16){return _0x2d00x12[_0x8ab2[22]](201)[_0x8ab2[21]](_0x2d00x16)})[_0x8ab2[20]](function(_0x2d00x14){return handleError(_0x2d00x12,_0x2d00x14)})};exports[_0x8ab2[130]]= function(_0x2d00x11,_0x2d00x12){if(_0x2d00x11[_0x8ab2[109]][_0x8ab2[29]]){delete _0x2d00x11[_0x8ab2[109]][_0x8ab2[29]]};return DefaultReport[_0x8ab2[36]](_0x2d00x11[_0x8ab2[30]][_0x8ab2[29]])[_0x8ab2[23]](function(_0x2d00x16){if(!_0x2d00x16){return _0x2d00x12[_0x8ab2[28]](404)};var _0x2d00x35=_[_0x8ab2[131]](_0x2d00x16,_0x2d00x11[_0x8ab2[109]]);return _0x2d00x35[_0x8ab2[132]]()})[_0x8ab2[23]](function(_0x2d00x16){return _0x2d00x12[_0x8ab2[22]](200)[_0x8ab2[21]](_0x2d00x16)})[_0x8ab2[20]](function(_0x2d00x14){return handleError(_0x2d00x12,_0x2d00x14)})};exports[_0x8ab2[133]]= function(_0x2d00x11,_0x2d00x12){return DefaultReport[_0x8ab2[36]](_0x2d00x11[_0x8ab2[30]][_0x8ab2[29]])[_0x8ab2[23]](function(_0x2d00x16){if(!_0x2d00x16){return _0x2d00x12[_0x8ab2[28]](404)};return _0x2d00x16[_0x8ab2[133]]()})[_0x8ab2[23]](function(){return _0x2d00x12[_0x8ab2[28]](204)})[_0x8ab2[20]](function(_0x2d00x14){return handleError(_0x2d00x12,_0x2d00x14)})};function handleError(_0x2d00x12,_0x2d00x14){logger[_0x8ab2[42]](_0x2d00x14[_0x8ab2[41]]);return _0x2d00x12[_0x8ab2[22]](500)[_0x8ab2[21]](_0x2d00x14)}
\ No newline at end of file