Built motion from commit (unavailable).|2.5.14
[motion2.git] / server / api / intFreshsalesField / intFreshsalesField.controller.js
index fd4882c..6bdc827 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xab42=['model','query','attributes','intersection','fields','length','order','sort','where','pick','VIRTUAL','filter','merge','options','count','includeAll','include','findAll','catch','show','params','keys','find','create','body','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','crypto','desk.js','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','limit','apply','reject','save','then','destroy','error','name','send','index','map','FreshsalesField','rawAttributes','fieldName','type','key','filters'];(function(_0x280f4a,_0x2ed8d6){var _0x1bb157=function(_0x37de94){while(--_0x37de94){_0x280f4a['push'](_0x280f4a['shift']());}};_0x1bb157(++_0x2ed8d6);}(_0xab42,0x16d));var _0x2ab4=function(_0x34d60c,_0x649f67){_0x34d60c=_0x34d60c-0x0;var _0x239816=_0xab42[_0x34d60c];return _0x239816;};'use strict';var pdf=require(_0x2ab4('0x0'));var emlformat=require(_0x2ab4('0x1'));var rimraf=require(_0x2ab4('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2ab4('0x3'));var rp=require(_0x2ab4('0x4'));var moment=require(_0x2ab4('0x5'));var BPromise=require(_0x2ab4('0x6'));var Mustache=require(_0x2ab4('0x7'));var util=require(_0x2ab4('0x8'));var path=require(_0x2ab4('0x9'));var sox=require(_0x2ab4('0xa'));var csv=require('to-csv');var ejs=require(_0x2ab4('0xb'));var fs=require('fs');var _=require(_0x2ab4('0xc'));var squel=require('squel');var crypto=require(_0x2ab4('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x2ab4('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2ab4('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x2ab4('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2ab4('0x11'));var logger=require(_0x2ab4('0x12'))('api');var utils=require(_0x2ab4('0x13'));var config=require(_0x2ab4('0x14'));var db=require(_0x2ab4('0x15'))['db'];function respondWithStatusCode(_0x99acc0,_0x4c5d00){_0x4c5d00=_0x4c5d00||0xcc;return function(_0x5d0234){if(_0x5d0234){return _0x99acc0[_0x2ab4('0x16')](_0x4c5d00);}return _0x99acc0[_0x2ab4('0x17')](_0x4c5d00)[_0x2ab4('0x18')]();};}function respondWithResult(_0x5cbc96,_0x395808){_0x395808=_0x395808||0xc8;return function(_0x269dd1){if(_0x269dd1){return _0x5cbc96[_0x2ab4('0x17')](_0x395808)['json'](_0x269dd1);}};}function respondWithFilteredResult(_0x26fd09,_0xcf779a){return function(_0xf27ba4){if(_0xf27ba4){var _0x34e22a=_0xf27ba4['count'],_0x106494=_0xcf779a[_0x2ab4('0x19')],_0x24e0a9=_0xcf779a[_0x2ab4('0x19')]+_0xcf779a[_0x2ab4('0x1a')],_0x5ca189;if(_0x24e0a9>=_0x34e22a){_0x24e0a9=_0x34e22a;_0x5ca189=0xc8;}else{_0x5ca189=0xce;}_0x26fd09[_0x2ab4('0x17')](_0x5ca189);return _0x26fd09['set']('Content-Range',_0x106494+'-'+_0x24e0a9+'/'+_0x34e22a)['json'](_0xf27ba4);}return null;};}function patchUpdates(_0x294e74){return function(_0x4fa784){try{jsonpatch[_0x2ab4('0x1b')](_0x4fa784,_0x294e74,!![]);}catch(_0x4161a2){return BPromise[_0x2ab4('0x1c')](_0x4161a2);}return _0x4fa784[_0x2ab4('0x1d')]();};}function saveUpdates(_0xd4553b,_0x15516f){return function(_0x22a763){if(_0x22a763){return _0x22a763['update'](_0xd4553b)[_0x2ab4('0x1e')](function(_0x4f15f7){return _0x4f15f7;});}return null;};}function removeEntity(_0x2b0c6a,_0x13b94b){return function(_0x158457){if(_0x158457){return _0x158457[_0x2ab4('0x1f')]()[_0x2ab4('0x1e')](function(){_0x2b0c6a['status'](0xcc)[_0x2ab4('0x18')]();});}};}function handleEntityNotFound(_0x22d96c,_0x5d04e1){return function(_0x4d86e0){if(!_0x4d86e0){_0x22d96c[_0x2ab4('0x16')](0x194);}return _0x4d86e0;};}function handleError(_0x53c0d3,_0x5558c6){_0x5558c6=_0x5558c6||0x1f4;return function(_0x4fde3b){logger[_0x2ab4('0x20')](_0x4fde3b['stack']);if(_0x4fde3b[_0x2ab4('0x21')]){delete _0x4fde3b['name'];}_0x53c0d3[_0x2ab4('0x17')](_0x5558c6)[_0x2ab4('0x22')](_0x4fde3b);};}exports[_0x2ab4('0x23')]=function(_0x1bafff,_0x159152){var _0x65dc8d={},_0x4a9366={},_0x404797={'count':0x0,'rows':[]};var _0x4d7c84=_[_0x2ab4('0x24')](db[_0x2ab4('0x25')][_0x2ab4('0x26')],function(_0x22d719){return{'name':_0x22d719[_0x2ab4('0x27')],'type':_0x22d719[_0x2ab4('0x28')][_0x2ab4('0x29')]};});_0x4a9366['model']=_['map'](_0x4d7c84,_0x2ab4('0x21'));_0x4a9366['query']=_['keys'](_0x1bafff['query']);_0x4a9366[_0x2ab4('0x2a')]=_['intersection'](_0x4a9366[_0x2ab4('0x2b')],_0x4a9366[_0x2ab4('0x2c')]);_0x65dc8d[_0x2ab4('0x2d')]=_[_0x2ab4('0x2e')](_0x4a9366[_0x2ab4('0x2b')],qs[_0x2ab4('0x2f')](_0x1bafff[_0x2ab4('0x2c')]['fields']));_0x65dc8d[_0x2ab4('0x2d')]=_0x65dc8d[_0x2ab4('0x2d')][_0x2ab4('0x30')]?_0x65dc8d[_0x2ab4('0x2d')]:_0x4a9366[_0x2ab4('0x2b')];if(!_0x1bafff[_0x2ab4('0x2c')]['hasOwnProperty']('nolimit')){_0x65dc8d[_0x2ab4('0x1a')]=qs[_0x2ab4('0x1a')](_0x1bafff['query'][_0x2ab4('0x1a')]);_0x65dc8d[_0x2ab4('0x19')]=qs[_0x2ab4('0x19')](_0x1bafff[_0x2ab4('0x2c')]['offset']);}_0x65dc8d[_0x2ab4('0x31')]=qs[_0x2ab4('0x32')](_0x1bafff['query'][_0x2ab4('0x32')]);_0x65dc8d[_0x2ab4('0x33')]=qs[_0x2ab4('0x2a')](_[_0x2ab4('0x34')](_0x1bafff['query'],_0x4a9366[_0x2ab4('0x2a')]),_0x4d7c84);if(_0x1bafff[_0x2ab4('0x2c')]['filter']){_0x65dc8d[_0x2ab4('0x33')]=_['merge'](_0x65dc8d[_0x2ab4('0x33')],{'$or':_[_0x2ab4('0x24')](_0x4d7c84,function(_0x2f183a){if(_0x2f183a[_0x2ab4('0x28')]!==_0x2ab4('0x35')){var _0x188a60={};_0x188a60[_0x2f183a[_0x2ab4('0x21')]]={'$like':'%'+_0x1bafff[_0x2ab4('0x2c')][_0x2ab4('0x36')]+'%'};return _0x188a60;}})});}_0x65dc8d=_[_0x2ab4('0x37')]({},_0x65dc8d,_0x1bafff[_0x2ab4('0x38')]);var _0xc720f1={'where':_0x65dc8d[_0x2ab4('0x33')]};return db[_0x2ab4('0x25')][_0x2ab4('0x39')](_0xc720f1)[_0x2ab4('0x1e')](function(_0x526fcc){_0x404797['count']=_0x526fcc;if(_0x1bafff['query'][_0x2ab4('0x3a')]){_0x65dc8d[_0x2ab4('0x3b')]=[{'all':!![]}];}return db[_0x2ab4('0x25')][_0x2ab4('0x3c')](_0x65dc8d);})[_0x2ab4('0x1e')](function(_0x14005b){_0x404797['rows']=_0x14005b;return _0x404797;})[_0x2ab4('0x1e')](respondWithFilteredResult(_0x159152,_0x65dc8d))[_0x2ab4('0x3d')](handleError(_0x159152,null));};exports[_0x2ab4('0x3e')]=function(_0x1f3286,_0x415cf4){var _0xa7b811={'raw':!![],'where':{'id':_0x1f3286[_0x2ab4('0x3f')]['id']}},_0x203b80={};_0x203b80[_0x2ab4('0x2b')]=_[_0x2ab4('0x40')](db['FreshsalesField'][_0x2ab4('0x26')]);_0x203b80['query']=_[_0x2ab4('0x40')](_0x1f3286[_0x2ab4('0x2c')]);_0x203b80[_0x2ab4('0x2a')]=_[_0x2ab4('0x2e')](_0x203b80['model'],_0x203b80[_0x2ab4('0x2c')]);_0xa7b811[_0x2ab4('0x2d')]=_['intersection'](_0x203b80[_0x2ab4('0x2b')],qs['fields'](_0x1f3286['query']['fields']));_0xa7b811['attributes']=_0xa7b811[_0x2ab4('0x2d')][_0x2ab4('0x30')]?_0xa7b811['attributes']:_0x203b80[_0x2ab4('0x2b')];if(_0x1f3286[_0x2ab4('0x2c')][_0x2ab4('0x3a')]){_0xa7b811[_0x2ab4('0x3b')]=[{'all':!![]}];}_0xa7b811=_[_0x2ab4('0x37')]({},_0xa7b811,_0x1f3286[_0x2ab4('0x38')]);return db[_0x2ab4('0x25')][_0x2ab4('0x41')](_0xa7b811)['then'](handleEntityNotFound(_0x415cf4,null))['then'](respondWithResult(_0x415cf4,null))[_0x2ab4('0x3d')](handleError(_0x415cf4,null));};exports[_0x2ab4('0x42')]=function(_0x3331e5,_0x222a24){return db[_0x2ab4('0x25')][_0x2ab4('0x42')](_0x3331e5['body'],{})[_0x2ab4('0x1e')](respondWithResult(_0x222a24,0xc9))['catch'](handleError(_0x222a24,null));};exports['update']=function(_0x222140,_0x302095){if(_0x222140['body']['id']){delete _0x222140[_0x2ab4('0x43')]['id'];}return db[_0x2ab4('0x25')]['find']({'where':{'id':_0x222140['params']['id']}})['then'](handleEntityNotFound(_0x302095,null))['then'](saveUpdates(_0x222140[_0x2ab4('0x43')],null))[_0x2ab4('0x1e')](respondWithResult(_0x302095,null))[_0x2ab4('0x3d')](handleError(_0x302095,null));};exports[_0x2ab4('0x1f')]=function(_0xdc3c45,_0x1755b9){return db[_0x2ab4('0x25')][_0x2ab4('0x41')]({'where':{'id':_0xdc3c45[_0x2ab4('0x3f')]['id']}})['then'](handleEntityNotFound(_0x1755b9,null))[_0x2ab4('0x1e')](removeEntity(_0x1755b9,null))[_0x2ab4('0x3d')](handleError(_0x1755b9,null));};
\ No newline at end of file
+var _0x5b5a=['pick','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','create','update','body','find','destroy','html-pdf','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','apply','reject','then','sendStatus','error','stack','name','send','FreshsalesField','type','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort'];(function(_0x5d3e97,_0x17d8dd){var _0x3a8dbe=function(_0x28ed0a){while(--_0x28ed0a){_0x5d3e97['push'](_0x5d3e97['shift']());}};_0x3a8dbe(++_0x17d8dd);}(_0x5b5a,0x18a));var _0xa5b5=function(_0x1f8b97,_0x1e98f5){_0x1f8b97=_0x1f8b97-0x0;var _0x1e77d2=_0x5b5a[_0x1f8b97];return _0x1e77d2;};'use strict';var pdf=require(_0xa5b5('0x0'));var emlformat=require(_0xa5b5('0x1'));var rimraf=require(_0xa5b5('0x2'));var zipdir=require(_0xa5b5('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa5b5('0x4'));var BPromise=require(_0xa5b5('0x5'));var Mustache=require(_0xa5b5('0x6'));var util=require(_0xa5b5('0x7'));var path=require(_0xa5b5('0x8'));var sox=require(_0xa5b5('0x9'));var csv=require(_0xa5b5('0xa'));var ejs=require(_0xa5b5('0xb'));var fs=require('fs');var _=require(_0xa5b5('0xc'));var squel=require(_0xa5b5('0xd'));var crypto=require(_0xa5b5('0xe'));var jsforce=require(_0xa5b5('0xf'));var deskjs=require(_0xa5b5('0x10'));var toCsv=require(_0xa5b5('0xa'));var querystring=require(_0xa5b5('0x11'));var Papa=require(_0xa5b5('0x12'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa5b5('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa5b5('0x14'));var logger=require(_0xa5b5('0x15'))(_0xa5b5('0x16'));var utils=require(_0xa5b5('0x17'));var config=require(_0xa5b5('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xa5b5('0x19'))['db'];function respondWithStatusCode(_0x513a34,_0x2320f3){_0x2320f3=_0x2320f3||0xcc;return function(_0x1dd16a){if(_0x1dd16a){return _0x513a34['sendStatus'](_0x2320f3);}return _0x513a34[_0xa5b5('0x1a')](_0x2320f3)[_0xa5b5('0x1b')]();};}function respondWithResult(_0x2bc431,_0x5f1fab){_0x5f1fab=_0x5f1fab||0xc8;return function(_0x1150de){if(_0x1150de){return _0x2bc431['status'](_0x5f1fab)[_0xa5b5('0x1c')](_0x1150de);}};}function respondWithFilteredResult(_0x58124a,_0x48b012){return function(_0x4eb43a){if(_0x4eb43a){var _0x11c196=_0x4eb43a[_0xa5b5('0x1d')],_0x228a4c=_0x48b012['offset'],_0xd10176=_0x48b012[_0xa5b5('0x1e')]+_0x48b012[_0xa5b5('0x1f')],_0x388618;if(_0xd10176>=_0x11c196){_0xd10176=_0x11c196;_0x388618=0xc8;}else{_0x388618=0xce;}_0x58124a[_0xa5b5('0x1a')](_0x388618);return _0x58124a[_0xa5b5('0x20')](_0xa5b5('0x21'),_0x228a4c+'-'+_0xd10176+'/'+_0x11c196)['json'](_0x4eb43a);}return null;};}function patchUpdates(_0x57692d){return function(_0x5ab749){try{jsonpatch[_0xa5b5('0x22')](_0x5ab749,_0x57692d,!![]);}catch(_0x14e31d){return BPromise[_0xa5b5('0x23')](_0x14e31d);}return _0x5ab749['save']();};}function saveUpdates(_0x1b1075,_0x196ff3){return function(_0x404362){if(_0x404362){return _0x404362['update'](_0x1b1075)[_0xa5b5('0x24')](function(_0xc59905){return _0xc59905;});}return null;};}function removeEntity(_0x3f924b,_0x5ce8da){return function(_0x4f4038){if(_0x4f4038){return _0x4f4038['destroy']()[_0xa5b5('0x24')](function(){_0x3f924b[_0xa5b5('0x1a')](0xcc)[_0xa5b5('0x1b')]();});}};}function handleEntityNotFound(_0x545980,_0x6d8cb0){return function(_0x38f10d){if(!_0x38f10d){_0x545980[_0xa5b5('0x25')](0x194);}return _0x38f10d;};}function handleError(_0x403933,_0x187659){_0x187659=_0x187659||0x1f4;return function(_0x36d3b4){logger[_0xa5b5('0x26')](_0x36d3b4[_0xa5b5('0x27')]);if(_0x36d3b4[_0xa5b5('0x28')]){delete _0x36d3b4[_0xa5b5('0x28')];}_0x403933[_0xa5b5('0x1a')](_0x187659)[_0xa5b5('0x29')](_0x36d3b4);};}exports['index']=function(_0x401439,_0x123272){var _0x1d0867={},_0x6024f6={},_0x448831={'count':0x0,'rows':[]};var _0x5b9b85=_['map'](db[_0xa5b5('0x2a')]['rawAttributes'],function(_0x592e71){return{'name':_0x592e71['fieldName'],'type':_0x592e71[_0xa5b5('0x2b')]['key']};});_0x6024f6[_0xa5b5('0x2c')]=_[_0xa5b5('0x2d')](_0x5b9b85,_0xa5b5('0x28'));_0x6024f6[_0xa5b5('0x2e')]=_[_0xa5b5('0x2f')](_0x401439[_0xa5b5('0x2e')]);_0x6024f6[_0xa5b5('0x30')]=_[_0xa5b5('0x31')](_0x6024f6[_0xa5b5('0x2c')],_0x6024f6[_0xa5b5('0x2e')]);_0x1d0867['attributes']=_[_0xa5b5('0x31')](_0x6024f6[_0xa5b5('0x2c')],qs[_0xa5b5('0x32')](_0x401439[_0xa5b5('0x2e')][_0xa5b5('0x32')]));_0x1d0867[_0xa5b5('0x33')]=_0x1d0867[_0xa5b5('0x33')][_0xa5b5('0x34')]?_0x1d0867[_0xa5b5('0x33')]:_0x6024f6[_0xa5b5('0x2c')];if(!_0x401439[_0xa5b5('0x2e')][_0xa5b5('0x35')](_0xa5b5('0x36'))){_0x1d0867['limit']=qs['limit'](_0x401439[_0xa5b5('0x2e')]['limit']);_0x1d0867[_0xa5b5('0x1e')]=qs[_0xa5b5('0x1e')](_0x401439['query'][_0xa5b5('0x1e')]);}_0x1d0867['order']=qs[_0xa5b5('0x37')](_0x401439['query']['sort']);_0x1d0867['where']=qs[_0xa5b5('0x30')](_[_0xa5b5('0x38')](_0x401439[_0xa5b5('0x2e')],_0x6024f6[_0xa5b5('0x30')]),_0x5b9b85);if(_0x401439[_0xa5b5('0x2e')]['filter']){_0x1d0867[_0xa5b5('0x39')]=_[_0xa5b5('0x3a')](_0x1d0867[_0xa5b5('0x39')],{'$or':_[_0xa5b5('0x2d')](_0x5b9b85,function(_0x253954){if(_0x253954[_0xa5b5('0x2b')]!==_0xa5b5('0x3b')){var _0x3356d1={};_0x3356d1[_0x253954[_0xa5b5('0x28')]]={'$like':'%'+_0x401439[_0xa5b5('0x2e')][_0xa5b5('0x3c')]+'%'};return _0x3356d1;}})});}_0x1d0867=_[_0xa5b5('0x3a')]({},_0x1d0867,_0x401439[_0xa5b5('0x3d')]);var _0x34f55a={'where':_0x1d0867['where']};return db[_0xa5b5('0x2a')]['count'](_0x34f55a)[_0xa5b5('0x24')](function(_0x118dee){_0x448831[_0xa5b5('0x1d')]=_0x118dee;if(_0x401439[_0xa5b5('0x2e')][_0xa5b5('0x3e')]){_0x1d0867[_0xa5b5('0x3f')]=[{'all':!![]}];}return db[_0xa5b5('0x2a')][_0xa5b5('0x40')](_0x1d0867);})[_0xa5b5('0x24')](function(_0x379cbc){_0x448831[_0xa5b5('0x41')]=_0x379cbc;return _0x448831;})['then'](respondWithFilteredResult(_0x123272,_0x1d0867))[_0xa5b5('0x42')](handleError(_0x123272,null));};exports[_0xa5b5('0x43')]=function(_0x498f56,_0x39d0ce){var _0x599463={'raw':!![],'where':{'id':_0x498f56[_0xa5b5('0x44')]['id']}},_0x4f2050={};_0x4f2050[_0xa5b5('0x2c')]=_[_0xa5b5('0x2f')](db[_0xa5b5('0x2a')][_0xa5b5('0x45')]);_0x4f2050[_0xa5b5('0x2e')]=_['keys'](_0x498f56['query']);_0x4f2050[_0xa5b5('0x30')]=_[_0xa5b5('0x31')](_0x4f2050[_0xa5b5('0x2c')],_0x4f2050[_0xa5b5('0x2e')]);_0x599463[_0xa5b5('0x33')]=_[_0xa5b5('0x31')](_0x4f2050[_0xa5b5('0x2c')],qs[_0xa5b5('0x32')](_0x498f56[_0xa5b5('0x2e')][_0xa5b5('0x32')]));_0x599463[_0xa5b5('0x33')]=_0x599463[_0xa5b5('0x33')]['length']?_0x599463[_0xa5b5('0x33')]:_0x4f2050[_0xa5b5('0x2c')];if(_0x498f56[_0xa5b5('0x2e')][_0xa5b5('0x3e')]){_0x599463[_0xa5b5('0x3f')]=[{'all':!![]}];}_0x599463=_[_0xa5b5('0x3a')]({},_0x599463,_0x498f56[_0xa5b5('0x3d')]);return db['FreshsalesField']['find'](_0x599463)['then'](handleEntityNotFound(_0x39d0ce,null))[_0xa5b5('0x24')](respondWithResult(_0x39d0ce,null))[_0xa5b5('0x42')](handleError(_0x39d0ce,null));};exports[_0xa5b5('0x46')]=function(_0xd4caa1,_0x225592){return db['FreshsalesField']['create'](_0xd4caa1['body'],{})[_0xa5b5('0x24')](respondWithResult(_0x225592,0xc9))[_0xa5b5('0x42')](handleError(_0x225592,null));};exports[_0xa5b5('0x47')]=function(_0x4bd19c,_0x557aa3){if(_0x4bd19c[_0xa5b5('0x48')]['id']){delete _0x4bd19c[_0xa5b5('0x48')]['id'];}return db['FreshsalesField'][_0xa5b5('0x49')]({'where':{'id':_0x4bd19c[_0xa5b5('0x44')]['id']}})[_0xa5b5('0x24')](handleEntityNotFound(_0x557aa3,null))[_0xa5b5('0x24')](saveUpdates(_0x4bd19c['body'],null))[_0xa5b5('0x24')](respondWithResult(_0x557aa3,null))['catch'](handleError(_0x557aa3,null));};exports[_0xa5b5('0x4a')]=function(_0x3583ab,_0x8a2f2a){return db['FreshsalesField'][_0xa5b5('0x49')]({'where':{'id':_0x3583ab[_0xa5b5('0x44')]['id']}})['then'](handleEntityNotFound(_0x8a2f2a,null))[_0xa5b5('0x24')](removeEntity(_0x8a2f2a,null))[_0xa5b5('0x42')](handleError(_0x8a2f2a,null));};
\ No newline at end of file