Built motion from commit 137ed438a.|1.0.25
[motion.git] / server / api / fax_account / fax_account.controller.js
index c7c41e6..636ff8f 100644 (file)
@@ -1 +1 @@
-var _0x8814=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x61\x78\x52\x6F\x6F\x6D","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x46\x61\x78\x51\x75\x65\x75\x65","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\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","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x6D\x65\x73\x73\x61\x67\x65","\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2F\x63\x6F\x6E\x74\x65\x78\x74\x20\x63\x6F\x6D\x62\x69\x6E\x61\x74\x69\x6F\x6E\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x65\x78\x69\x73\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x64\x4D\x65\x73\x73\x61\x67\x65","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x52\x4F\x55\x54\x45","\x62\x6F\x64\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x73\x68\x6F\x77\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x61\x6D\x65","\x6F\x6E\x6C\x69\x6E\x65","\x70\x72\x69\x6F\x72\x69\x74\x79\x20\x41\x53\x43","\x6D\x65\x72\x67\x65","\x67\x65\x74\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x61\x75\x6C\x74","\x73\x63\x6F\x70\x65","\x63\x72\x65\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x6D\x61\x78","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x70\x70\x49\x64","\x75\x70\x64\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x73\x68\x6F\x77\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x46\x61\x78\x52\x6F\x6F\x6D\x73","\x63\x6F\x6E\x74\x61\x63\x74","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x74\x61\x67\x73","\x6C\x61\x73\x74\x45\x76\x65\x6E\x74","\x69\x73\x41\x72\x72\x61\x79","\x25","\x70\x75\x73\x68","\x24\x61\x6E\x64","\x77\x68\x65\x72\x65","\x69\x6E\x63\x6C\x75\x64\x65","\x65\x72\x72\x6F\x72","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64","\x55\x73\x65\x72\x49\x64","\x6D\x61\x70","\x71\x75\x65\x75\x65","\x46\x61\x78\x51\x75\x65\x75\x65\x49\x64","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x75\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x67\x65\x74\x46\x61\x78\x51\x75\x65\x75\x65\x73","\x72\x6F\x6C\x65","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x73\x61\x76\x65","\x64\x69\x73\x70\x49\x64","\x64\x65\x73\x74\x72\x6F\x79\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65"];_0x8814[0];var _=require(_0x8814[1]);var Util=require(_0x8814[2]);var sequelize=require(_0x8814[4])[_0x8814[3]];var FaxAccount=require(_0x8814[4])[_0x8814[5]];var FaxRoom=require(_0x8814[4])[_0x8814[6]];var FaxApplication=require(_0x8814[4])[_0x8814[7]];var FaxQueue=require(_0x8814[4])[_0x8814[8]];var FaxDisposition=require(_0x8814[4])[_0x8814[9]];var FaxMessage=require(_0x8814[4])[_0x8814[10]];var FaxAttachment=require(_0x8814[4])[_0x8814[11]];var User=require(_0x8814[4])[_0x8814[12]];var Interval=require(_0x8814[4])[_0x8814[13]];function handleError(_0x568exe,_0x568exf){_0x568exf= _0x568exf|| 500;return function(_0x568ex10){_0x568exe[_0x8814[15]](_0x568exf)[_0x8814[14]](_0x568ex10)}}function responseWithResult(_0x568exe,_0x568exf){_0x568exf= _0x568exf|| 200;return function(_0x568ex12){if(_0x568ex12){_0x568exe[_0x8814[15]](_0x568exf)[_0x8814[16]](_0x568ex12)}}}function responseWithoutResult(_0x568exe,_0x568exf){_0x568exf= _0x568exf|| 204;return function(){_0x568exe[_0x8814[17]](_0x568exf)}}function handleEntityNotFound(_0x568exe){return function(_0x568ex12){if(!_0x568ex12){_0x568exe[_0x8814[15]](404)[_0x8814[18]]();return null};return _0x568ex12}}function saveUpdates(_0x568ex16){return function(_0x568ex12){return _0x568ex12[_0x8814[20]](_0x568ex16)[_0x8814[19]](function(_0x568ex17){return _0x568ex17})}}function removeEntity(_0x568exe){return function(_0x568ex12){if(_0x568ex12){return _0x568ex12[_0x8814[21]]()[_0x8814[19]](function(){_0x568exe[_0x8814[15]](204)[_0x8814[18]]()})}}}exports[_0x8814[22]]= function(_0x568ex19,_0x568exe){return FaxAccount[_0x8814[26]](Util[_0x8814[25]](_0x568ex19[_0x8814[24]]))[_0x8814[19]](responseWithResult(_0x568exe))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[27]]= function(_0x568ex19,_0x568exe){return FaxAccount[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[28]])[_0x8814[19]](handleEntityNotFound(_0x568exe))[_0x8814[19]](responseWithResult(_0x568exe))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[31]]= function(_0x568ex19,_0x568exe){return sequelize[_0x8814[39]](function(_0x568ex1a){return FaxAccount[_0x8814[31]](_0x568ex19[_0x8814[38]],{transaction:_0x568ex1a})})[_0x8814[19]](responseWithoutResult(_0x568exe,201))[_0x8814[23]](sequelize.ValidationError,function(_0x568ex10){_0x568ex10[_0x8814[34]]= _0x8814[35];_0x568ex10[_0x8814[36]]= _0x8814[37];return _0x568exe[_0x8814[15]](500)[_0x8814[14]](_0x568ex10)})[_0x8814[23]](sequelize.UniqueConstraintError,function(_0x568ex10){return Util[_0x8814[33]][_0x8814[32]](_0x568exe,_0x568ex10)})[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[40]]= function(_0x568ex19,_0x568exe){if(_0x568ex19[_0x8814[38]][_0x8814[28]]){delete _0x568ex19[_0x8814[38]][_0x8814[28]]};return sequelize[_0x8814[39]](function(_0x568ex1a){return FaxAccount[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[28]])[_0x8814[19]](handleEntityNotFound(_0x568exe))[_0x8814[19]](function(_0x568ex1b){return _0x568ex1b[_0x8814[20]](_0x568ex19[_0x8814[38]],{transaction:_0x568ex1a})})})[_0x8814[19]](responseWithoutResult(_0x568exe))[_0x8814[23]](sequelize.ValidationError,function(_0x568ex10){_0x568ex10[_0x8814[34]]= _0x8814[35];_0x568ex10[_0x8814[36]]= _0x8814[37];return _0x568exe[_0x8814[15]](500)[_0x8814[14]](_0x568ex10)})[_0x8814[23]](sequelize.UniqueConstraintError,function(_0x568ex10){return Util[_0x8814[33]][_0x8814[32]](_0x568exe,_0x568ex10)})[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[21]]= function(_0x568ex19,_0x568exe){return sequelize[_0x8814[39]](function(_0x568ex1a){return FaxAccount[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[28]])[_0x8814[19]](handleEntityNotFound(_0x568exe))[_0x8814[19]](function(_0x568ex1b){return _0x568ex1b[_0x8814[21]]()})})[_0x8814[19]](function(){_0x568exe[_0x8814[15]](204)[_0x8814[18]]()})[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[41]]= function(_0x568ex19,_0x568exe){return FaxAccount[_0x8814[21]]({where:{id:_0x568ex19[_0x8814[24]][_0x8814[42]]},individualHooks:true})[_0x8814[19]](responseWithoutResult(_0x568exe))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[43]]= function(_0x568ex19,_0x568exe,_0x568ex1c){return FaxAccount[_0x8814[51]](_0x8814[50])[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[28]])[_0x8814[19]](handleEntityNotFound(_0x568exe))[_0x8814[19]](function(_0x568ex1b){return _0x568ex1b[_0x8814[49]](_[_0x8814[48]](Util[_0x8814[25]](_0x568ex19[_0x8814[24]]),{include:[{model:FaxQueue,attributes:[_0x8814[28],_0x8814[45]]},{model:User,attributes:[_0x8814[28],_0x8814[45],_0x8814[46]]},{model:Interval,attributes:[_0x8814[28],_0x8814[45]]}],order:_0x8814[47]}))})[_0x8814[19]](function(_0x568ex1d){return _0x568exe[_0x8814[14]]({count:_0x568ex1d[_0x8814[44]],rows:_0x568ex1d})})[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[52]]= function(_0x568ex19,_0x568exe,_0x568ex1c){return FaxApplication[_0x8814[55]](_0x8814[53],{where:{FaxAccountId:_0x568ex19[_0x8814[29]][_0x8814[28]]}})[_0x8814[19]](function(_0x568ex1e){_0x568ex19[_0x8814[38]][_0x8814[53]]= _0x568ex1e?++_0x568ex1e:1;_0x568ex19[_0x8814[38]][_0x8814[54]]= _0x568ex19[_0x8814[29]][_0x8814[28]];return FaxApplication[_0x8814[31]](_0x568ex19[_0x8814[38]])})[_0x8814[19]](responseWithResult(_0x568exe,201))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[56]]= function(_0x568ex19,_0x568exe){return FaxApplication[_0x8814[21]]({where:{id:_0x568ex19[_0x8814[24]][_0x8814[42]]},individualHooks:true})[_0x8814[19]](responseWithoutResult(_0x568exe))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[57]]= function(_0x568ex19,_0x568exe,_0x568ex1c){return FaxApplication[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[58]])[_0x8814[19]](handleEntityNotFound(_0x568exe))[_0x8814[19]](removeEntity(_0x568exe))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[59]]= function(_0x568ex19,_0x568exe){var _0x568ex1f=0;var _0x568ex20=_0x568ex19[_0x8814[38]];_0x568ex20[_0x8814[62]](function(_0x568ex21){delete _0x568ex21[_0x8814[28]];delete _0x568ex21[_0x8814[60]];delete _0x568ex21[_0x8814[61]];_0x568ex21[_0x8814[53]]=  ++_0x568ex1f});return sequelize[_0x8814[39]](function(_0x568ex1a){return FaxApplication[_0x8814[21]]({where:{FaxAccountId:_0x568ex19[_0x8814[29]][_0x8814[28]]},individualHooks:true,transaction:_0x568ex1a})[_0x8814[19]](function(_0x568ex22){return FaxApplication[_0x8814[63]](_0x568ex20,{individualHooks:true,transaction:_0x568ex1a})})})[_0x8814[19]](function(_0x568ex1d){return _0x568exe[_0x8814[15]](200)[_0x8814[14]]({count:_0x568ex1d[_0x8814[44]],rows:_0x568ex1d})})[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[64]]= function(_0x568ex19,_0x568exe){if(_0x568ex19[_0x8814[38]][_0x8814[28]]){delete _0x568ex19[_0x8814[38]][_0x8814[28]]};return FaxApplication[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[58]])[_0x8814[19]](handleEntityNotFound(_0x568exe))[_0x8814[19]](saveUpdates(_0x568ex19[_0x8814[38]]))[_0x8814[19]](responseWithResult(_0x568exe))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[65]]= function(_0x568ex19,_0x568exe){return FaxApplication[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[58]],{include:[{all:true}]})[_0x8814[19]](handleEntityNotFound(_0x568exe))[_0x8814[19]](responseWithResult(_0x568exe))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[66]]= function(_0x568ex19,_0x568exe,_0x568ex1c){var _0x568ex23={where:{FaxAccountId:_0x568ex19[_0x8814[29]][_0x8814[28]],$and:[]},include:[],attributes:[_0x8814[28],_0x8814[67],_0x8814[68],_0x8814[69],_0x8814[70],_0x8814[61]]};if(_0x568ex19[_0x8814[24]]){if(_0x568ex19[_0x8814[24]][_0x8814[69]]){if(_[_0x8814[71]](_0x568ex19[_0x8814[24]][_0x8814[69]])){for(var _0x568ex24=0;_0x568ex24< _0x568ex19[_0x8814[24]][_0x8814[69]][_0x8814[44]];_0x568ex24++){_0x568ex23[_0x8814[75]][_0x8814[74]][_0x8814[73]]({tags:{$like:_0x8814[72]+ _0x568ex19[_0x8814[24]][_0x8814[69]][_0x568ex24]+ _0x8814[72]}})}}else {_0x568ex23[_0x8814[75]][_0x8814[74]][_0x8814[73]]({tags:{$like:_0x8814[72]+ _0x568ex19[_0x8814[24]][_0x8814[69]]+ _0x8814[72]}})};delete _0x568ex19[_0x8814[24]][_0x8814[69]]};_[_0x8814[48]](_0x568ex23[_0x8814[75]],_0x568ex19[_0x8814[24]])};switch(_0x568ex19[_0x8814[85]][_0x8814[88]]){case _0x8814[78]:_0x568ex23[_0x8814[76]][_0x8814[73]]({model:User,attributes:[_0x8814[28]]});var _0x568ex25;var _0x568ex26;var _0x568ex27;return User[_0x8814[30]](_0x568ex19[_0x8814[85]][_0x8814[28]])[_0x8814[19]](function(_0x568ex2b){if(_0x568ex2b){return _0x568ex2b[_0x8814[87]]()}else {return []}})[_0x8814[19]](function(_0x568ex2a){_0x568ex26= _[_0x8814[81]](_0x568ex2a,_0x8814[28]);return FaxAccount[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[28]])})[_0x8814[19]](function(_0x568ex29){return _0x568ex29[_0x8814[49]]({where:{$or:[{app:_0x8814[82]},{app:_0x8814[78]}]}})})[_0x8814[19]](function(_0x568ex20){_0x568ex25= _[_0x8814[81]](_[_0x8814[79]](_0x568ex20,{"\x61\x70\x70":_0x8814[78]}),_0x8814[80]);_0x568ex27= _[_0x8814[81]](_[_0x8814[79]](_0x568ex20,{"\x61\x70\x70":_0x8814[82]}),_0x8814[83]);if(_[_0x8814[84]](_0x568ex26,_0x568ex27)[_0x8814[44]]|| _[_0x8814[84]](_0x568ex25,[_0x568ex19[_0x8814[85]][_0x8814[28]]])[_0x8814[44]]){return FaxRoom[_0x8814[86]](_0x568ex23)[_0x8814[19]](function(_0x568ex28){return _0x568exe[_0x8814[15]](200)[_0x8814[14]](_0x568ex28)})[_0x8814[23]](function(_0x568ex10){console[_0x8814[77]](_0x568ex10);return handleError(_0x568exe,_0x568ex10)})}else {return _0x568exe[_0x8814[15]](200)[_0x8814[14]]([])}})[_0x8814[23]](function(_0x568ex10){console[_0x8814[77]](_0x568ex10)});default:return FaxRoom[_0x8814[86]](_0x568ex23)[_0x8814[19]](function(_0x568ex28){return _0x568exe[_0x8814[15]](200)[_0x8814[14]](_0x568ex28)})[_0x8814[23]](handleError(_0x568exe))}};exports[_0x8814[89]]= function(_0x568ex19,_0x568exe,_0x568ex1c){return FaxAccount[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[28]])[_0x8814[19]](handleEntityNotFound(_0x568exe))[_0x8814[19]](function(_0x568ex1b){return _0x568ex1b[_0x8814[90]]()})[_0x8814[19]](function(_0x568ex2c){return _0x568exe[_0x8814[15]](200)[_0x8814[14]]({rows:_0x568ex2c,count:_0x568ex2c[_0x8814[44]]})})[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[91]]= function(_0x568ex19,_0x568exe,_0x568ex1c){_0x568ex19[_0x8814[38]][_0x8814[54]]= _0x568ex19[_0x8814[29]][_0x8814[28]];return FaxDisposition[_0x8814[31]](_0x568ex19[_0x8814[38]])[_0x8814[19]](responseWithResult(_0x568exe,201))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[92]]= function(_0x568ex19,_0x568exe){if(_0x568ex19[_0x8814[38]][_0x8814[28]]){delete _0x568ex19[_0x8814[38]][_0x8814[28]]};return FaxDisposition[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[94]])[_0x8814[19]](handleEntityNotFound(_0x568exe))[_0x8814[19]](function(_0x568ex2d){var _0x568ex17=_[_0x8814[48]](_0x568ex2d,_0x568ex19[_0x8814[38]]);return _0x568ex17[_0x8814[93]]()})[_0x8814[19]](responseWithResult(_0x568exe,200))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[95]]= function(_0x568ex19,_0x568exe,_0x568ex1c){return FaxDisposition[_0x8814[30]](_0x568ex19[_0x8814[29]][_0x8814[94]])[_0x8814[19]](handleEntityNotFound(_0x568exe))[_0x8814[19]](function(_0x568ex2e){return _0x568ex2e[_0x8814[21]]()})[_0x8814[19]](responseWithoutResult(_0x568exe,204))[_0x8814[23]](handleError(_0x568exe))};exports[_0x8814[96]]= function(_0x568ex19,_0x568exe,_0x568ex1c){_0x568ex19[_0x8814[38]][_0x8814[80]]= _0x568ex19[_0x8814[85]][_0x8814[28]];return FaxMessage[_0x8814[31]](_0x568ex19[_0x8814[38]],{include:[{model:FaxAttachment}],user:_0x568ex19[_0x8814[85]]})[_0x8814[19]](responseWithResult(_0x568exe,201))[_0x8814[23]](handleError(_0x568exe))}
\ No newline at end of file
+var _0xe870=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\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","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x61\x78\x52\x6F\x6F\x6D","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x46\x61\x78\x51\x75\x65\x75\x65","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x73\x74\x61\x63\x6B","\x65\x72\x72\x6F\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\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","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x6D\x65\x73\x73\x61\x67\x65","\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2F\x63\x6F\x6E\x74\x65\x78\x74\x20\x63\x6F\x6D\x62\x69\x6E\x61\x74\x69\x6F\x6E\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x65\x78\x69\x73\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x64\x4D\x65\x73\x73\x61\x67\x65","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x52\x4F\x55\x54\x45","\x62\x6F\x64\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x73\x68\x6F\x77\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x61\x6D\x65","\x6F\x6E\x6C\x69\x6E\x65","\x70\x72\x69\x6F\x72\x69\x74\x79\x20\x41\x53\x43","\x6D\x65\x72\x67\x65","\x67\x65\x74\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x61\x75\x6C\x74","\x73\x63\x6F\x70\x65","\x63\x72\x65\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x6D\x61\x78","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x70\x70\x49\x64","\x75\x70\x64\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x73\x68\x6F\x77\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x46\x61\x78\x52\x6F\x6F\x6D\x73","\x63\x6F\x6E\x74\x61\x63\x74","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x74\x61\x67\x73","\x6C\x61\x73\x74\x45\x76\x65\x6E\x74","\x69\x73\x41\x72\x72\x61\x79","\x25","\x70\x75\x73\x68","\x24\x61\x6E\x64","\x77\x68\x65\x72\x65","\x69\x6E\x63\x6C\x75\x64\x65","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64","\x55\x73\x65\x72\x49\x64","\x6D\x61\x70","\x71\x75\x65\x75\x65","\x46\x61\x78\x51\x75\x65\x75\x65\x49\x64","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x75\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x67\x65\x74\x46\x61\x78\x51\x75\x65\x75\x65\x73","\x72\x6F\x6C\x65","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x73\x61\x76\x65","\x64\x69\x73\x70\x49\x64","\x64\x65\x73\x74\x72\x6F\x79\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65","\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x41\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x73","\x61\x70\x70"];_0xe870[0];var _=require(_0xe870[1]);var Util=require(_0xe870[2]);var logger=require(_0xe870[4])(_0xe870[3]);var sequelize=require(_0xe870[6])[_0xe870[5]];var FaxAccount=require(_0xe870[6])[_0xe870[7]];var FaxRoom=require(_0xe870[6])[_0xe870[8]];var FaxApplication=require(_0xe870[6])[_0xe870[9]];var FaxQueue=require(_0xe870[6])[_0xe870[10]];var FaxDisposition=require(_0xe870[6])[_0xe870[11]];var FaxMessage=require(_0xe870[6])[_0xe870[12]];var FaxAttachment=require(_0xe870[6])[_0xe870[13]];var User=require(_0xe870[6])[_0xe870[14]];var Interval=require(_0xe870[6])[_0xe870[15]];function handleError(_0x998axf,_0x998ax10){_0x998ax10= _0x998ax10|| 500;return function(_0x998ax11){logger[_0xe870[17]](_0x998ax11[_0xe870[16]]);_0x998axf[_0xe870[19]](_0x998ax10)[_0xe870[18]](_0x998ax11)}}function responseWithResult(_0x998axf,_0x998ax10){_0x998ax10= _0x998ax10|| 200;return function(_0x998ax13){if(_0x998ax13){_0x998axf[_0xe870[19]](_0x998ax10)[_0xe870[20]](_0x998ax13)}}}function responseWithoutResult(_0x998axf,_0x998ax10){_0x998ax10= _0x998ax10|| 204;return function(){_0x998axf[_0xe870[21]](_0x998ax10)}}function handleEntityNotFound(_0x998axf){return function(_0x998ax13){if(!_0x998ax13){_0x998axf[_0xe870[19]](404)[_0xe870[22]]();return null};return _0x998ax13}}function saveUpdates(_0x998ax17){return function(_0x998ax13){return _0x998ax13[_0xe870[24]](_0x998ax17)[_0xe870[23]](function(_0x998ax18){return _0x998ax18})}}function removeEntity(_0x998axf){return function(_0x998ax13){if(_0x998ax13){return _0x998ax13[_0xe870[25]]()[_0xe870[23]](function(){_0x998axf[_0xe870[19]](204)[_0xe870[22]]()})}}}exports[_0xe870[26]]= function(_0x998ax1a,_0x998axf){return FaxAccount[_0xe870[30]](Util[_0xe870[29]](_0x998ax1a[_0xe870[28]]))[_0xe870[23]](responseWithResult(_0x998axf))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[31]]= function(_0x998ax1a,_0x998axf){return FaxAccount[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[32]])[_0xe870[23]](handleEntityNotFound(_0x998axf))[_0xe870[23]](responseWithResult(_0x998axf))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[35]]= function(_0x998ax1a,_0x998axf){return sequelize[_0xe870[43]](function(_0x998ax1b){return FaxAccount[_0xe870[35]](_0x998ax1a[_0xe870[42]],{transaction:_0x998ax1b})})[_0xe870[23]](responseWithoutResult(_0x998axf,201))[_0xe870[27]](sequelize.ValidationError,function(_0x998ax11){_0x998ax11[_0xe870[38]]= _0xe870[39];_0x998ax11[_0xe870[40]]= _0xe870[41];return _0x998axf[_0xe870[19]](500)[_0xe870[18]](_0x998ax11)})[_0xe870[27]](sequelize.UniqueConstraintError,function(_0x998ax11){return Util[_0xe870[37]][_0xe870[36]](_0x998axf,_0x998ax11)})[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[44]]= function(_0x998ax1a,_0x998axf){if(_0x998ax1a[_0xe870[42]][_0xe870[32]]){delete _0x998ax1a[_0xe870[42]][_0xe870[32]]};return sequelize[_0xe870[43]](function(_0x998ax1b){return FaxAccount[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[32]])[_0xe870[23]](handleEntityNotFound(_0x998axf))[_0xe870[23]](function(_0x998ax1c){return _0x998ax1c[_0xe870[24]](_0x998ax1a[_0xe870[42]],{transaction:_0x998ax1b})})})[_0xe870[23]](responseWithoutResult(_0x998axf))[_0xe870[27]](sequelize.ValidationError,function(_0x998ax11){_0x998ax11[_0xe870[38]]= _0xe870[39];_0x998ax11[_0xe870[40]]= _0xe870[41];return _0x998axf[_0xe870[19]](500)[_0xe870[18]](_0x998ax11)})[_0xe870[27]](sequelize.UniqueConstraintError,function(_0x998ax11){return Util[_0xe870[37]][_0xe870[36]](_0x998axf,_0x998ax11)})[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[25]]= function(_0x998ax1a,_0x998axf){return sequelize[_0xe870[43]](function(_0x998ax1b){return FaxAccount[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[32]])[_0xe870[23]](handleEntityNotFound(_0x998axf))[_0xe870[23]](function(_0x998ax1c){return _0x998ax1c[_0xe870[25]]()})})[_0xe870[23]](function(){_0x998axf[_0xe870[19]](204)[_0xe870[22]]()})[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[45]]= function(_0x998ax1a,_0x998axf){return FaxAccount[_0xe870[25]]({where:{id:_0x998ax1a[_0xe870[28]][_0xe870[46]]},individualHooks:true})[_0xe870[23]](responseWithoutResult(_0x998axf))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[47]]= function(_0x998ax1a,_0x998axf,_0x998ax1d){return FaxAccount[_0xe870[55]](_0xe870[54])[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[32]])[_0xe870[23]](handleEntityNotFound(_0x998axf))[_0xe870[23]](function(_0x998ax1c){return _0x998ax1c[_0xe870[53]](_[_0xe870[52]](Util[_0xe870[29]](_0x998ax1a[_0xe870[28]]),{include:[{model:FaxQueue,attributes:[_0xe870[32],_0xe870[49]]},{model:User,attributes:[_0xe870[32],_0xe870[49],_0xe870[50]]},{model:Interval,attributes:[_0xe870[32],_0xe870[49]]}],order:_0xe870[51]}))})[_0xe870[23]](function(_0x998ax1e){return _0x998axf[_0xe870[18]]({count:_0x998ax1e[_0xe870[48]],rows:_0x998ax1e})})[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[56]]= function(_0x998ax1a,_0x998axf,_0x998ax1d){return FaxApplication[_0xe870[59]](_0xe870[57],{where:{FaxAccountId:_0x998ax1a[_0xe870[33]][_0xe870[32]]}})[_0xe870[23]](function(_0x998ax1f){_0x998ax1a[_0xe870[42]][_0xe870[57]]= _0x998ax1f?++_0x998ax1f:1;_0x998ax1a[_0xe870[42]][_0xe870[58]]= _0x998ax1a[_0xe870[33]][_0xe870[32]];return FaxApplication[_0xe870[35]](_0x998ax1a[_0xe870[42]])})[_0xe870[23]](responseWithResult(_0x998axf,201))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[60]]= function(_0x998ax1a,_0x998axf){return FaxApplication[_0xe870[25]]({where:{id:_0x998ax1a[_0xe870[28]][_0xe870[46]]},individualHooks:true})[_0xe870[23]](responseWithoutResult(_0x998axf))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[61]]= function(_0x998ax1a,_0x998axf,_0x998ax1d){return FaxApplication[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[62]])[_0xe870[23]](handleEntityNotFound(_0x998axf))[_0xe870[23]](removeEntity(_0x998axf))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[63]]= function(_0x998ax1a,_0x998axf){var _0x998ax20=0;var _0x998ax21=_0x998ax1a[_0xe870[42]];_0x998ax21[_0xe870[66]](function(_0x998ax22){delete _0x998ax22[_0xe870[32]];delete _0x998ax22[_0xe870[64]];delete _0x998ax22[_0xe870[65]];_0x998ax22[_0xe870[57]]=  ++_0x998ax20});return sequelize[_0xe870[43]](function(_0x998ax1b){return FaxApplication[_0xe870[25]]({where:{FaxAccountId:_0x998ax1a[_0xe870[33]][_0xe870[32]]},individualHooks:true,transaction:_0x998ax1b})[_0xe870[23]](function(_0x998ax23){return FaxApplication[_0xe870[67]](_0x998ax21,{individualHooks:true,transaction:_0x998ax1b})})})[_0xe870[23]](function(_0x998ax1e){return _0x998axf[_0xe870[19]](200)[_0xe870[18]]({count:_0x998ax1e[_0xe870[48]],rows:_0x998ax1e})})[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[68]]= function(_0x998ax1a,_0x998axf){if(_0x998ax1a[_0xe870[42]][_0xe870[32]]){delete _0x998ax1a[_0xe870[42]][_0xe870[32]]};return FaxApplication[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[62]])[_0xe870[23]](handleEntityNotFound(_0x998axf))[_0xe870[23]](saveUpdates(_0x998ax1a[_0xe870[42]]))[_0xe870[23]](responseWithResult(_0x998axf))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[69]]= function(_0x998ax1a,_0x998axf){return FaxApplication[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[62]],{include:[{all:true}]})[_0xe870[23]](handleEntityNotFound(_0x998axf))[_0xe870[23]](responseWithResult(_0x998axf))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[70]]= function(_0x998ax1a,_0x998axf,_0x998ax1d){var _0x998ax24={where:{FaxAccountId:_0x998ax1a[_0xe870[33]][_0xe870[32]],$and:[]},include:[],attributes:[_0xe870[32],_0xe870[71],_0xe870[72],_0xe870[73],_0xe870[74],_0xe870[64],_0xe870[65]]};if(_0x998ax1a[_0xe870[28]]){if(_0x998ax1a[_0xe870[28]][_0xe870[73]]){if(_[_0xe870[75]](_0x998ax1a[_0xe870[28]][_0xe870[73]])){for(var _0x998ax25=0;_0x998ax25< _0x998ax1a[_0xe870[28]][_0xe870[73]][_0xe870[48]];_0x998ax25++){_0x998ax24[_0xe870[79]][_0xe870[78]][_0xe870[77]]({tags:{$like:_0xe870[76]+ _0x998ax1a[_0xe870[28]][_0xe870[73]][_0x998ax25]+ _0xe870[76]}})}}else {_0x998ax24[_0xe870[79]][_0xe870[78]][_0xe870[77]]({tags:{$like:_0xe870[76]+ _0x998ax1a[_0xe870[28]][_0xe870[73]]+ _0xe870[76]}})};delete _0x998ax1a[_0xe870[28]][_0xe870[73]]};_[_0xe870[52]](_0x998ax24[_0xe870[79]],_0x998ax1a[_0xe870[28]])};switch(_0x998ax1a[_0xe870[88]][_0xe870[91]]){case _0xe870[81]:_0x998ax24[_0xe870[80]][_0xe870[77]]({model:User,attributes:[_0xe870[32]]});var _0x998ax26;var _0x998ax27;var _0x998ax28;return User[_0xe870[34]](_0x998ax1a[_0xe870[88]][_0xe870[32]])[_0xe870[23]](function(_0x998ax2c){if(_0x998ax2c){return _0x998ax2c[_0xe870[90]]()}else {return []}})[_0xe870[23]](function(_0x998ax2b){_0x998ax27= _[_0xe870[84]](_0x998ax2b,_0xe870[32]);return FaxAccount[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[32]])})[_0xe870[23]](function(_0x998ax29){if(!_0x998ax29){return _0x998axf[_0xe870[21]](404)};return _0x998ax29[_0xe870[53]]({where:{$or:[{app:_0xe870[85]},{app:_0xe870[81]}]}})[_0xe870[23]](function(_0x998ax21){_0x998ax26= _[_0xe870[84]](_[_0xe870[82]](_0x998ax21,{"\x61\x70\x70":_0xe870[81]}),_0xe870[83]);_0x998ax28= _[_0xe870[84]](_[_0xe870[82]](_0x998ax21,{"\x61\x70\x70":_0xe870[85]}),_0xe870[86]);if(_[_0xe870[87]](_0x998ax27,_0x998ax28)[_0xe870[48]]|| _[_0xe870[87]](_0x998ax26,[_0x998ax1a[_0xe870[88]][_0xe870[32]]])[_0xe870[48]]){return FaxRoom[_0xe870[89]](_0x998ax24)[_0xe870[23]](function(_0x998ax2a){return _0x998axf[_0xe870[19]](200)[_0xe870[18]](_0x998ax2a)})[_0xe870[27]](function(_0x998ax11){return handleError(_0x998axf,_0x998ax11)})}else {return _0x998axf[_0xe870[19]](200)[_0xe870[18]]([])}})})[_0xe870[27]](handleError(_0x998axf));default:return FaxRoom[_0xe870[89]](_0x998ax24)[_0xe870[23]](function(_0x998ax2a){return _0x998axf[_0xe870[19]](200)[_0xe870[18]](_0x998ax2a)})[_0xe870[27]](handleError(_0x998axf))}};exports[_0xe870[92]]= function(_0x998ax1a,_0x998axf,_0x998ax1d){return FaxAccount[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[32]])[_0xe870[23]](handleEntityNotFound(_0x998axf))[_0xe870[23]](function(_0x998ax1c){return _0x998ax1c[_0xe870[93]]()})[_0xe870[23]](function(_0x998ax2d){return _0x998axf[_0xe870[19]](200)[_0xe870[18]]({rows:_0x998ax2d,count:_0x998ax2d[_0xe870[48]]})})[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[94]]= function(_0x998ax1a,_0x998axf,_0x998ax1d){_0x998ax1a[_0xe870[42]][_0xe870[58]]= _0x998ax1a[_0xe870[33]][_0xe870[32]];return FaxDisposition[_0xe870[35]](_0x998ax1a[_0xe870[42]])[_0xe870[23]](responseWithResult(_0x998axf,201))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[95]]= function(_0x998ax1a,_0x998axf){if(_0x998ax1a[_0xe870[42]][_0xe870[32]]){delete _0x998ax1a[_0xe870[42]][_0xe870[32]]};return FaxDisposition[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[97]])[_0xe870[23]](handleEntityNotFound(_0x998axf))[_0xe870[23]](function(_0x998ax2e){var _0x998ax18=_[_0xe870[52]](_0x998ax2e,_0x998ax1a[_0xe870[42]]);return _0x998ax18[_0xe870[96]]()})[_0xe870[23]](responseWithResult(_0x998axf,200))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[98]]= function(_0x998ax1a,_0x998axf,_0x998ax1d){return FaxDisposition[_0xe870[34]](_0x998ax1a[_0xe870[33]][_0xe870[97]])[_0xe870[23]](handleEntityNotFound(_0x998axf))[_0xe870[23]](function(_0x998ax2f){return _0x998ax2f[_0xe870[25]]()})[_0xe870[23]](responseWithoutResult(_0x998axf,204))[_0xe870[27]](handleError(_0x998axf))};exports[_0xe870[99]]= function(_0x998ax1a,_0x998axf,_0x998ax1d){_0x998ax1a[_0xe870[42]][_0xe870[83]]= _0x998ax1a[_0xe870[88]][_0xe870[32]];return FaxMessage[_0xe870[35]](_0x998ax1a[_0xe870[42]],{include:[{model:FaxAttachment}],user:_0x998ax1a[_0xe870[88]]})[_0xe870[23]](function(_0x998ax30){if(_0x998ax30){_0x998ax1a[_0xe870[103]][_0xe870[102]][_0xe870[101]][_0xe870[18]]({message:_0xe870[100],doc:_0x998ax30,options:{user:_0x998ax1a[_0xe870[88]]}});return _0x998ax30}})[_0xe870[23]](responseWithResult(_0x998axf,201))[_0xe870[27]](handleError(_0x998axf))}
\ No newline at end of file