Built motion from commit d1eab355.|2.6.28
[motion2.git] / server / api / faxQueueReport / faxQueueReport.controller.js
index 1eccf16..8502d02 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xf960=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','set','apply','update','then','destroy','error','stack','name','send','map','FaxQueueReport','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','catch','show','rawAttributes','length','options','find','create','body','params','describe','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs'];(function(_0x2ce709,_0x41ab1e){var _0x908e80=function(_0x1a6675){while(--_0x1a6675){_0x2ce709['push'](_0x2ce709['shift']());}};_0x908e80(++_0x41ab1e);}(_0xf960,0x7e));var _0x0f96=function(_0x1ae4a9,_0x4c0ed9){_0x1ae4a9=_0x1ae4a9-0x0;var _0x54d0b0=_0xf960[_0x1ae4a9];return _0x54d0b0;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x0f96('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0f96('0x1'));var rp=require('request-promise');var moment=require(_0x0f96('0x2'));var BPromise=require(_0x0f96('0x3'));var Mustache=require(_0x0f96('0x4'));var util=require(_0x0f96('0x5'));var path=require(_0x0f96('0x6'));var sox=require(_0x0f96('0x7'));var csv=require(_0x0f96('0x8'));var ejs=require(_0x0f96('0x9'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x0f96('0xa'));var deskjs=require(_0x0f96('0xb'));var toCsv=require('to-csv');var querystring=require(_0x0f96('0xc'));var Papa=require(_0x0f96('0xd'));var Redis=require(_0x0f96('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x0f96('0xf'));var as=require(_0x0f96('0x10'));var hardwareService=require(_0x0f96('0x11'));var logger=require(_0x0f96('0x12'))('api');var utils=require(_0x0f96('0x13'));var config=require(_0x0f96('0x14'));var licenseUtil=require(_0x0f96('0x15'));var db=require(_0x0f96('0x16'))['db'];function respondWithStatusCode(_0x4d7d5f,_0x56226a){_0x56226a=_0x56226a||0xcc;return function(_0x1b92c1){if(_0x1b92c1){return _0x4d7d5f[_0x0f96('0x17')](_0x56226a);}return _0x4d7d5f[_0x0f96('0x18')](_0x56226a)[_0x0f96('0x19')]();};}function respondWithResult(_0x46e9eb,_0x584b24){_0x584b24=_0x584b24||0xc8;return function(_0x598862){if(_0x598862){return _0x46e9eb[_0x0f96('0x18')](_0x584b24)[_0x0f96('0x1a')](_0x598862);}};}function respondWithFilteredResult(_0x2aff9f,_0x45d0c2){return function(_0x20dacf){if(_0x20dacf){var _0x1669cb=_0x20dacf[_0x0f96('0x1b')],_0x166963=_0x45d0c2[_0x0f96('0x1c')],_0xb27f8b=_0x45d0c2[_0x0f96('0x1c')]+_0x45d0c2['limit'],_0x28bc38;if(_0xb27f8b>=_0x1669cb){_0xb27f8b=_0x1669cb;_0x28bc38=0xc8;}else{_0x28bc38=0xce;}_0x2aff9f['status'](_0x28bc38);return _0x2aff9f[_0x0f96('0x1d')]('Content-Range',_0x166963+'-'+_0xb27f8b+'/'+_0x1669cb)[_0x0f96('0x1a')](_0x20dacf);}return null;};}function patchUpdates(_0x25219c){return function(_0x4ce889){try{jsonpatch[_0x0f96('0x1e')](_0x4ce889,_0x25219c,!![]);}catch(_0x169818){return BPromise['reject'](_0x169818);}return _0x4ce889['save']();};}function saveUpdates(_0x5a284d,_0x33bcea){return function(_0x4be76b){if(_0x4be76b){return _0x4be76b[_0x0f96('0x1f')](_0x5a284d)[_0x0f96('0x20')](function(_0x26279e){return _0x26279e;});}return null;};}function removeEntity(_0x48dbf6,_0x4a7af3){return function(_0x245d11){if(_0x245d11){return _0x245d11[_0x0f96('0x21')]()[_0x0f96('0x20')](function(){_0x48dbf6[_0x0f96('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0xd91cd7,_0x42dba7){return function(_0x2fca2f){if(!_0x2fca2f){_0xd91cd7[_0x0f96('0x17')](0x194);}return _0x2fca2f;};}function handleError(_0x562913,_0x404366){_0x404366=_0x404366||0x1f4;return function(_0x5187e4){logger[_0x0f96('0x22')](_0x5187e4[_0x0f96('0x23')]);if(_0x5187e4[_0x0f96('0x24')]){delete _0x5187e4[_0x0f96('0x24')];}_0x562913[_0x0f96('0x18')](_0x404366)[_0x0f96('0x25')](_0x5187e4);};}exports['index']=function(_0x259fdf,_0xa5947e){var _0x3055ae={},_0x258811={},_0x51441e={'count':0x0,'rows':[]};var _0x3a1f27=_[_0x0f96('0x26')](db[_0x0f96('0x27')]['rawAttributes'],function(_0x403b37){return{'name':_0x403b37[_0x0f96('0x28')],'type':_0x403b37[_0x0f96('0x29')][_0x0f96('0x2a')]};});_0x258811[_0x0f96('0x2b')]=_[_0x0f96('0x26')](_0x3a1f27,'name');_0x258811[_0x0f96('0x2c')]=_[_0x0f96('0x2d')](_0x259fdf[_0x0f96('0x2c')]);_0x258811[_0x0f96('0x2e')]=_[_0x0f96('0x2f')](_0x258811[_0x0f96('0x2b')],_0x258811[_0x0f96('0x2c')]);_0x3055ae['attributes']=_[_0x0f96('0x2f')](_0x258811[_0x0f96('0x2b')],qs[_0x0f96('0x30')](_0x259fdf[_0x0f96('0x2c')][_0x0f96('0x30')]));_0x3055ae[_0x0f96('0x31')]=_0x3055ae['attributes']['length']?_0x3055ae[_0x0f96('0x31')]:_0x258811['model'];if(!_0x259fdf[_0x0f96('0x2c')]['hasOwnProperty'](_0x0f96('0x32'))){_0x3055ae[_0x0f96('0x33')]=qs[_0x0f96('0x33')](_0x259fdf[_0x0f96('0x2c')][_0x0f96('0x33')]);_0x3055ae[_0x0f96('0x1c')]=qs[_0x0f96('0x1c')](_0x259fdf['query'][_0x0f96('0x1c')]);}_0x3055ae[_0x0f96('0x34')]=qs[_0x0f96('0x35')](_0x259fdf[_0x0f96('0x2c')][_0x0f96('0x35')]);_0x3055ae[_0x0f96('0x36')]=qs[_0x0f96('0x2e')](_[_0x0f96('0x37')](_0x259fdf[_0x0f96('0x2c')],_0x258811[_0x0f96('0x2e')]),_0x3a1f27);if(_0x259fdf[_0x0f96('0x2c')][_0x0f96('0x38')]){_0x3055ae[_0x0f96('0x36')]=_[_0x0f96('0x39')](_0x3055ae[_0x0f96('0x36')],{'$or':_[_0x0f96('0x26')](_0x3a1f27,function(_0x17bf45){if(_0x17bf45['type']!==_0x0f96('0x3a')){var _0x193297={};_0x193297[_0x17bf45[_0x0f96('0x24')]]={'$like':'%'+_0x259fdf[_0x0f96('0x2c')][_0x0f96('0x38')]+'%'};return _0x193297;}})});}_0x3055ae=_[_0x0f96('0x39')]({},_0x3055ae,_0x259fdf['options']);var _0x2ea76b={'where':_0x3055ae[_0x0f96('0x36')]};return db['FaxQueueReport']['count'](_0x2ea76b)[_0x0f96('0x20')](function(_0x45b82e){_0x51441e[_0x0f96('0x1b')]=_0x45b82e;if(_0x259fdf[_0x0f96('0x2c')][_0x0f96('0x3b')]){_0x3055ae[_0x0f96('0x3c')]=[{'all':!![]}];}return db[_0x0f96('0x27')]['findAll'](_0x3055ae);})[_0x0f96('0x20')](function(_0x14758c){_0x51441e['rows']=_0x14758c;return _0x51441e;})[_0x0f96('0x20')](respondWithFilteredResult(_0xa5947e,_0x3055ae))[_0x0f96('0x3d')](handleError(_0xa5947e,null));};exports[_0x0f96('0x3e')]=function(_0x5dd164,_0x45af5e){var _0x4ae7f2={'raw':!![],'where':{'id':_0x5dd164['params']['id']}},_0x2a670d={};_0x2a670d['model']=_[_0x0f96('0x2d')](db[_0x0f96('0x27')][_0x0f96('0x3f')]);_0x2a670d[_0x0f96('0x2c')]=_[_0x0f96('0x2d')](_0x5dd164[_0x0f96('0x2c')]);_0x2a670d[_0x0f96('0x2e')]=_['intersection'](_0x2a670d[_0x0f96('0x2b')],_0x2a670d[_0x0f96('0x2c')]);_0x4ae7f2['attributes']=_[_0x0f96('0x2f')](_0x2a670d[_0x0f96('0x2b')],qs[_0x0f96('0x30')](_0x5dd164[_0x0f96('0x2c')][_0x0f96('0x30')]));_0x4ae7f2['attributes']=_0x4ae7f2[_0x0f96('0x31')][_0x0f96('0x40')]?_0x4ae7f2[_0x0f96('0x31')]:_0x2a670d[_0x0f96('0x2b')];if(_0x5dd164['query']['includeAll']){_0x4ae7f2['include']=[{'all':!![]}];}_0x4ae7f2=_[_0x0f96('0x39')]({},_0x4ae7f2,_0x5dd164[_0x0f96('0x41')]);return db[_0x0f96('0x27')][_0x0f96('0x42')](_0x4ae7f2)[_0x0f96('0x20')](handleEntityNotFound(_0x45af5e,null))[_0x0f96('0x20')](respondWithResult(_0x45af5e,null))[_0x0f96('0x3d')](handleError(_0x45af5e,null));};exports[_0x0f96('0x43')]=function(_0x18981f,_0x139dec){return db['FaxQueueReport'][_0x0f96('0x43')](_0x18981f[_0x0f96('0x44')],{})[_0x0f96('0x20')](respondWithResult(_0x139dec,0xc9))[_0x0f96('0x3d')](handleError(_0x139dec,null));};exports['update']=function(_0x11703d,_0x5d92ee){if(_0x11703d['body']['id']){delete _0x11703d[_0x0f96('0x44')]['id'];}return db['FaxQueueReport'][_0x0f96('0x42')]({'where':{'id':_0x11703d[_0x0f96('0x45')]['id']}})[_0x0f96('0x20')](handleEntityNotFound(_0x5d92ee,null))[_0x0f96('0x20')](saveUpdates(_0x11703d[_0x0f96('0x44')],null))[_0x0f96('0x20')](respondWithResult(_0x5d92ee,null))['catch'](handleError(_0x5d92ee,null));};exports[_0x0f96('0x21')]=function(_0x58ee44,_0x460c5f){return db[_0x0f96('0x27')][_0x0f96('0x42')]({'where':{'id':_0x58ee44[_0x0f96('0x45')]['id']}})[_0x0f96('0x20')](handleEntityNotFound(_0x460c5f,null))[_0x0f96('0x20')](removeEntity(_0x460c5f,null))[_0x0f96('0x3d')](handleError(_0x460c5f,null));};exports['describe']=function(_0x23a1d8,_0x1a724d){return db[_0x0f96('0x27')][_0x0f96('0x46')]()[_0x0f96('0x20')](respondWithResult(_0x1a724d,null))[_0x0f96('0x3d')](handleError(_0x1a724d,null));};
\ No newline at end of file
+var _0x383a=['name','send','index','map','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','filter','merge','includeAll','include','FaxQueueReport','findAll','rows','catch','params','keys','rawAttributes','options','find','create','update','body','describe','rimraf','zip-dir','moment','mustache','util','path','ejs','fs-extra','lodash','to-csv','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','sendStatus','error','stack'];(function(_0x4360d9,_0x3d2c99){var _0x22e456=function(_0x138fe6){while(--_0x138fe6){_0x4360d9['push'](_0x4360d9['shift']());}};_0x22e456(++_0x3d2c99);}(_0x383a,0x1ad));var _0xa383=function(_0x31a938,_0x4daec6){_0x31a938=_0x31a938-0x0;var _0x1bf341=_0x383a[_0x31a938];return _0x1bf341;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa383('0x0'));var zipdir=require(_0xa383('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa383('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xa383('0x3'));var util=require(_0xa383('0x4'));var path=require(_0xa383('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xa383('0x6'));var fs=require('fs');var fs_extra=require(_0xa383('0x7'));var _=require(_0xa383('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xa383('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xa383('0xa'));var authService=require(_0xa383('0xb'));var qs=require('../../components/parsers/qs');var as=require(_0xa383('0xc'));var hardwareService=require(_0xa383('0xd'));var logger=require(_0xa383('0xe'))('api');var utils=require(_0xa383('0xf'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xa383('0x10'))['db'];function respondWithStatusCode(_0xe5b711,_0x20dcd8){_0x20dcd8=_0x20dcd8||0xcc;return function(_0x44b6a8){if(_0x44b6a8){return _0xe5b711['sendStatus'](_0x20dcd8);}return _0xe5b711[_0xa383('0x11')](_0x20dcd8)[_0xa383('0x12')]();};}function respondWithResult(_0x2567c8,_0xdf9a86){_0xdf9a86=_0xdf9a86||0xc8;return function(_0x2262fb){if(_0x2262fb){return _0x2567c8[_0xa383('0x11')](_0xdf9a86)[_0xa383('0x13')](_0x2262fb);}};}function respondWithFilteredResult(_0x83a77a,_0x514394){return function(_0x5ca9f3){if(_0x5ca9f3){var _0x35acc9=typeof _0x514394[_0xa383('0x14')]===_0xa383('0x15')&&typeof _0x514394[_0xa383('0x16')]==='undefined';var _0xb098f=_0x5ca9f3['count'];var _0x287b82=_0x35acc9?0x0:_0x514394[_0xa383('0x14')];var _0x2ccaf7=_0x35acc9?_0x5ca9f3[_0xa383('0x17')]:_0x514394[_0xa383('0x14')]+_0x514394[_0xa383('0x16')];var _0x35e38f;if(_0x2ccaf7>=_0xb098f){_0x2ccaf7=_0xb098f;_0x35e38f=0xc8;}else{_0x35e38f=0xce;}_0x83a77a[_0xa383('0x11')](_0x35e38f);return _0x83a77a[_0xa383('0x18')](_0xa383('0x19'),_0x287b82+'-'+_0x2ccaf7+'/'+_0xb098f)['json'](_0x5ca9f3);}return null;};}function patchUpdates(_0x5d87f9){return function(_0x5d5649){try{jsonpatch[_0xa383('0x1a')](_0x5d5649,_0x5d87f9,!![]);}catch(_0x4109fc){return BPromise['reject'](_0x4109fc);}return _0x5d5649[_0xa383('0x1b')]();};}function saveUpdates(_0x48b8f4,_0xa6b4b0){return function(_0x1f376f){if(_0x1f376f){return _0x1f376f['update'](_0x48b8f4)[_0xa383('0x1c')](function(_0x2533f8){return _0x2533f8;});}return null;};}function removeEntity(_0x4cc53b,_0x441582){return function(_0x3a2e1e){if(_0x3a2e1e){return _0x3a2e1e[_0xa383('0x1d')]()[_0xa383('0x1c')](function(){_0x4cc53b[_0xa383('0x11')](0xcc)[_0xa383('0x12')]();});}};}function handleEntityNotFound(_0x480167,_0x23d22b){return function(_0x28add7){if(!_0x28add7){_0x480167[_0xa383('0x1e')](0x194);}return _0x28add7;};}function handleError(_0x2ffa5d,_0x15483b){_0x15483b=_0x15483b||0x1f4;return function(_0x42b6a5){logger[_0xa383('0x1f')](_0x42b6a5[_0xa383('0x20')]);if(_0x42b6a5['name']){delete _0x42b6a5[_0xa383('0x21')];}_0x2ffa5d[_0xa383('0x11')](_0x15483b)[_0xa383('0x22')](_0x42b6a5);};}exports[_0xa383('0x23')]=function(_0x2640f4,_0x26c28a){var _0x30597f={},_0x27b18c={},_0x11c074={'count':0x0,'rows':[]};var _0x14c3f6=_[_0xa383('0x24')](db['FaxQueueReport']['rawAttributes'],function(_0xd11504){return{'name':_0xd11504[_0xa383('0x25')],'type':_0xd11504[_0xa383('0x26')]['key']};});_0x27b18c[_0xa383('0x27')]=_[_0xa383('0x24')](_0x14c3f6,_0xa383('0x21'));_0x27b18c[_0xa383('0x28')]=_['keys'](_0x2640f4[_0xa383('0x28')]);_0x27b18c[_0xa383('0x29')]=_[_0xa383('0x2a')](_0x27b18c[_0xa383('0x27')],_0x27b18c['query']);_0x30597f[_0xa383('0x2b')]=_[_0xa383('0x2a')](_0x27b18c[_0xa383('0x27')],qs[_0xa383('0x2c')](_0x2640f4[_0xa383('0x28')]['fields']));_0x30597f[_0xa383('0x2b')]=_0x30597f[_0xa383('0x2b')][_0xa383('0x2d')]?_0x30597f[_0xa383('0x2b')]:_0x27b18c['model'];if(!_0x2640f4[_0xa383('0x28')][_0xa383('0x2e')]('nolimit')){_0x30597f[_0xa383('0x16')]=qs[_0xa383('0x16')](_0x2640f4[_0xa383('0x28')]['limit']);_0x30597f[_0xa383('0x14')]=qs[_0xa383('0x14')](_0x2640f4[_0xa383('0x28')][_0xa383('0x14')]);}_0x30597f['order']=qs[_0xa383('0x2f')](_0x2640f4['query'][_0xa383('0x2f')]);_0x30597f[_0xa383('0x30')]=qs[_0xa383('0x29')](_['pick'](_0x2640f4[_0xa383('0x28')],_0x27b18c[_0xa383('0x29')]),_0x14c3f6);if(_0x2640f4[_0xa383('0x28')][_0xa383('0x31')]){_0x30597f[_0xa383('0x30')]=_[_0xa383('0x32')](_0x30597f['where'],{'$or':_[_0xa383('0x24')](_0x14c3f6,function(_0x2f3c73){if(_0x2f3c73[_0xa383('0x26')]!=='VIRTUAL'){var _0x34e8da={};_0x34e8da[_0x2f3c73[_0xa383('0x21')]]={'$like':'%'+_0x2640f4['query'][_0xa383('0x31')]+'%'};return _0x34e8da;}})});}_0x30597f=_['merge']({},_0x30597f,_0x2640f4['options']);var _0x39bf06={'where':_0x30597f[_0xa383('0x30')]};return db['FaxQueueReport'][_0xa383('0x17')](_0x39bf06)[_0xa383('0x1c')](function(_0x2f56b4){_0x11c074[_0xa383('0x17')]=_0x2f56b4;if(_0x2640f4['query'][_0xa383('0x33')]){_0x30597f[_0xa383('0x34')]=[{'all':!![]}];}return db[_0xa383('0x35')][_0xa383('0x36')](_0x30597f);})[_0xa383('0x1c')](function(_0x5009fb){_0x11c074[_0xa383('0x37')]=_0x5009fb;return _0x11c074;})[_0xa383('0x1c')](respondWithFilteredResult(_0x26c28a,_0x30597f))[_0xa383('0x38')](handleError(_0x26c28a,null));};exports['show']=function(_0x137d3c,_0x329a16){var _0x112622={'raw':!![],'where':{'id':_0x137d3c[_0xa383('0x39')]['id']}},_0x63c3ed={};_0x63c3ed[_0xa383('0x27')]=_[_0xa383('0x3a')](db['FaxQueueReport'][_0xa383('0x3b')]);_0x63c3ed['query']=_[_0xa383('0x3a')](_0x137d3c['query']);_0x63c3ed[_0xa383('0x29')]=_['intersection'](_0x63c3ed[_0xa383('0x27')],_0x63c3ed[_0xa383('0x28')]);_0x112622[_0xa383('0x2b')]=_[_0xa383('0x2a')](_0x63c3ed[_0xa383('0x27')],qs['fields'](_0x137d3c[_0xa383('0x28')][_0xa383('0x2c')]));_0x112622[_0xa383('0x2b')]=_0x112622[_0xa383('0x2b')]['length']?_0x112622[_0xa383('0x2b')]:_0x63c3ed[_0xa383('0x27')];if(_0x137d3c[_0xa383('0x28')]['includeAll']){_0x112622['include']=[{'all':!![]}];}_0x112622=_[_0xa383('0x32')]({},_0x112622,_0x137d3c[_0xa383('0x3c')]);return db[_0xa383('0x35')][_0xa383('0x3d')](_0x112622)[_0xa383('0x1c')](handleEntityNotFound(_0x329a16,null))[_0xa383('0x1c')](respondWithResult(_0x329a16,null))[_0xa383('0x38')](handleError(_0x329a16,null));};exports[_0xa383('0x3e')]=function(_0x23b4ed,_0x2485be){return db[_0xa383('0x35')][_0xa383('0x3e')](_0x23b4ed['body'],{})[_0xa383('0x1c')](respondWithResult(_0x2485be,0xc9))[_0xa383('0x38')](handleError(_0x2485be,null));};exports[_0xa383('0x3f')]=function(_0x4e544a,_0x5f537e){if(_0x4e544a['body']['id']){delete _0x4e544a[_0xa383('0x40')]['id'];}return db['FaxQueueReport']['find']({'where':{'id':_0x4e544a[_0xa383('0x39')]['id']}})[_0xa383('0x1c')](handleEntityNotFound(_0x5f537e,null))[_0xa383('0x1c')](saveUpdates(_0x4e544a[_0xa383('0x40')],null))[_0xa383('0x1c')](respondWithResult(_0x5f537e,null))[_0xa383('0x38')](handleError(_0x5f537e,null));};exports[_0xa383('0x1d')]=function(_0x13d49b,_0x25e61c){return db['FaxQueueReport'][_0xa383('0x3d')]({'where':{'id':_0x13d49b[_0xa383('0x39')]['id']}})['then'](handleEntityNotFound(_0x25e61c,null))['then'](removeEntity(_0x25e61c,null))['catch'](handleError(_0x25e61c,null));};exports[_0xa383('0x41')]=function(_0xa9719b,_0xd86ef4){return db[_0xa383('0x35')]['describe']()[_0xa383('0x1c')](respondWithResult(_0xd86ef4,null))[_0xa383('0x38')](handleError(_0xd86ef4,null));};
\ No newline at end of file