Built motion from commit fa8c70b.|0.0.144
[motion.git] / server / api / default_report / default_report.controller.js
index c213951..ea1cc4a 100644 (file)
@@ -1 +1 @@
-var _0x944c=["\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","\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","\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","\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","\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","\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","\x62\x6F\x64\x79","\x6D\x61\x70","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x69\x73\x41\x72\x72\x61\x79","\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","\x69\x6E\x63\x6C\x75\x64\x65\x73","\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"];_0x944c[0];var _=require(_0x944c[1]);var util=require(_0x944c[2]);var DefaultReport=require(_0x944c[4])[_0x944c[3]];var ReportField=require(_0x944c[4])[_0x944c[5]];var Metric=require(_0x944c[4])[_0x944c[6]];var sequelize=require(_0x944c[4])[_0x944c[7]];var CustomReport=require(_0x944c[4])[_0x944c[8]];var ExtractedReport=require(_0x944c[4])[_0x944c[9]];var extractUtils=require(_0x944c[10]);var reportBuildUtils=require(_0x944c[11]);var Util=require(_0x944c[12]);var moment=require(_0x944c[13]);var cp=require(_0x944c[14]);var sr=require(_0x944c[15]);exports[_0x944c[16]]= function(_0x677fxf,_0x677fx10,_0x677fx11){return DefaultReport[_0x944c[23]](Util[_0x944c[22]](_0x677fxf[_0x944c[21]]))[_0x944c[20]](function(_0x677fx13){_0x677fx10[_0x944c[19]](200)[_0x944c[18]](_0x677fx13)})[_0x944c[17]](function(_0x677fx12){return handleError(_0x677fx10,_0x677fx12)})};exports[_0x944c[24]]= function(_0x677fxf,_0x677fx10){return DefaultReport[_0x944c[35]]({method:[_0x944c[34],{DefaultReportId:_0x677fxf[_0x944c[27]][_0x944c[26]]}]})[_0x944c[33]](_0x677fxf[_0x944c[27]][_0x944c[26]],{attributes:[_0x944c[28],_0x944c[29],_0x944c[30],_0x944c[31],_0x944c[32]]})[_0x944c[20]](function(_0x677fx14){if(!_0x677fx14){return _0x677fx10[_0x944c[25]](404)};return _0x677fx10[_0x944c[18]](_0x677fx14)})[_0x944c[17]](function(_0x677fx12){return handleError(_0x677fx10,_0x677fx12)})};exports[_0x944c[36]]= function(_0x677fxf,_0x677fx10){return Promise[_0x944c[39]]([])[_0x944c[20]](getQuery(_0x677fxf,_0x677fx10))[_0x944c[20]](function(_0x677fx15){_0x677fx10[_0x944c[19]](200)[_0x944c[18]]({query:_0x677fx15})})[_0x944c[17]](function(_0x677fx12){console[_0x944c[38]](_0x944c[37],_0x677fx12)})};function getQuery(_0x677fxf,_0x677fx10){var _0x677fx17;return function(){return DefaultReport[_0x944c[35]](_0x944c[55])[_0x944c[33]](_0x677fxf[_0x944c[27]][_0x944c[26]])[_0x944c[20]](function(_0x677fx14){console[_0x944c[38]](_0x944c[44]);if(!_0x677fx14){return _0x677fx10[_0x944c[25]](404)};if(_0x677fxf[_0x944c[21]][_0x944c[45]]&& _0x677fxf[_0x944c[21]][_0x944c[45]]=== _0x944c[46]){_0x677fxf[_0x944c[21]][_0x944c[47]]= moment()[_0x944c[49]](_0x944c[48]);_0x677fxf[_0x944c[21]][_0x944c[50]]= moment()[_0x944c[49]](_0x944c[48]);_0x677fx14[_0x944c[51]][_0x944c[32]]= _0x677fx14[_0x944c[51]][_0x944c[32]][_0x944c[54]](_0x944c[52],_0x944c[53])};delete _0x677fxf[_0x944c[21]][_0x944c[45]];_0x677fx17= _0x677fx14[_0x944c[51]];return _0x677fx17[_0x944c[32]]})[_0x944c[20]](reportBuildUtils[_0x944c[43]](_0x677fxf[_0x944c[42]]))[_0x944c[20]](function(_0x677fx18){return [_0x677fx18,_0x677fx17]})[_0x944c[41]](reportBuildUtils[_0x944c[40]](_0x677fxf[_0x944c[21]]))}}exports[_0x944c[56]]= function(_0x677fxf,_0x677fx10){var _0x677fx19;return Promise[_0x944c[39]]([])[_0x944c[20]](getQuery(_0x677fxf,_0x677fx10))[_0x944c[20]](function(_0x677fx15){return sequelize[_0x944c[21]](_0x677fx15,{type:sequelize[_0x944c[67]][_0x944c[66]]})})[_0x944c[20]](function(_0x677fx1a){_0x677fx19= _0x677fx1a[_0x944c[57]];if(_0x677fxf[_0x944c[21]][_0x944c[58]]){_0x677fx1a= _(_0x677fx1a)[_0x944c[62]](_0x677fxf[_0x944c[21]][_0x944c[61]]|| 0)[_0x944c[60]](_0x677fxf[_0x944c[21]][_0x944c[58]])[_0x944c[59]]()};_[_0x944c[65]](_0x677fx1a,function(_0x677fx1b){_[_0x944c[64]](_0x677fx1b,function(_0x677fx1c,_0x677fx1d){if(_0x677fx1c instanceof  Date){_0x677fx1b[_0x677fx1d]= moment(_0x677fx1c)[_0x944c[49]](_0x944c[63]).toString()}})});_0x677fx10[_0x944c[19]](200)[_0x944c[18]]({rows:_0x677fx1a,count:_0x677fx19})})[_0x944c[17]](function(_0x677fx12){console[_0x944c[38]](_0x677fx12);return handleError(_0x677fx10,_0x677fx12)})};exports[_0x944c[68]]= function(_0x677fxf,_0x677fx10){docExtract(_0x677fxf,_0x677fx10,_0x944c[69])};exports[_0x944c[70]]= function(_0x677fxf,_0x677fx10){docExtract(_0x677fxf,_0x677fx10,_0x944c[71])};function docExtract(_0x677fxf,_0x677fx10,_0x677fx1f){DefaultReport[_0x944c[35]](_0x944c[55])[_0x944c[33]](_0x677fxf[_0x944c[27]][_0x944c[26]])[_0x944c[20]](function(_0x677fx14){if(!_0x677fx14){return _0x677fx10[_0x944c[25]](404)};if(_0x677fxf[_0x944c[21]][_0x944c[45]]&& _0x677fxf[_0x944c[21]][_0x944c[45]]=== _0x944c[46]){_0x677fxf[_0x944c[21]][_0x944c[47]]= moment()[_0x944c[49]](_0x944c[48]);_0x677fxf[_0x944c[21]][_0x944c[50]]= moment()[_0x944c[49]](_0x944c[48]);_0x677fx14[_0x944c[51]][_0x944c[32]]= _0x677fx14[_0x944c[51]][_0x944c[32]][_0x944c[54]](_0x944c[52],_0x944c[53])};delete _0x677fxf[_0x944c[21]][_0x944c[45]];return [_0x677fx14,ExtractedReport[_0x944c[82]]({name:_0x677fx14[_0x944c[30]],startDate:_0x677fxf[_0x944c[21]][_0x944c[47]]|| null,endDate:_0x677fxf[_0x944c[21]][_0x944c[50]]|| null,output:_0x677fx1f,UserId:_0x677fxf[_0x944c[42]][_0x944c[26]]})]})[_0x944c[41]](function(_0x677fx14,_0x677fx20){var _0x677fx21=cp[_0x944c[73]](__dirname+ _0x944c[72]);_0x677fx21[_0x944c[76]](_0x944c[79],function(_0x677fx22){console[_0x944c[38]](_0x944c[80],_0x677fx22);_0x677fx21[_0x944c[81]]()})[_0x944c[76]](_0x944c[77],function(){console[_0x944c[38]](_0x944c[78])})[_0x944c[76]](_0x944c[74],function(_0x677fx12){console[_0x944c[38]](_0x944c[75],_0x677fx12)});_0x677fx21[_0x944c[18]]({report:_0x677fx14,query:_0x677fxf[_0x944c[21]],extractedId:_0x677fx20[_0x944c[26]],user:_0x677fxf[_0x944c[42]],type:_0x677fx1f})})[_0x944c[17]](function(_0x677fx12){console[_0x944c[38]](_0x677fx12);return handleError(_0x677fx10,_0x677fx12)});return _0x677fx10[_0x944c[25]](200)}function getConditions(_0x677fx24){if(!_0x677fx24){return _0x944c[53]};for(var _0x677fx25=_0x944c[83],_0x677fx26=0;_0x677fx26< _0x677fx24[_0x944c[84]][_0x944c[57]];_0x677fx26++){_0x677fx26> 0&& (_0x677fx25+= _0x944c[85]+ _0x677fx24[_0x944c[86]]+ _0x944c[85]);_0x677fx25+= _0x677fx24[_0x944c[84]][_0x677fx26][_0x944c[87]]?getConditions(_0x677fx24[_0x944c[84]][_0x677fx26][_0x944c[87]]):_0x677fx24[_0x944c[84]][_0x677fx26][_0x944c[88]]+ _0x944c[85]+ _0x677fx24[_0x944c[84]][_0x677fx26][_0x944c[89]]+ _0x944c[90]+ (_0x677fx24[_0x944c[84]][_0x677fx26][_0x944c[89]]=== _0x944c[91]?_0x944c[92]+ _0x677fx24[_0x944c[84]][_0x677fx26][_0x944c[59]]+ _0x944c[92]:_0x677fx24[_0x944c[84]][_0x677fx26][_0x944c[59]])+ _0x944c[93]};return _0x677fx25+ _0x944c[94]}exports[_0x944c[95]]= function(_0x677fxf,_0x677fx10){return DefaultReport[_0x944c[33]](_0x677fxf[_0x944c[27]][_0x944c[26]],{include:[{all:true}]})[_0x944c[20]](function(_0x677fx14){if(!_0x677fx14){return _0x677fx10[_0x944c[25]](404)};return _0x677fx10[_0x944c[18]](_0x677fx14)})[_0x944c[17]](function(_0x677fx12){return handleError(_0x677fx10,_0x677fx12)})};exports[_0x944c[96]]= function(_0x677fxf,_0x677fx10){var _0x677fx27;return sequelize[_0x944c[101]](function(_0x677fx28){return DefaultReport[_0x944c[35]]({method:[_0x944c[34],{DefaultReportId:_0x677fxf[_0x944c[27]][_0x944c[26]]}]})[_0x944c[33]](_0x677fxf[_0x944c[27]][_0x944c[26]])[_0x944c[20]](function(_0x677fx14){if(!_0x677fx14){return _0x677fx10[_0x944c[25]](404)};var _0x677fx29=_0x677fx14[_0x944c[51]];console[_0x944c[38]](_0x677fx29);delete _0x677fx29[_0x944c[26]];delete _0x677fx29[_0x944c[97]];delete _0x677fx29[_0x944c[98]];_0x677fx29[_0x944c[31]]= _0x677fxf[_0x944c[99]][_0x944c[31]];_0x677fx27= _[_0x944c[100]](_0x677fx29.Fields,_0x944c[51]);return CustomReport[_0x944c[82]](_0x677fx29,{transaction:_0x677fx28})})[_0x944c[20]](function(_0x677fx14){return [_0x677fx14,_0x677fx27]})[_0x944c[41]](createCopyFields(_0x677fx28))})[_0x944c[20]](function(){return _0x677fx10[_0x944c[25]](201)})[_0x944c[17]](function(_0x677fx12){console[_0x944c[38]](_0x677fx12);return handleError(_0x677fx10,_0x677fx12)})};function createCopyFields(_0x677fx28){return function(_0x677fx14,_0x677fx2b){if(_0x677fx2b&& Array[_0x944c[102]](_0x677fx2b)&& _0x677fx2b[_0x944c[57]]){var _0x677fx2c=reportBuildUtils[_0x944c[103]](_0x677fx14[_0x944c[32]]);if(_0x677fx2c){var _0x677fx2d;return _0x677fx2c[_0x944c[117]]()[_0x944c[20]](function(_0x677fx2e){_0x677fx2d= _[_0x944c[104]](_0x677fx2e);var _0x677fx2f=[];var _0x677fx30=_[_0x944c[106]](_0x677fx2b,_0x944c[105]);_[_0x944c[64]](_0x677fx30,function(_0x677fx31,_0x677fx1d){if(_0x677fx1d!== _0x944c[107]&& _0x677fx1d!== _0x944c[108]){_0x677fx31[0][_0x944c[111]][_0x944c[110]][_0x944c[65]](function(_0x677fx32){_0x677fx32[_0x944c[109]]= _0x677fx14[_0x944c[26]]});_0x677fx31[0][_0x944c[111]][_0x944c[30]]+= _0x944c[112]+ sr({length:5});_0x677fx2f[_0x944c[113]](Metric[_0x944c[82]](_0x677fx31[0][_0x944c[111]][_0x944c[51]],{include:[{model:ReportField,as:_0x944c[110]}],transaction:_0x677fx28}))}else {_0x677fx31[_0x944c[65]](function(_0x677fx32){if(_[_0x944c[114]](_0x677fx2d,_0x677fx32[_0x944c[88]])){_0x677fx32[_0x944c[109]]= _0x677fx14[_0x944c[26]];_0x677fx2f[_0x944c[113]](ReportField[_0x944c[82]](_0x677fx32,{transaction:_0x677fx28}))}else {throw  new sequelize.Error(_0x944c[115]+ _0x677fx32[_0x944c[88]]+ _0x944c[116])}})}});return _0x677fx2f})[_0x944c[39]]()}else {throw  new sequelize.Error(_0x944c[118])}}}}exports[_0x944c[82]]= function(_0x677fxf,_0x677fx10){return DefaultReport[_0x944c[82]](_0x677fxf[_0x944c[99]])[_0x944c[20]](function(_0x677fx14){return _0x677fx10[_0x944c[19]](201)[_0x944c[18]](_0x677fx14)})[_0x944c[17]](function(_0x677fx12){return handleError(_0x677fx10,_0x677fx12)})};exports[_0x944c[119]]= function(_0x677fxf,_0x677fx10){if(_0x677fxf[_0x944c[99]][_0x944c[26]]){delete _0x677fxf[_0x944c[99]][_0x944c[26]]};return DefaultReport[_0x944c[33]](_0x677fxf[_0x944c[27]][_0x944c[26]])[_0x944c[20]](function(_0x677fx14){if(!_0x677fx14){return _0x677fx10[_0x944c[25]](404)};var _0x677fx33=_[_0x944c[120]](_0x677fx14,_0x677fxf[_0x944c[99]]);return _0x677fx33[_0x944c[121]]()})[_0x944c[20]](function(_0x677fx14){return _0x677fx10[_0x944c[19]](200)[_0x944c[18]](_0x677fx14)})[_0x944c[17]](function(_0x677fx12){return handleError(_0x677fx10,_0x677fx12)})};exports[_0x944c[122]]= function(_0x677fxf,_0x677fx10){return DefaultReport[_0x944c[33]](_0x677fxf[_0x944c[27]][_0x944c[26]])[_0x944c[20]](function(_0x677fx14){if(!_0x677fx14){return _0x677fx10[_0x944c[25]](404)};return _0x677fx14[_0x944c[122]]()})[_0x944c[20]](function(){return _0x677fx10[_0x944c[25]](204)})[_0x944c[17]](function(_0x677fx12){return handleError(_0x677fx10,_0x677fx12)})};function handleError(_0x677fx10,_0x677fx12){return _0x677fx10[_0x944c[19]](500)[_0x944c[18]](_0x677fx12)}
\ No newline at end of file
+var _0x4d99=["\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","\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","\x6C\x6F\x67","\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","\x66\x6F\x75\x6E\x64\x20\x72\x65\x70\x6F\x72\x74","\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","\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","\x74\x72\x65\x65","\x70\x61\x72\x73\x65","\x66\x69\x6E\x64","\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"];_0x4d99[0];var _=require(_0x4d99[1]);var util=require(_0x4d99[2]);var DefaultReport=require(_0x4d99[4])[_0x4d99[3]];var ReportField=require(_0x4d99[4])[_0x4d99[5]];var Metric=require(_0x4d99[4])[_0x4d99[6]];var sequelize=require(_0x4d99[4])[_0x4d99[7]];var CustomReport=require(_0x4d99[4])[_0x4d99[8]];var ExtractedReport=require(_0x4d99[4])[_0x4d99[9]];var extractUtils=require(_0x4d99[10]);var reportBuildUtils=require(_0x4d99[11]);var Util=require(_0x4d99[12]);var moment=require(_0x4d99[13]);var cp=require(_0x4d99[14]);var sr=require(_0x4d99[15]);var ReportTree=require(_0x4d99[4])[_0x4d99[16]];exports[_0x4d99[17]]= function(_0xe645x10,_0xe645x11,_0xe645x12){return DefaultReport[_0x4d99[24]](Util[_0x4d99[23]](_0xe645x10[_0x4d99[22]]))[_0x4d99[21]](function(_0xe645x14){_0xe645x11[_0x4d99[20]](200)[_0x4d99[19]](_0xe645x14)})[_0x4d99[18]](function(_0xe645x13){return handleError(_0xe645x11,_0xe645x13)})};exports[_0x4d99[25]]= function(_0xe645x10,_0xe645x11){return DefaultReport[_0x4d99[36]]({method:[_0x4d99[35],{DefaultReportId:_0xe645x10[_0x4d99[28]][_0x4d99[27]]}]})[_0x4d99[34]](_0xe645x10[_0x4d99[28]][_0x4d99[27]],{attributes:[_0x4d99[29],_0x4d99[30],_0x4d99[31],_0x4d99[32],_0x4d99[33]]})[_0x4d99[21]](function(_0xe645x15){if(!_0xe645x15){return _0xe645x11[_0x4d99[26]](404)};return _0xe645x11[_0x4d99[19]](_0xe645x15)})[_0x4d99[18]](function(_0xe645x13){return handleError(_0xe645x11,_0xe645x13)})};exports[_0x4d99[37]]= function(_0xe645x10,_0xe645x11){return Promise[_0x4d99[42]]([])[_0x4d99[21]](getQuery(_0xe645x10,_0xe645x11))[_0x4d99[21]](function(_0xe645x16){if(_0xe645x16){switch(_0xe645x16){case _0x4d99[41]:_0xe645x16= _0x4d99[40];break;default:}};_0xe645x11[_0x4d99[20]](200)[_0x4d99[19]]({query:_0xe645x16})})[_0x4d99[18]](function(_0xe645x13){console[_0x4d99[39]](_0x4d99[38],_0xe645x13)})};function getQuery(_0xe645x10,_0xe645x11){var _0xe645x18;return function(){return DefaultReport[_0x4d99[36]](_0x4d99[58])[_0x4d99[34]](_0xe645x10[_0x4d99[28]][_0x4d99[27]])[_0x4d99[21]](function(_0xe645x15){console[_0x4d99[39]](_0x4d99[47]);if(!_0xe645x15){return _0xe645x11[_0x4d99[26]](404)};if(_0xe645x10[_0x4d99[22]][_0x4d99[48]]&& _0xe645x10[_0x4d99[22]][_0x4d99[48]]=== _0x4d99[49]){_0xe645x10[_0x4d99[22]][_0x4d99[50]]= moment()[_0x4d99[52]](_0x4d99[51]);_0xe645x10[_0x4d99[22]][_0x4d99[53]]= moment()[_0x4d99[52]](_0x4d99[51]);_0xe645x15[_0x4d99[54]][_0x4d99[33]]= _0xe645x15[_0x4d99[54]][_0x4d99[33]][_0x4d99[57]](_0x4d99[55],_0x4d99[56])};delete _0xe645x10[_0x4d99[22]][_0x4d99[48]];_0xe645x18= _0xe645x15[_0x4d99[54]];return _0xe645x18[_0x4d99[33]]})[_0x4d99[21]](reportBuildUtils[_0x4d99[46]](_0xe645x10[_0x4d99[45]]))[_0x4d99[21]](function(_0xe645x19){return [_0xe645x19,_0xe645x18]})[_0x4d99[44]](reportBuildUtils[_0x4d99[43]](_0xe645x10[_0x4d99[22]]))}}exports[_0x4d99[59]]= function(_0xe645x10,_0xe645x11){var _0xe645x1a;return Promise[_0x4d99[42]]([])[_0x4d99[21]](getQuery(_0xe645x10,_0xe645x11))[_0x4d99[21]](reportBuildUtils[_0x4d99[71]]())[_0x4d99[21]](function(_0xe645x1b){if(_0xe645x1b&& _[_0x4d99[60]](_0xe645x1b)){_0xe645x1a= _0xe645x1b[_0x4d99[61]];if(_0xe645x10[_0x4d99[22]][_0x4d99[62]]){_0xe645x1b= _(_0xe645x1b)[_0x4d99[66]](_0xe645x10[_0x4d99[22]][_0x4d99[65]]|| 0)[_0x4d99[64]](_0xe645x10[_0x4d99[22]][_0x4d99[62]])[_0x4d99[63]]()};_[_0x4d99[69]](_0xe645x1b,function(_0xe645x1c){_[_0x4d99[68]](_0xe645x1c,function(_0xe645x1d,_0xe645x1e){if(_0xe645x1d instanceof  Date){_0xe645x1c[_0xe645x1e]= moment(_0xe645x1d)[_0x4d99[52]](_0x4d99[67]).toString()}})});_0xe645x11[_0x4d99[20]](200)[_0x4d99[19]]({rows:_0xe645x1b,count:_0xe645x1a})}else {return handleError(_0xe645x11,{message:_0xe645x1b|| _0x4d99[70]})}})[_0x4d99[18]](function(_0xe645x13){console[_0x4d99[39]](_0xe645x13);return handleError(_0xe645x11,_0xe645x13)})};exports[_0x4d99[72]]= function(_0xe645x10,_0xe645x11){docExtract(_0xe645x10,_0xe645x11,_0x4d99[73])};exports[_0x4d99[74]]= function(_0xe645x10,_0xe645x11){docExtract(_0xe645x10,_0xe645x11,_0x4d99[75])};function docExtract(_0xe645x10,_0xe645x11,_0xe645x20){var _0xe645x15;DefaultReport[_0x4d99[36]](_0x4d99[58])[_0x4d99[34]](_0xe645x10[_0x4d99[28]][_0x4d99[27]])[_0x4d99[21]](function(_0xe645x18){if(!_0xe645x18){return _0xe645x11[_0x4d99[26]](404)};_0xe645x15= _0xe645x18;return ReportTree[_0x4d99[34]](1)})[_0x4d99[21]](function(_0xe645x24){_0xe645x24= JSON[_0x4d99[87]](_0xe645x24[_0x4d99[86]]);var _0xe645x25=_[_0x4d99[88]](_0xe645x24,{id:_0xe645x15[_0x4d99[32]]});var _0xe645x26=getReportPath(_0xe645x25,_0xe645x24,_0xe645x15[_0x4d99[31]]);if(_0xe645x10[_0x4d99[22]][_0x4d99[48]]&& _0xe645x10[_0x4d99[22]][_0x4d99[48]]=== _0x4d99[49]){_0xe645x10[_0x4d99[22]][_0x4d99[50]]= moment()[_0x4d99[52]](_0x4d99[51]);_0xe645x10[_0x4d99[22]][_0x4d99[53]]= moment()[_0x4d99[52]](_0x4d99[51]);_0xe645x15[_0x4d99[54]][_0x4d99[33]]= _0xe645x15[_0x4d99[54]][_0x4d99[33]][_0x4d99[57]](_0x4d99[55],_0x4d99[56])};delete _0xe645x10[_0x4d99[22]][_0x4d99[48]];return [_0xe645x15,ExtractedReport[_0x4d99[94]]({name:_0xe645x26,startDate:_0xe645x10[_0x4d99[22]][_0x4d99[50]]?_0xe645x10[_0x4d99[22]][_0x4d99[50]]+ (_0xe645x10[_0x4d99[22]][_0x4d99[89]]?_0x4d99[90]+ _0xe645x10[_0x4d99[22]][_0x4d99[89]]:_0x4d99[91]):null,endDate:_0xe645x10[_0x4d99[22]][_0x4d99[53]]?_0xe645x10[_0x4d99[22]][_0x4d99[53]]+ (_0xe645x10[_0x4d99[22]][_0x4d99[92]]?_0x4d99[90]+ _0xe645x10[_0x4d99[22]][_0x4d99[92]]:_0x4d99[93]):null,output:_0xe645x20,UserId:_0xe645x10[_0x4d99[45]][_0x4d99[27]]})]})[_0x4d99[44]](function(_0xe645x15,_0xe645x21){var _0xe645x22=cp[_0x4d99[77]](__dirname+ _0x4d99[76]);_0xe645x22[_0x4d99[80]](_0x4d99[83],function(_0xe645x23){console[_0x4d99[39]](_0x4d99[84],_0xe645x23);_0xe645x22[_0x4d99[85]]()})[_0x4d99[80]](_0x4d99[81],function(){console[_0x4d99[39]](_0x4d99[82])})[_0x4d99[80]](_0x4d99[78],function(_0xe645x13){console[_0x4d99[39]](_0x4d99[79],_0xe645x13)});_0xe645x22[_0x4d99[19]]({report:_0xe645x15,query:_0xe645x10[_0x4d99[22]],extractedId:_0xe645x21[_0x4d99[27]],user:_0xe645x10[_0x4d99[45]],type:_0xe645x20})})[_0x4d99[18]](function(_0xe645x13){console[_0x4d99[39]](_0xe645x13);return handleError(_0xe645x11,_0xe645x13)});return _0xe645x11[_0x4d99[26]](200)}function getReportPath(_0xe645x25,_0xe645x24,_0xe645x26){_0xe645x26= _0xe645x25[_0x4d99[95]]+ _0x4d99[96]+ _0xe645x26;if(_0xe645x25[_0x4d99[32]]=== _0x4d99[97]){return _0xe645x26}else {return getReportPath(_[_0x4d99[88]](_0xe645x24,{id:_0xe645x25[_0x4d99[32]]}),_0xe645x24,_0xe645x26)}}exports[_0x4d99[98]]= function(_0xe645x10,_0xe645x11){return DefaultReport[_0x4d99[34]](_0xe645x10[_0x4d99[28]][_0x4d99[27]],{include:[{all:true}]})[_0x4d99[21]](function(_0xe645x15){if(!_0xe645x15){return _0xe645x11[_0x4d99[26]](404)};return _0xe645x11[_0x4d99[19]](_0xe645x15)})[_0x4d99[18]](function(_0xe645x13){return handleError(_0xe645x11,_0xe645x13)})};exports[_0x4d99[99]]= function(_0xe645x10,_0xe645x11){var _0xe645x28;return sequelize[_0x4d99[104]](function(_0xe645x29){return DefaultReport[_0x4d99[36]]({method:[_0x4d99[35],{DefaultReportId:_0xe645x10[_0x4d99[28]][_0x4d99[27]]}]})[_0x4d99[34]](_0xe645x10[_0x4d99[28]][_0x4d99[27]])[_0x4d99[21]](function(_0xe645x15){if(!_0xe645x15){return _0xe645x11[_0x4d99[26]](404)};var _0xe645x2a=_0xe645x15[_0x4d99[54]];console[_0x4d99[39]](_0xe645x2a);delete _0xe645x2a[_0x4d99[27]];delete _0xe645x2a[_0x4d99[100]];delete _0xe645x2a[_0x4d99[101]];_0xe645x2a[_0x4d99[32]]= _0xe645x10[_0x4d99[102]][_0x4d99[32]];_0xe645x28= _[_0x4d99[103]](_0xe645x2a.Fields,_0x4d99[54]);return CustomReport[_0x4d99[94]](_0xe645x2a,{transaction:_0xe645x29})})[_0x4d99[21]](function(_0xe645x15){return [_0xe645x15,_0xe645x28]})[_0x4d99[44]](createCopyFields(_0xe645x29))})[_0x4d99[21]](function(){return _0xe645x11[_0x4d99[26]](201)})[_0x4d99[18]](function(_0xe645x13){console[_0x4d99[39]](_0xe645x13);return handleError(_0xe645x11,_0xe645x13)})};function createCopyFields(_0xe645x29){return function(_0xe645x15,_0xe645x2c){if(_0xe645x2c&& Array[_0x4d99[60]](_0xe645x2c)&& _0xe645x2c[_0x4d99[61]]){var _0xe645x2d=reportBuildUtils[_0x4d99[105]](_0xe645x15[_0x4d99[33]]);if(_0xe645x2d){var _0xe645x2e;return _0xe645x2d[_0x4d99[121]]()[_0x4d99[21]](function(_0xe645x2f){_0xe645x2e= _[_0x4d99[106]](_0xe645x2f);var _0xe645x30=[];var _0xe645x31=_[_0x4d99[108]](_0xe645x2c,_0x4d99[107]);_[_0x4d99[68]](_0xe645x31,function(_0xe645x32,_0xe645x1e){if(_0xe645x1e!== _0x4d99[109]&& _0xe645x1e!== _0x4d99[110]){_0xe645x32[0][_0x4d99[113]][_0x4d99[112]][_0x4d99[69]](function(_0xe645x33){_0xe645x33[_0x4d99[111]]= _0xe645x15[_0x4d99[27]]});_0xe645x32[0][_0x4d99[113]][_0x4d99[31]]+= _0x4d99[114]+ sr({length:5});_0xe645x30[_0x4d99[115]](Metric[_0x4d99[94]](_0xe645x32[0][_0x4d99[113]][_0x4d99[54]],{include:[{model:ReportField,as:_0x4d99[112]}],transaction:_0xe645x29}))}else {_0xe645x32[_0x4d99[69]](function(_0xe645x33){if(_[_0x4d99[117]](_0xe645x2e,_0xe645x33[_0x4d99[116]])|| _0xe645x33[_0x4d99[118]]){_0xe645x33[_0x4d99[111]]= _0xe645x15[_0x4d99[27]];_0xe645x30[_0x4d99[115]](ReportField[_0x4d99[94]](_0xe645x33,{transaction:_0xe645x29}))}else {throw  new sequelize.Error(_0x4d99[119]+ _0xe645x33[_0x4d99[116]]+ _0x4d99[120])}})}});return _0xe645x30})[_0x4d99[42]]()}else {throw  new sequelize.Error(_0x4d99[122])}}}}exports[_0x4d99[94]]= function(_0xe645x10,_0xe645x11){return DefaultReport[_0x4d99[94]](_0xe645x10[_0x4d99[102]])[_0x4d99[21]](function(_0xe645x15){return _0xe645x11[_0x4d99[20]](201)[_0x4d99[19]](_0xe645x15)})[_0x4d99[18]](function(_0xe645x13){return handleError(_0xe645x11,_0xe645x13)})};exports[_0x4d99[123]]= function(_0xe645x10,_0xe645x11){if(_0xe645x10[_0x4d99[102]][_0x4d99[27]]){delete _0xe645x10[_0x4d99[102]][_0x4d99[27]]};return DefaultReport[_0x4d99[34]](_0xe645x10[_0x4d99[28]][_0x4d99[27]])[_0x4d99[21]](function(_0xe645x15){if(!_0xe645x15){return _0xe645x11[_0x4d99[26]](404)};var _0xe645x34=_[_0x4d99[124]](_0xe645x15,_0xe645x10[_0x4d99[102]]);return _0xe645x34[_0x4d99[125]]()})[_0x4d99[21]](function(_0xe645x15){return _0xe645x11[_0x4d99[20]](200)[_0x4d99[19]](_0xe645x15)})[_0x4d99[18]](function(_0xe645x13){return handleError(_0xe645x11,_0xe645x13)})};exports[_0x4d99[126]]= function(_0xe645x10,_0xe645x11){return DefaultReport[_0x4d99[34]](_0xe645x10[_0x4d99[28]][_0x4d99[27]])[_0x4d99[21]](function(_0xe645x15){if(!_0xe645x15){return _0xe645x11[_0x4d99[26]](404)};return _0xe645x15[_0x4d99[126]]()})[_0x4d99[21]](function(){return _0xe645x11[_0x4d99[26]](204)})[_0x4d99[18]](function(_0xe645x13){return handleError(_0xe645x11,_0xe645x13)})};function handleError(_0xe645x11,_0xe645x13){return _0xe645x11[_0x4d99[20]](500)[_0x4d99[19]](_0xe645x13)}
\ No newline at end of file