Built motion from commit 449495f6.|2.6.27
[motion2.git] / server / api / cmHopperBlack / cmHopperBlack.controller.js
index 24ccafb..77c6ab4 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x4a9a=['merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','length','options','find','body','destroy','describe','rimraf','zip-dir','request-promise','moment','mustache','util','to-csv','ejs','fs-extra','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','undefined','offset','count','limit','set','apply','reject','update','then','sendStatus','error','name','send','map','CmHopperBlack','rawAttributes','fieldName','type','key','keys','query','intersection','model','attributes','fields','hasOwnProperty','sort','filters','filter','where'];(function(_0x5e6bec,_0x1eb54d){var _0x5dc5cf=function(_0x59429a){while(--_0x59429a){_0x5e6bec['push'](_0x5e6bec['shift']());}};_0x5dc5cf(++_0x1eb54d);}(_0x4a9a,0x123));var _0xa4a9=function(_0xf4cba2,_0x372e6c){_0xf4cba2=_0xf4cba2-0x0;var _0x454be4=_0x4a9a[_0xf4cba2];return _0x454be4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa4a9('0x0'));var zipdir=require(_0xa4a9('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa4a9('0x2'));var moment=require(_0xa4a9('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xa4a9('0x4'));var util=require(_0xa4a9('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xa4a9('0x6'));var ejs=require(_0xa4a9('0x7'));var fs=require('fs');var fs_extra=require(_0xa4a9('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa4a9('0x9'));var deskjs=require(_0xa4a9('0xa'));var toCsv=require('to-csv');var querystring=require(_0xa4a9('0xb'));var Papa=require('papaparse');var Redis=require(_0xa4a9('0xc'));var authService=require(_0xa4a9('0xd'));var qs=require(_0xa4a9('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa4a9('0xf'));var logger=require('../../config/logger')(_0xa4a9('0x10'));var utils=require(_0xa4a9('0x11'));var config=require(_0xa4a9('0x12'));var licenseUtil=require(_0xa4a9('0x13'));var db=require(_0xa4a9('0x14'))['db'];function respondWithStatusCode(_0x400596,_0x317a5){_0x317a5=_0x317a5||0xcc;return function(_0x38b3f3){if(_0x38b3f3){return _0x400596['sendStatus'](_0x317a5);}return _0x400596[_0xa4a9('0x15')](_0x317a5)[_0xa4a9('0x16')]();};}function respondWithResult(_0x6887c3,_0x46239f){_0x46239f=_0x46239f||0xc8;return function(_0x12ba62){if(_0x12ba62){return _0x6887c3[_0xa4a9('0x15')](_0x46239f)[_0xa4a9('0x17')](_0x12ba62);}};}function respondWithFilteredResult(_0x37f83d,_0x5edd22){return function(_0x49bce3){if(_0x49bce3){var _0x5f270e=typeof _0x5edd22['offset']===_0xa4a9('0x18')&&typeof _0x5edd22['limit']===_0xa4a9('0x18');var _0xb0a525=_0x49bce3['count'];var _0x44b3f9=_0x5f270e?0x0:_0x5edd22[_0xa4a9('0x19')];var _0xae43a=_0x5f270e?_0x49bce3[_0xa4a9('0x1a')]:_0x5edd22[_0xa4a9('0x19')]+_0x5edd22[_0xa4a9('0x1b')];var _0x7d0481;if(_0xae43a>=_0xb0a525){_0xae43a=_0xb0a525;_0x7d0481=0xc8;}else{_0x7d0481=0xce;}_0x37f83d[_0xa4a9('0x15')](_0x7d0481);return _0x37f83d[_0xa4a9('0x1c')]('Content-Range',_0x44b3f9+'-'+_0xae43a+'/'+_0xb0a525)[_0xa4a9('0x17')](_0x49bce3);}return null;};}function patchUpdates(_0x2be3df){return function(_0x402adf){try{jsonpatch[_0xa4a9('0x1d')](_0x402adf,_0x2be3df,!![]);}catch(_0x28eece){return BPromise[_0xa4a9('0x1e')](_0x28eece);}return _0x402adf['save']();};}function saveUpdates(_0x3c58ac,_0xc6647d){return function(_0x30b0d9){if(_0x30b0d9){return _0x30b0d9[_0xa4a9('0x1f')](_0x3c58ac)['then'](function(_0x1241d2){return _0x1241d2;});}return null;};}function removeEntity(_0x28aefb,_0x29252a){return function(_0x4039e6){if(_0x4039e6){return _0x4039e6['destroy']()[_0xa4a9('0x20')](function(){_0x28aefb[_0xa4a9('0x15')](0xcc)[_0xa4a9('0x16')]();});}};}function handleEntityNotFound(_0x4d9d66,_0x289d33){return function(_0x1a3445){if(!_0x1a3445){_0x4d9d66[_0xa4a9('0x21')](0x194);}return _0x1a3445;};}function handleError(_0x4e899b,_0xf9902e){_0xf9902e=_0xf9902e||0x1f4;return function(_0x34ba93){logger[_0xa4a9('0x22')](_0x34ba93['stack']);if(_0x34ba93[_0xa4a9('0x23')]){delete _0x34ba93['name'];}_0x4e899b[_0xa4a9('0x15')](_0xf9902e)[_0xa4a9('0x24')](_0x34ba93);};}exports['index']=function(_0x32f2e5,_0x353a41){var _0x3af70c={},_0x1a7b54={},_0x15b62d={'count':0x0,'rows':[]};var _0xf6b7c3=_[_0xa4a9('0x25')](db[_0xa4a9('0x26')][_0xa4a9('0x27')],function(_0x2c5ba2){return{'name':_0x2c5ba2[_0xa4a9('0x28')],'type':_0x2c5ba2[_0xa4a9('0x29')][_0xa4a9('0x2a')]};});_0x1a7b54['model']=_[_0xa4a9('0x25')](_0xf6b7c3,_0xa4a9('0x23'));_0x1a7b54['query']=_[_0xa4a9('0x2b')](_0x32f2e5[_0xa4a9('0x2c')]);_0x1a7b54['filters']=_[_0xa4a9('0x2d')](_0x1a7b54[_0xa4a9('0x2e')],_0x1a7b54[_0xa4a9('0x2c')]);_0x3af70c[_0xa4a9('0x2f')]=_[_0xa4a9('0x2d')](_0x1a7b54[_0xa4a9('0x2e')],qs['fields'](_0x32f2e5[_0xa4a9('0x2c')][_0xa4a9('0x30')]));_0x3af70c[_0xa4a9('0x2f')]=_0x3af70c['attributes']['length']?_0x3af70c[_0xa4a9('0x2f')]:_0x1a7b54['model'];if(!_0x32f2e5[_0xa4a9('0x2c')][_0xa4a9('0x31')]('nolimit')){_0x3af70c[_0xa4a9('0x1b')]=qs[_0xa4a9('0x1b')](_0x32f2e5[_0xa4a9('0x2c')][_0xa4a9('0x1b')]);_0x3af70c[_0xa4a9('0x19')]=qs[_0xa4a9('0x19')](_0x32f2e5[_0xa4a9('0x2c')][_0xa4a9('0x19')]);}_0x3af70c['order']=qs['sort'](_0x32f2e5[_0xa4a9('0x2c')][_0xa4a9('0x32')]);_0x3af70c['where']=qs['filters'](_['pick'](_0x32f2e5['query'],_0x1a7b54[_0xa4a9('0x33')]),_0xf6b7c3);if(_0x32f2e5[_0xa4a9('0x2c')][_0xa4a9('0x34')]){_0x3af70c[_0xa4a9('0x35')]=_[_0xa4a9('0x36')](_0x3af70c[_0xa4a9('0x35')],{'$or':_['map'](_0xf6b7c3,function(_0x257b0d){if(_0x257b0d[_0xa4a9('0x29')]!==_0xa4a9('0x37')){var _0x36778f={};_0x36778f[_0x257b0d[_0xa4a9('0x23')]]={'$like':'%'+_0x32f2e5[_0xa4a9('0x2c')][_0xa4a9('0x34')]+'%'};return _0x36778f;}})});}_0x3af70c=_[_0xa4a9('0x36')]({},_0x3af70c,_0x32f2e5['options']);var _0x584d1b={'where':_0x3af70c[_0xa4a9('0x35')]};return db['CmHopperBlack'][_0xa4a9('0x1a')](_0x584d1b)[_0xa4a9('0x20')](function(_0x537de1){_0x15b62d[_0xa4a9('0x1a')]=_0x537de1;if(_0x32f2e5['query'][_0xa4a9('0x38')]){_0x3af70c[_0xa4a9('0x39')]=[{'all':!![]}];}return db[_0xa4a9('0x26')][_0xa4a9('0x3a')](_0x3af70c);})['then'](function(_0x129b17){_0x15b62d[_0xa4a9('0x3b')]=_0x129b17;return _0x15b62d;})['then'](respondWithFilteredResult(_0x353a41,_0x3af70c))[_0xa4a9('0x3c')](handleError(_0x353a41,null));};exports[_0xa4a9('0x3d')]=function(_0x212e08,_0x32f4f0){var _0x1e5907={'raw':!![],'where':{'id':_0x212e08[_0xa4a9('0x3e')]['id']}},_0x380ade={};_0x380ade[_0xa4a9('0x2e')]=_['keys'](db[_0xa4a9('0x26')][_0xa4a9('0x27')]);_0x380ade[_0xa4a9('0x2c')]=_['keys'](_0x212e08[_0xa4a9('0x2c')]);_0x380ade[_0xa4a9('0x33')]=_[_0xa4a9('0x2d')](_0x380ade[_0xa4a9('0x2e')],_0x380ade[_0xa4a9('0x2c')]);_0x1e5907[_0xa4a9('0x2f')]=_[_0xa4a9('0x2d')](_0x380ade[_0xa4a9('0x2e')],qs[_0xa4a9('0x30')](_0x212e08['query']['fields']));_0x1e5907[_0xa4a9('0x2f')]=_0x1e5907[_0xa4a9('0x2f')][_0xa4a9('0x3f')]?_0x1e5907[_0xa4a9('0x2f')]:_0x380ade[_0xa4a9('0x2e')];if(_0x212e08[_0xa4a9('0x2c')][_0xa4a9('0x38')]){_0x1e5907[_0xa4a9('0x39')]=[{'all':!![]}];}_0x1e5907=_[_0xa4a9('0x36')]({},_0x1e5907,_0x212e08[_0xa4a9('0x40')]);return db['CmHopperBlack'][_0xa4a9('0x41')](_0x1e5907)[_0xa4a9('0x20')](handleEntityNotFound(_0x32f4f0,null))[_0xa4a9('0x20')](respondWithResult(_0x32f4f0,null))[_0xa4a9('0x3c')](handleError(_0x32f4f0,null));};exports[_0xa4a9('0x1f')]=function(_0x36df97,_0x14d931){if(_0x36df97[_0xa4a9('0x42')]['id']){delete _0x36df97[_0xa4a9('0x42')]['id'];}return db[_0xa4a9('0x26')][_0xa4a9('0x41')]({'where':{'id':_0x36df97[_0xa4a9('0x3e')]['id']}})[_0xa4a9('0x20')](handleEntityNotFound(_0x14d931,null))[_0xa4a9('0x20')](saveUpdates(_0x36df97['body'],null))['then'](respondWithResult(_0x14d931,null))[_0xa4a9('0x3c')](handleError(_0x14d931,null));};exports[_0xa4a9('0x43')]=function(_0x125211,_0x212910){return db[_0xa4a9('0x26')][_0xa4a9('0x41')]({'where':{'id':_0x125211[_0xa4a9('0x3e')]['id']}})['then'](handleEntityNotFound(_0x212910,null))[_0xa4a9('0x20')](removeEntity(_0x212910,null))[_0xa4a9('0x3c')](handleError(_0x212910,null));};exports[_0xa4a9('0x44')]=function(_0x4e3fd0,_0x36309){return db[_0xa4a9('0x26')][_0xa4a9('0x44')]()['then'](respondWithResult(_0x36309,null))[_0xa4a9('0x3c')](handleError(_0x36309,null));};
\ No newline at end of file
+var _0xf71f=['fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','save','then','destroy','error','stack','name','send','index','map','CmHopperBlack','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','rawAttributes','options','find','update','body','catch','describe','eml-format','bluebird','mustache','sox','to-csv','ejs'];(function(_0x4bb12f,_0x358cfe){var _0x1bc623=function(_0x114623){while(--_0x114623){_0x4bb12f['push'](_0x4bb12f['shift']());}};_0x1bc623(++_0x358cfe);}(_0xf71f,0x112));var _0xff71=function(_0x2dfb97,_0x14d8e0){_0x2dfb97=_0x2dfb97-0x0;var _0x29cef6=_0xf71f[_0x2dfb97];return _0x29cef6;};'use strict';var emlformat=require(_0xff71('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xff71('0x1'));var Mustache=require(_0xff71('0x2'));var util=require('util');var path=require('path');var sox=require(_0xff71('0x3'));var csv=require(_0xff71('0x4'));var ejs=require(_0xff71('0x5'));var fs=require('fs');var fs_extra=require(_0xff71('0x6'));var _=require(_0xff71('0x7'));var squel=require('squel');var crypto=require(_0xff71('0x8'));var jsforce=require('jsforce');var deskjs=require(_0xff71('0x9'));var toCsv=require(_0xff71('0x4'));var querystring=require(_0xff71('0xa'));var Papa=require(_0xff71('0xb'));var Redis=require(_0xff71('0xc'));var authService=require(_0xff71('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0xff71('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xff71('0xf'));var utils=require(_0xff71('0x10'));var config=require(_0xff71('0x11'));var licenseUtil=require(_0xff71('0x12'));var db=require(_0xff71('0x13'))['db'];function respondWithStatusCode(_0x3cb7e0,_0x2980da){_0x2980da=_0x2980da||0xcc;return function(_0x32cacb){if(_0x32cacb){return _0x3cb7e0[_0xff71('0x14')](_0x2980da);}return _0x3cb7e0[_0xff71('0x15')](_0x2980da)['end']();};}function respondWithResult(_0x1d1860,_0x3b66d6){_0x3b66d6=_0x3b66d6||0xc8;return function(_0x572dff){if(_0x572dff){return _0x1d1860[_0xff71('0x15')](_0x3b66d6)[_0xff71('0x16')](_0x572dff);}};}function respondWithFilteredResult(_0x7ec93d,_0x5f2e3a){return function(_0x4350f7){if(_0x4350f7){var _0x8885f1=typeof _0x5f2e3a[_0xff71('0x17')]===_0xff71('0x18')&&typeof _0x5f2e3a[_0xff71('0x19')]===_0xff71('0x18');var _0x525dec=_0x4350f7[_0xff71('0x1a')];var _0x10bc87=_0x8885f1?0x0:_0x5f2e3a[_0xff71('0x17')];var _0x11ab2d=_0x8885f1?_0x4350f7[_0xff71('0x1a')]:_0x5f2e3a[_0xff71('0x17')]+_0x5f2e3a[_0xff71('0x19')];var _0x2d1276;if(_0x11ab2d>=_0x525dec){_0x11ab2d=_0x525dec;_0x2d1276=0xc8;}else{_0x2d1276=0xce;}_0x7ec93d['status'](_0x2d1276);return _0x7ec93d[_0xff71('0x1b')]('Content-Range',_0x10bc87+'-'+_0x11ab2d+'/'+_0x525dec)[_0xff71('0x16')](_0x4350f7);}return null;};}function patchUpdates(_0x2d6ee7){return function(_0x23a5de){try{jsonpatch['apply'](_0x23a5de,_0x2d6ee7,!![]);}catch(_0x4fbde4){return BPromise['reject'](_0x4fbde4);}return _0x23a5de[_0xff71('0x1c')]();};}function saveUpdates(_0x24b867,_0x4c7f32){return function(_0x4f665d){if(_0x4f665d){return _0x4f665d['update'](_0x24b867)[_0xff71('0x1d')](function(_0x40c7c7){return _0x40c7c7;});}return null;};}function removeEntity(_0x3ac5b6,_0x1a6a8f){return function(_0x401be3){if(_0x401be3){return _0x401be3[_0xff71('0x1e')]()['then'](function(){_0x3ac5b6['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2ea253,_0x230970){return function(_0x52b023){if(!_0x52b023){_0x2ea253['sendStatus'](0x194);}return _0x52b023;};}function handleError(_0x501fd1,_0x149633){_0x149633=_0x149633||0x1f4;return function(_0x1e0cb8){logger[_0xff71('0x1f')](_0x1e0cb8[_0xff71('0x20')]);if(_0x1e0cb8[_0xff71('0x21')]){delete _0x1e0cb8[_0xff71('0x21')];}_0x501fd1[_0xff71('0x15')](_0x149633)[_0xff71('0x22')](_0x1e0cb8);};}exports[_0xff71('0x23')]=function(_0x268306,_0x433a41){var _0x1e7ce2={},_0xac7214={},_0x2bc1f0={'count':0x0,'rows':[]};var _0x5a4869=_[_0xff71('0x24')](db[_0xff71('0x25')]['rawAttributes'],function(_0x935dc2){return{'name':_0x935dc2[_0xff71('0x26')],'type':_0x935dc2[_0xff71('0x27')][_0xff71('0x28')]};});_0xac7214[_0xff71('0x29')]=_[_0xff71('0x24')](_0x5a4869,_0xff71('0x21'));_0xac7214[_0xff71('0x2a')]=_[_0xff71('0x2b')](_0x268306[_0xff71('0x2a')]);_0xac7214[_0xff71('0x2c')]=_['intersection'](_0xac7214[_0xff71('0x29')],_0xac7214['query']);_0x1e7ce2['attributes']=_[_0xff71('0x2d')](_0xac7214[_0xff71('0x29')],qs[_0xff71('0x2e')](_0x268306[_0xff71('0x2a')][_0xff71('0x2e')]));_0x1e7ce2['attributes']=_0x1e7ce2[_0xff71('0x2f')][_0xff71('0x30')]?_0x1e7ce2[_0xff71('0x2f')]:_0xac7214[_0xff71('0x29')];if(!_0x268306['query']['hasOwnProperty'](_0xff71('0x31'))){_0x1e7ce2[_0xff71('0x19')]=qs[_0xff71('0x19')](_0x268306['query'][_0xff71('0x19')]);_0x1e7ce2[_0xff71('0x17')]=qs[_0xff71('0x17')](_0x268306['query'][_0xff71('0x17')]);}_0x1e7ce2[_0xff71('0x32')]=qs['sort'](_0x268306[_0xff71('0x2a')][_0xff71('0x33')]);_0x1e7ce2[_0xff71('0x34')]=qs['filters'](_[_0xff71('0x35')](_0x268306[_0xff71('0x2a')],_0xac7214[_0xff71('0x2c')]),_0x5a4869);if(_0x268306['query'][_0xff71('0x36')]){_0x1e7ce2[_0xff71('0x34')]=_[_0xff71('0x37')](_0x1e7ce2[_0xff71('0x34')],{'$or':_[_0xff71('0x24')](_0x5a4869,function(_0x18eb4c){if(_0x18eb4c['type']!==_0xff71('0x38')){var _0x18b93b={};_0x18b93b[_0x18eb4c[_0xff71('0x21')]]={'$like':'%'+_0x268306[_0xff71('0x2a')][_0xff71('0x36')]+'%'};return _0x18b93b;}})});}_0x1e7ce2=_['merge']({},_0x1e7ce2,_0x268306['options']);var _0x3c9b4a={'where':_0x1e7ce2['where']};return db[_0xff71('0x25')]['count'](_0x3c9b4a)[_0xff71('0x1d')](function(_0x17b44b){_0x2bc1f0[_0xff71('0x1a')]=_0x17b44b;if(_0x268306[_0xff71('0x2a')][_0xff71('0x39')]){_0x1e7ce2[_0xff71('0x3a')]=[{'all':!![]}];}return db[_0xff71('0x25')][_0xff71('0x3b')](_0x1e7ce2);})['then'](function(_0x2247cb){_0x2bc1f0[_0xff71('0x3c')]=_0x2247cb;return _0x2bc1f0;})[_0xff71('0x1d')](respondWithFilteredResult(_0x433a41,_0x1e7ce2))['catch'](handleError(_0x433a41,null));};exports[_0xff71('0x3d')]=function(_0x2756d7,_0x4931a8){var _0x2e2e04={'raw':!![],'where':{'id':_0x2756d7[_0xff71('0x3e')]['id']}},_0x353045={};_0x353045[_0xff71('0x29')]=_[_0xff71('0x2b')](db[_0xff71('0x25')][_0xff71('0x3f')]);_0x353045['query']=_[_0xff71('0x2b')](_0x2756d7['query']);_0x353045[_0xff71('0x2c')]=_['intersection'](_0x353045[_0xff71('0x29')],_0x353045[_0xff71('0x2a')]);_0x2e2e04[_0xff71('0x2f')]=_[_0xff71('0x2d')](_0x353045[_0xff71('0x29')],qs[_0xff71('0x2e')](_0x2756d7['query'][_0xff71('0x2e')]));_0x2e2e04['attributes']=_0x2e2e04['attributes'][_0xff71('0x30')]?_0x2e2e04[_0xff71('0x2f')]:_0x353045[_0xff71('0x29')];if(_0x2756d7[_0xff71('0x2a')][_0xff71('0x39')]){_0x2e2e04[_0xff71('0x3a')]=[{'all':!![]}];}_0x2e2e04=_['merge']({},_0x2e2e04,_0x2756d7[_0xff71('0x40')]);return db[_0xff71('0x25')][_0xff71('0x41')](_0x2e2e04)['then'](handleEntityNotFound(_0x4931a8,null))[_0xff71('0x1d')](respondWithResult(_0x4931a8,null))['catch'](handleError(_0x4931a8,null));};exports[_0xff71('0x42')]=function(_0x3c4607,_0x5e1e30){if(_0x3c4607[_0xff71('0x43')]['id']){delete _0x3c4607['body']['id'];}return db[_0xff71('0x25')][_0xff71('0x41')]({'where':{'id':_0x3c4607[_0xff71('0x3e')]['id']}})[_0xff71('0x1d')](handleEntityNotFound(_0x5e1e30,null))['then'](saveUpdates(_0x3c4607[_0xff71('0x43')],null))[_0xff71('0x1d')](respondWithResult(_0x5e1e30,null))[_0xff71('0x44')](handleError(_0x5e1e30,null));};exports['destroy']=function(_0x445671,_0x2f3365){return db[_0xff71('0x25')][_0xff71('0x41')]({'where':{'id':_0x445671[_0xff71('0x3e')]['id']}})[_0xff71('0x1d')](handleEntityNotFound(_0x2f3365,null))[_0xff71('0x1d')](removeEntity(_0x2f3365,null))[_0xff71('0x44')](handleError(_0x2f3365,null));};exports[_0xff71('0x45')]=function(_0x58b984,_0x418bdf){return db[_0xff71('0x25')]['describe']()[_0xff71('0x1d')](respondWithResult(_0x418bdf,null))['catch'](handleError(_0x418bdf,null));};
\ No newline at end of file