mirror of
https://github.com/unidoc/unioffice.git
synced 2025-04-25 13:48:53 +08:00
12 lines
38 KiB
Go
12 lines
38 KiB
Go
//
|
|
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
|
//
|
|
// This is a commercial product and requires a license to operate.
|
|
// A trial license can be obtained at https://unidoc.io
|
|
//
|
|
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
|
//
|
|
// Use of this source code is governed by the UniDoc End User License Agreement
|
|
// terms that can be accessed at https://unidoc.io/eula/
|
|
|
|
package license ;import (_ea "bytes";_be "compress/gzip";_c "crypto";_cbf "crypto/aes";_ag "crypto/cipher";_fea "crypto/hmac";_fde "crypto/rand";_ce "crypto/rsa";_ac "crypto/sha256";_agg "crypto/sha512";_bd "crypto/x509";_dbd "encoding/base64";_fc "encoding/binary";_dc "encoding/hex";_fd "encoding/json";_eae "encoding/pem";_aa "errors";_cb "fmt";_ee "github.com/unidoc/unioffice/common";_fb "github.com/unidoc/unioffice/common/logger";_e "io";_fg "io/ioutil";_gb "log";_a "net";_d "net/http";_fe "os";_cf "path/filepath";_f "regexp";_g "sort";_eg "strings";_bb "sync";_db "time";);type meteredStatusResp struct{Valid bool `json:"valid"`;OrgCredits int64 `json:"org_credits"`;OrgUsed int64 `json:"org_used"`;OrgRemaining int64 `json:"org_remaining"`;};type defaultStateHolder struct{};func _aff (_gg []byte )(_e .Reader ,error ){_gcg :=new (_ea .Buffer );_bdc :=_be .NewWriter (_gcg );_bdc .Write (_gg );_ccaf :=_bdc .Close ();if _ccaf !=nil {return nil ,_ccaf ;};return _gcg ,nil ;};func TrackUse (useKey string ){if _egf ==nil {return ;};if !_egf ._gca ||len (_egf ._gbg )==0{return ;};if len (useKey )==0{return ;};_degb .Lock ();defer _degb .Unlock ();if _baf ==nil {_baf =map[string ]int {};};_baf [useKey ]++;};func GetLicenseKey ()*LicenseKey {if _egf ==nil {return nil ;};_add :=*_egf ;return &_add ;};func (_fcd *meteredClient )checkinUsage (_gfg meteredUsageCheckinForm )(meteredUsageCheckinResp ,error ){_gfg .Package ="\u0075n\u0069\u006f\u0066\u0066\u0069\u0063e";_gfg .PackageVersion =_ee .Version ;var _fbde meteredUsageCheckinResp ;_aed :=_fcd ._gbc +"\u002f\u006d\u0065\u0074er\u0065\u0064\u002f\u0075\u0073\u0061\u0067\u0065\u005f\u0063\u0068\u0065\u0063\u006bi\u006e";_eccc ,_ccb :=_fd .Marshal (_gfg );if _ccb !=nil {return _fbde ,_ccb ;};_fbe ,_ccb :=_aff (_eccc );if _ccb !=nil {return _fbde ,_ccb ;};_fcg ,_ccb :=_d .NewRequest ("\u0050\u004f\u0053\u0054",_aed ,_fbe );if _ccb !=nil {return _fbde ,_ccb ;};_fcg .Header .Add ("\u0043\u006f\u006et\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065","\u0061\u0070p\u006c\u0069\u0063a\u0074\u0069\u006f\u006e\u002f\u006a\u0073\u006f\u006e");_fcg .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_fcg .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_fcg .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_fcd ._bga );_ged ,_ccb :=_fcd ._ddg .Do (_fcg );if _ccb !=nil {_fb .Log .Error ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0068\u0074\u0074\u0070 \u0072e\u0073p\u006f\u006e\u0073\u0065\u003a\u0020\u0025v",_ccb );return _fbde ,_ccb ;};defer _ged .Body .Close ();if _ged .StatusCode !=200{_eaa ,_fa :=_gbf (_ged );if _fa !=nil {return _fbde ,_fa ;};_fa =_fd .Unmarshal (_eaa ,&_fbde );if _fa !=nil {return _fbde ,_fa ;};return _fbde ,_cb .Errorf ("\u0066\u0061i\u006c\u0065\u0064\u0020t\u006f\u0020c\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020s\u0074\u0061\u0074\u0075\u0073\u0020\u0063\u006f\u0064\u0065\u0020\u0069s\u003a\u0020\u0025\u0064",_ged .StatusCode );};_edg :=_ged .Header .Get ("\u0058\u002d\u0055\u0043\u002d\u0053\u0069\u0067\u006ea\u0074\u0075\u0072\u0065");_baa :=_cee (_gfg .MacAddress ,string (_eccc ));if _baa !=_edg {_fb .Log .Error ("I\u006e\u0076\u0061l\u0069\u0064\u0020\u0072\u0065\u0073\u0070\u006f\u006e\u0073\u0065\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u002c\u0020\u0073\u0065t\u0020\u0074\u0068e\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0073\u0065\u0072\u0076e\u0072\u0020\u0074\u006f \u0068\u0074\u0074\u0070s\u003a\u002f\u002f\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069o\u002f\u0061\u0070\u0069");return _fbde ,_aa .New ("\u0066\u0061\u0069l\u0065\u0064\u0020\u0074\u006f\u0020\u0063\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0065\u0072\u0076\u0065\u0072 \u0072\u0065\u0073\u0070\u006f\u006e\u0073\u0065");};_cfca ,_ccb :=_gbf (_ged );if _ccb !=nil {return _fbde ,_ccb ;};_ccb =_fd .Unmarshal (_cfca ,&_fbde );if _ccb !=nil {return _fbde ,_ccb ;};return _fbde ,nil ;};const _bbf ="\u0033\u0030\u0035\u0063\u0033\u0030\u0030\u00640\u0036\u0030\u0039\u0032\u0061\u0038\u00364\u0038\u0038\u0036\u0066\u0037\u0030d\u0030\u0031\u0030\u0031\u0030\u00310\u0035\u0030\u0030\u0030\u0033\u0034\u0062\u0030\u0030\u0033\u0030\u00348\u0030\u0032\u0034\u0031\u0030\u0030\u0062\u0038\u0037\u0065\u0061\u0066\u0062\u0036\u0063\u0030\u0037\u0034\u0039\u0039\u0065\u0062\u00397\u0063\u0063\u0039\u0064\u0033\u0035\u0036\u0035\u0065\u0063\u00663\u0031\u0036\u0038\u0031\u0039\u0036\u0033\u0030\u0031\u0039\u0030\u0037c\u0038\u0034\u0031\u0061\u0064\u0064c6\u0036\u0035\u0030\u0038\u0036\u0062\u0062\u0033\u0065\u0064\u0038\u0065\u0062\u0031\u0032\u0064\u0039\u0064\u0061\u0032\u0036\u0063\u0061\u0066\u0061\u0039\u0036\u00345\u0030\u00314\u0036\u0064\u0061\u0038\u0062\u0064\u0030\u0063c\u0066\u0031\u0035\u0035\u0066\u0063a\u0063\u0063\u00368\u0036\u0039\u0035\u0035\u0065\u0066\u0030\u0033\u0030\u0032\u0066\u0061\u0034\u0034\u0061\u0061\u0033\u0065\u0063\u0038\u0039\u0034\u0031\u0037\u0062\u0030\u0032\u0030\u0033\u0030\u0031\u0030\u0030\u0030\u0031";func (_adf *LicenseKey )getExpiryDateToCompare ()_db .Time {if _adf .Trial {return _db .Now ().UTC ();};return _ee .ReleasedAt ;};type meteredClient struct{_gbc string ;_bga string ;_ddg *_d .Client ;};var _dgf =false ;var _cca =_db .Date (2019,6,6,0,0,0,0,_db .UTC );type stateLoader interface{loadState (_bbca string )(reportState ,error );updateState (_abfc ,_fead ,_ege string ,_abc int ,_efe bool ,_fbeg int ,_abcd int ,_efg _db .Time ,_ecb map[string ]int )error ;};const _cag ="\u0055\u004e\u0049OF\u0046\u0049\u0043\u0045\u005f\u0043\u0055\u0053\u0054\u004f\u004d\u0045\u0052\u005f\u004e\u0041\u004d\u0045";const (LicenseTierUnlicensed ="\u0075\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";LicenseTierCommunity ="\u0063o\u006d\u006d\u0075\u006e\u0069\u0074y";LicenseTierIndividual ="\u0069\u006e\u0064\u0069\u0076\u0069\u0064\u0075\u0061\u006c";LicenseTierBusiness ="\u0062\u0075\u0073\u0069\u006e\u0065\u0073\u0073";);func (_fee *LicenseKey )Validate ()error {if _fee ._gca {return nil ;};if len (_fee .LicenseId )< 10{return _cb .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020L\u0069\u0063\u0065n\u0073e\u0020\u0049\u0064");};if len (_fee .CustomerId )< 10{return _cb .Errorf ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065:\u0020C\u0075\u0073\u0074\u006f\u006d\u0065\u0072 \u0049\u0064");};if len (_fee .CustomerName )< 1{return _cb .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u003a\u0020\u0043u\u0073\u0074\u006f\u006d\u0065\u0072\u0020\u004e\u0061\u006d\u0065");};if _acg .After (_fee .CreatedAt ){return _cb .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u0065\u0064 \u0041\u0074\u0020\u0069\u0073 \u0069\u006ev\u0061\u006c\u0069\u0064");};if _fee .ExpiresAt .IsZero (){_gdb :=_fee .CreatedAt .AddDate (1,0,0);if _ad .After (_gdb ){_gdb =_ad ;};_fee .ExpiresAt =_gdb ;};if _fee .CreatedAt .After (_fee .ExpiresAt ){return _cb .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u0065\u0064\u0020\u0041\u0074 \u0063a\u006e\u006e\u006f\u0074 \u0062\u0065 \u0047\u0072\u0065\u0061\u0074\u0065\u0072\u0020\u0074\u0068\u0061\u006e\u0020\u0045\u0078\u0070\u0069\u0072\u0065\u0073\u0020\u0041\u0074");};if _fee .isExpired (){return _cb .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020l\u0069\u0063\u0065ns\u0065\u003a\u0020\u0054\u0068\u0065 \u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0068\u0061\u0073\u0020\u0061\u006c\u0072e\u0061\u0064\u0079\u0020\u0065\u0078\u0070\u0069r\u0065\u0064");};if len (_fee .CreatorName )< 1{return _cb .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u003a\u0020\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u0020na\u006d\u0065");};if len (_fee .CreatorEmail )< 1{return _cb .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069c\u0065\u006e\u0073\u0065\u003a\u0020\u0043r\u0065\u0061\u0074\u006f\u0072\u0020\u0065\u006d\u0061\u0069\u006c");};if _fee .CreatedAt .After (_cca ){if !_fee .UniOffice {return _cb .Errorf ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u006c\u0069\u0063\u0065\u006e\u0073e\u003a\u0020\u0054\u0068\u0069\u0073\u0020\u0055\u006e\u0069\u0044\u006f\u0063\u0020\u006b\u0065\u0079\u0020i\u0073\u0020\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0066\u006f\u0072\u0020\u0055\u006e\u0069\u004f\u0066\u0066\u0069\u0063\u0065");};};return nil ;};type reportState struct{Instance string `json:"inst"`;Next string `json:"n"`;Docs int64 `json:"d"`;NumErrors int64 `json:"e"`;LimitDocs bool `json:"ld"`;RemainingDocs int64 `json:"rd"`;LastReported _db .Time `json:"lr"`;LastWritten _db .Time `json:"lw"`;Usage map[string ]int `json:"u"`;};func _cee (_ebce ,_ebcg string )string {_adg :=[]byte (_ebce );_eeb :=_fea .New (_ac .New ,_adg );_eeb .Write ([]byte (_ebcg ));return _dbd .StdEncoding .EncodeToString (_eeb .Sum (nil ));};func _egg (_ffede string ,_ecbb string ,_feaf bool )error {if _egf ==nil {return _aa .New ("\u006e\u006f\u0020\u006c\u0069\u0063\u0065\u006e\u0073e\u0020\u006b\u0065\u0079");};if !_egf ._gca ||len (_egf ._gbg )==0{return nil ;};if len (_ffede )==0&&!_feaf {return _aa .New ("\u0064\u006f\u0063\u004b\u0065\u0079\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");};_degb .Lock ();defer _degb .Unlock ();if _ece ==nil {_ece =map[string ]struct{}{};};if _baf ==nil {_baf =map[string ]int {};};_dee :=0;_ ,_bfc :=_ece [_ffede ];if !_bfc {_ece [_ffede ]=struct{}{};_dee ++;};if _dee ==0{return nil ;};_baf [_ecbb ]++;_dcg :=_db .Now ();_cda ,_dcgc :=_ade .loadState (_egf ._gbg );if _dcgc !=nil {_fb .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dcgc );return _dcgc ;};if _cda .Usage ==nil {_cda .Usage =map[string ]int {};};for _afb ,_ddgb :=range _baf {_cda .Usage [_afb ]+=_ddgb ;};_baf =nil ;const _eab =24*_db .Hour ;const _gbcd =3*24*_db .Hour ;if len (_cda .Instance )==0||_dcg .Sub (_cda .LastReported )> _eab ||(_cda .LimitDocs &&_cda .RemainingDocs <=_cda .Docs +int64 (_dee ))||_feaf {_efde ,_ffc :=_fe .Hostname ();if _ffc !=nil {return _ffc ;};_dced :=_cda .Docs ;_abcf ,_ebc ,_ffc :=_ddad ();if _ffc !=nil {_fb .Log .Debug ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u0067\u0065\u0074\u0020\u006c\u006fc\u0061\u006c\u0020\u0061\u0064\u0064\u0072\u0065\u0073\u0073\u003a\u0020\u0025\u0073",_ffc .Error ());_abcf =append (_abcf ,"\u0069n\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0020n\u006ft\u0020a\u0076\u0061\u0069\u006c\u0061\u0062\u006ce");_ebc =append (_ebc ,"\u0069n\u0066\u006f\u0072\u006da\u0074\u0069\u006f\u006e\u0020n\u006ft\u0020a\u0076\u0061\u0069\u006c\u0061\u0062\u006ce");}else {_g .Strings (_ebc );_g .Strings (_abcf );_aace ,_adc :=_edc ();if _adc !=nil {return _adc ;};_aca :=false ;for _ ,_fcf :=range _ebc {if _fcf ==_aace .String (){_aca =true ;};};if !_aca {_ebc =append (_ebc ,_aace .String ());};};_bff :=_ddb ();_bff ._bga =_egf ._gbg ;_dced +=int64 (_dee );_afa :=meteredUsageCheckinForm {Instance :_cda .Instance ,Next :_cda .Next ,UsageNumber :int (_dced ),NumFailed :_cda .NumErrors ,Hostname :_efde ,LocalIP :_eg .Join (_ebc ,"\u002c\u0020"),MacAddress :_eg .Join (_abcf ,"\u002c\u0020"),Package :"\u0075n\u0069\u006f\u0066\u0066\u0069\u0063e",PackageVersion :_ee .Version ,Usage :_cda .Usage ,IsPersistentCache :_egf ._bed ,Timestamp :_dcg .Unix ()};if len (_abcf )==0{_afa .MacAddress ="\u006e\u006f\u006e\u0065";};_dg :=int64 (0);_bgg :=_cda .NumErrors ;_bffg :=_dcg ;_dbaf :=0;_dea :=_cda .LimitDocs ;_cbb ,_ffc :=_bff .checkinUsage (_afa );if _ffc !=nil {if _dcg .Sub (_cda .LastReported )> _gbcd {if !_cbb .Success {return _aa .New (_cbb .Message );};return _aa .New ("\u0074\u006f\u006f\u0020\u006c\u006f\u006e\u0067\u0020\u0073\u0069\u006e\u0063\u0065\u0020\u006c\u0061\u0073\u0074\u0020\u0073\u0075\u0063\u0063e\u0073\u0073\u0066\u0075\u006c \u0063\u0068e\u0063\u006b\u0069\u006e");};_dg =_dced ;_bgg ++;_bffg =_cda .LastReported ;}else {_dea =_cbb .LimitDocs ;_dbaf =_cbb .RemainingDocs ;_bgg =0;};if len (_cbb .Instance )==0{_cbb .Instance =_afa .Instance ;};if len (_cbb .Next )==0{_cbb .Next =_afa .Next ;};_ffc =_ade .updateState (_bff ._bga ,_cbb .Instance ,_cbb .Next ,int (_dg ),_dea ,_dbaf ,int (_bgg ),_bffg ,nil );if _ffc !=nil {return _ffc ;};if !_cbb .Success {return _cb .Errorf ("\u0065r\u0072\u006f\u0072\u003a\u0020\u0025s",_cbb .Message );};}else {_dcgc =_ade .updateState (_egf ._gbg ,_cda .Instance ,_cda .Next ,int (_cda .Docs )+_dee ,_cda .LimitDocs ,int (_cda .RemainingDocs ),int (_cda .NumErrors ),_cda .LastReported ,_cda .Usage );if _dcgc !=nil {return _dcgc ;};};return nil ;};type meteredUsageCheckinResp struct{Instance string `json:"inst"`;Next string `json:"next"`;Success bool `json:"success"`;Message string `json:"message"`;RemainingDocs int `json:"rd"`;LimitDocs bool `json:"ld"`;};func _aggd (_cbg string )(LicenseKey ,error ){var _cgd LicenseKey ;_bfg ,_cff :=_ceb (_gba ,_dcd ,_cbg );if _cff !=nil {return _cgd ,_cff ;};_ebe ,_cff :=_df (_geg ,_bfg );if _cff !=nil {return _cgd ,_cff ;};_cff =_fd .Unmarshal (_ebe ,&_cgd );if _cff !=nil {return _cgd ,_cff ;};_cgd .CreatedAt =_db .Unix (_cgd .CreatedAtInt ,0);if _cgd .ExpiresAtInt > 0{_ccc :=_db .Unix (_cgd .ExpiresAtInt ,0);_cgd .ExpiresAt =_ccc ;};return _cgd ,nil ;};func init (){_dbg ,_geb :=_dc .DecodeString (_bbf );if _geb !=nil {_gb .Fatalf ("e\u0072\u0072\u006f\u0072 r\u0065a\u0064\u0069\u006e\u0067\u0020k\u0065\u0079\u003a\u0020\u0025\u0073",_geb );};_efad ,_geb :=_bd .ParsePKIXPublicKey (_dbg );if _geb !=nil {_gb .Fatalf ("e\u0072\u0072\u006f\u0072 r\u0065a\u0064\u0069\u006e\u0067\u0020k\u0065\u0079\u003a\u0020\u0025\u0073",_geb );};_ca =_efad .(*_ce .PublicKey );};func _ddb ()*meteredClient {_cd :=meteredClient {_gbc :"h\u0074\u0074\u0070\u0073\u003a\u002f/\u0063\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069d\u006f\u0063\u002ei\u006f/\u0061\u0070\u0069",_ddg :&_d .Client {Timeout :30*_db .Second }};if _abg :=_fe .Getenv ("\u0055N\u0049\u0044\u004f\u0043_\u004c\u0049\u0043\u0045\u004eS\u0045_\u0053E\u0052\u0056\u0045\u0052\u005f\u0055\u0052L");_eg .HasPrefix (_abg ,"\u0068\u0074\u0074\u0070"){_cd ._gbc =_abg ;};return &_cd ;};const _geg ="\u000a\u002d\u002d\u002d\u002d\u002d\u0042\u0045\u0047\u0049\u004e \u0050\u0055\u0042\u004c\u0049\u0043\u0020\u004b\u0045Y\u002d\u002d\u002d\u002d\u002d\u000a\u004d\u0049I\u0042\u0049\u006a\u0041NB\u0067\u006b\u0071\u0068\u006b\u0069G\u0039\u0077\u0030\u0042\u0041\u0051\u0045\u0046A\u0041\u004f\u0043\u0041\u0051\u0038\u0041\u004d\u0049\u0049\u0042\u0043\u0067\u004b\u0043\u0041\u0051\u0045A\u006dF\u0055\u0069\u0079\u0064\u0037\u0062\u0035\u0058\u006a\u0070\u006b\u0050\u0035\u0052\u0061\u0070\u0034\u0077\u000a\u0044\u0063\u0031d\u0079\u007a\u0049\u0051\u0034\u004c\u0065\u006b\u0078\u0072\u0076\u0079\u0074\u006e\u0045\u004d\u0070\u004e\u0055\u0062\u006f\u0036i\u0041\u0037\u0034\u0056\u0038\u0072\u0075\u005a\u004f\u0076\u0072\u0053\u0063\u0073\u0066\u0032\u0051\u0065\u004e9\u002f\u0071r\u0055\u0047\u0038\u0071\u0045\u0062\u0055\u0057\u0064\u006f\u0045\u0059\u0071+\u000a\u006f\u0074\u0046\u004e\u0041\u0046N\u0078\u006c\u0047\u0062\u0078\u0062\u0044\u0048\u0063\u0064\u0047\u0056\u0061\u004d\u0030\u004f\u0058\u0064\u0058g\u0044y\u004c5\u0061\u0049\u0045\u0061\u0067\u004c\u0030\u0063\u0035\u0070\u0077\u006a\u0049\u0064\u0050G\u0049\u006e\u0034\u0036\u0066\u0037\u0038\u0065\u004d\u004a\u002b\u004a\u006b\u0064\u0063\u0070\u0044\n\u0044\u004a\u0061\u0071\u0059\u0058d\u0072\u007a5\u004b\u0065\u0073\u0068\u006aS\u0069\u0049\u0061\u0061\u0037\u006d\u0065\u006e\u0042\u0049\u0041\u0058\u0053\u0034\u0055\u0046\u0078N\u0066H\u0068\u004e\u0030\u0048\u0043\u0059\u005a\u0059\u0071\u0051\u0047\u0037\u0062K+\u0073\u0035\u0072R\u0048\u006f\u006e\u0079\u0064\u004eW\u0045\u0047\u000a\u0048\u0038M\u0079\u0076\u00722\u0070\u0079\u0061\u0032K\u0072\u004d\u0075m\u0066\u006d\u0041\u0078\u0055\u0042\u0036\u0066\u0065\u006e\u0043\u002f4\u004f\u0030\u0057\u00728\u0067\u0066\u0050\u004f\u0055\u0038R\u0069\u0074\u006d\u0062\u0044\u0076\u0051\u0050\u0049\u0052\u0058\u004fL\u0034\u0076\u0054B\u0072\u0042\u0064\u0062a\u0041\u000a9\u006e\u0077\u004e\u0050\u002b\u0069\u002f\u002f\u0032\u0030\u004d\u00542\u0062\u0078\u006d\u0065\u0057\u0042\u002b\u0067\u0070\u0063\u0045\u0068G\u0070\u0058\u005a7\u0033\u0033\u0061\u007a\u0051\u0078\u0072\u0043\u0033\u004a\u0034\u0076\u0033C\u005a\u006d\u0045\u004eS\u0074\u0044\u004b\u002f\u004b\u0044\u0053\u0050\u004b\u0055\u0047\u0066\u00756\u000a\u0066\u0077I\u0044\u0041\u0051\u0041\u0042\u000a\u002d\u002d\u002d\u002d\u002dE\u004e\u0044\u0020\u0050\u0055\u0042\u004c\u0049\u0043 \u004b\u0045Y\u002d\u002d\u002d\u002d\u002d\n";func (_gd *LicenseKey )isExpired ()bool {return _gd .getExpiryDateToCompare ().After (_gd .ExpiresAt )};func _fbba (_fab ,_deb []byte )([]byte ,error ){_ddgg ,_adb :=_cbf .NewCipher (_fab );if _adb !=nil {return nil ,_adb ;};_dbgd :=make ([]byte ,_cbf .BlockSize +len (_deb ));_gfd :=_dbgd [:_cbf .BlockSize ];if _ ,_aaf :=_e .ReadFull (_fde .Reader ,_gfd );_aaf !=nil {return nil ,_aaf ;};_ggd :=_ag .NewCFBEncrypter (_ddgg ,_gfd );_ggd .XORKeyStream (_dbgd [_cbf .BlockSize :],_deb );_bda :=make ([]byte ,_dbd .URLEncoding .EncodedLen (len (_dbgd )));_dbd .URLEncoding .Encode (_bda ,_dbgd );return _bda ,nil ;};var _ad =_db .Date (2020,1,1,0,0,0,0,_db .UTC );const _egfg ="\u0055\u004e\u0049\u004fFF\u0049\u0043\u0045\u005f\u004c\u0049\u0043\u0045\u004e\u0053\u0045\u005f\u0050\u0041T\u0048";type LegacyLicenseType byte ;func (_fag defaultStateHolder )loadState (_cef string )(reportState ,error ){_gab :=_ddae ();if len (_gab )==0{return reportState {},_aa .New ("\u0068\u006fm\u0065\u0020\u0064i\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_cec :=_cf .Join (_gab ,"\u002eu\u006e\u0069\u0064\u006f\u0063");_bade :=_fe .MkdirAll (_cec ,0777);if _bade !=nil {return reportState {},_bade ;};if len (_cef )< 20{return reportState {},_aa .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_bge :=[]byte (_cef );_ebf :=_agg .Sum512_256 (_bge [:20]);_bee :=_dc .EncodeToString (_ebf [:]);_dfde :=_cf .Join (_cec ,_bee );_fcc ,_bade :=_fg .ReadFile (_dfde );if _bade !=nil {if _fe .IsNotExist (_bade ){return reportState {},nil ;};_fb .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bade );return reportState {},_aa .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");};const _dba ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_fcc ,_bade =_gebd ([]byte (_dba ),_fcc );if _bade !=nil {return reportState {},_bade ;};var _cge reportState ;_bade =_fd .Unmarshal (_fcc ,&_cge );if _bade !=nil {_fb .Log .Error ("\u0045\u0052\u0052OR\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0076",_bade );return reportState {},_aa .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0061");};return _cge ,nil ;};func GenRefId (prefix string )(string ,error ){var _gda _ea .Buffer ;_gda .WriteString (prefix );_bedd :=make ([]byte ,8+16);_bcc :=_db .Now ().UTC ().UnixNano ();_fc .BigEndian .PutUint64 (_bedd ,uint64 (_bcc ));_ ,_gad :=_fde .Read (_bedd [8:]);if _gad !=nil {return "",_gad ;};_gda .WriteString (_dc .EncodeToString (_bedd ));return _gda .String (),nil ;};func _age (_agc string ,_bbc []byte )(string ,error ){_bg ,_ :=_eae .Decode ([]byte (_agc ));if _bg ==nil {return "",_cb .Errorf ("\u0050\u0072\u0069\u0076\u004b\u0065\u0079\u0020\u0066a\u0069\u006c\u0065\u0064");};_ec ,_gbd :=_bd .ParsePKCS1PrivateKey (_bg .Bytes );if _gbd !=nil {return "",_gbd ;};_ge :=_agg .New ();_ge .Write (_bbc );_acb :=_ge .Sum (nil );_fbd ,_gbd :=_ce .SignPKCS1v15 (_fde .Reader ,_ec ,_c .SHA512 ,_acb );if _gbd !=nil {return "",_gbd ;};_eb :=_dbd .StdEncoding .EncodeToString (_bbc );_eb +="\u000a\u002b\u000a";_eb +=_dbd .StdEncoding .EncodeToString (_fbd );return _eb ,nil ;};func (_bc *LicenseKey )ToString ()string {if _bc ._gca {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};_abd :=_cb .Sprintf ("\u004ci\u0063e\u006e\u0073\u0065\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_bc .LicenseId );_abd +=_cb .Sprintf ("\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u0049\u0064\u003a\u0020\u0025\u0073\u000a",_bc .CustomerId );_abd +=_cb .Sprintf ("\u0043u\u0073t\u006f\u006d\u0065\u0072\u0020N\u0061\u006de\u003a\u0020\u0025\u0073\u000a",_bc .CustomerName );_abd +=_cb .Sprintf ("\u0054i\u0065\u0072\u003a\u0020\u0025\u0073\n",_bc .Tier );_abd +=_cb .Sprintf ("\u0043r\u0065a\u0074\u0065\u0064\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_ee .UtcTimeFormat (_bc .CreatedAt ));if _bc .ExpiresAt .IsZero (){_abd +="\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041t\u003a\u0020N\u0065\u0076\u0065\u0072\u000a";}else {_abd +=_cb .Sprintf ("\u0045x\u0070i\u0072\u0065\u0073\u0020\u0041\u0074\u003a\u0020\u0025\u0073\u000a",_ee .UtcTimeFormat (_bc .ExpiresAt ));};_abd +=_cb .Sprintf ("\u0043\u0072\u0065\u0061\u0074\u006f\u0072\u003a\u0020\u0025\u0073\u0020<\u0025\u0073\u003e\u000a",_bc .CreatorName ,_bc .CreatorEmail );return _abd ;};func _df (_gf string ,_gfa string )([]byte ,error ){var (_gfb int ;_acbg string ;);for _ ,_acbg =range []string {"\u000a\u002b\u000a","\u000d\u000a\u002b\r\u000a","\u0020\u002b\u0020"}{if _gfb =_eg .Index (_gfa ,_acbg );_gfb !=-1{break ;};};if _gfb ==-1{return nil ,_cb .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u002c \u0073i\u0067n\u0061t\u0075\u0072\u0065\u0020\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u006f\u0072");};_ae :=_gfa [:_gfb ];_ff :=_gfb +len (_acbg );_cc :=_gfa [_ff :];if _ae ==""||_cc ==""{return nil ,_cb .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u0069n\u0070\u0075\u0074,\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0069\u0067\u0069n\u0061\u006c \u006f\u0072\u0020\u0073\u0069\u0067n\u0061\u0074u\u0072\u0065");};_dd ,_ecc :=_dbd .StdEncoding .DecodeString (_ae );if _ecc !=nil {return nil ,_cb .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u006f\u0072\u0069\u0067\u0069\u006ea\u006c");};_ef ,_ecc :=_dbd .StdEncoding .DecodeString (_cc );if _ecc !=nil {return nil ,_cb .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065");};_bf ,_ :=_eae .Decode ([]byte (_gf ));if _bf ==nil {return nil ,_cb .Errorf ("\u0050\u0075\u0062\u004b\u0065\u0079\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};_efa ,_ecc :=_bd .ParsePKIXPublicKey (_bf .Bytes );if _ecc !=nil {return nil ,_ecc ;};_af :=_efa .(*_ce .PublicKey );if _af ==nil {return nil ,_cb .Errorf ("\u0050u\u0062\u004b\u0065\u0079\u0020\u0063\u006f\u006e\u0076\u0065\u0072s\u0069\u006f\u006e\u0020\u0066\u0061\u0069\u006c\u0065\u0064");};_bbcf :=_agg .New ();_bbcf .Write (_dd );_da :=_bbcf .Sum (nil );_ecc =_ce .VerifyPKCS1v15 (_af ,_c .SHA512 ,_da ,_ef );if _ecc !=nil {return nil ,_ecc ;};return _dd ,nil ;};func SetLegacyLicenseKey (s string )error {_daf :=_f .MustCompile ("\u005c\u0073");s =_daf .ReplaceAllString (s ,"");var _dbgc _e .Reader ;_dbgc =_eg .NewReader (s );_dbgc =_dbd .NewDecoder (_dbd .RawURLEncoding ,_dbgc );_dbgc ,_ecg :=_be .NewReader (_dbgc );if _ecg !=nil {return _ecg ;};_ebd :=_fd .NewDecoder (_dbgc );_aec :=&LegacyLicense {};if _cac :=_ebd .Decode (_aec );_cac !=nil {return _cac ;};if _cab :=_aec .Verify (_ca );_cab !=nil {return _aa .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074\u0069\u006e\u0020\u0065\u0072\u0072\u006f\u0072");};if _aec .Expiration .Before (_ee .ReleasedAt ){return _aa .New ("\u006ci\u0063e\u006e\u0073\u0065\u0020\u0065\u0078\u0070\u0069\u0072\u0065\u0064");};_ecbg :=_db .Now ().UTC ();_aad :=LicenseKey {};_aad .CreatedAt =_ecbg ;_aad .CustomerId ="\u004c\u0065\u0067\u0061\u0063\u0079";_aad .CustomerName =_aec .Name ;_aad .Tier =LicenseTierBusiness ;_aad .ExpiresAt =_aec .Expiration ;_aad .CreatorName ="\u0055\u006e\u0069\u0044\u006f\u0063\u0020\u0073\u0075p\u0070\u006f\u0072\u0074";_aad .CreatorEmail ="\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0040\u0075\u006e\u0069\u0064o\u0063\u002e\u0069\u006f";_aad .UniOffice =true ;_egf =&_aad ;return nil ;};func _dbc (_abag *_d .Response )(_e .ReadCloser ,error ){var _ada error ;var _gec _e .ReadCloser ;switch _eg .ToLower (_abag .Header .Get ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067")){case "\u0067\u007a\u0069\u0070":_gec ,_ada =_be .NewReader (_abag .Body );if _ada !=nil {return _gec ,_ada ;};defer _gec .Close ();default:_gec =_abag .Body ;};return _gec ,nil ;};func _gebd (_gfgf ,_dec []byte )([]byte ,error ){_ebg :=make ([]byte ,_dbd .URLEncoding .DecodedLen (len (_dec )));_aggb ,_fdd :=_dbd .URLEncoding .Decode (_ebg ,_dec );if _fdd !=nil {return nil ,_fdd ;};_ebg =_ebg [:_aggb ];_cdb ,_fdd :=_cbf .NewCipher (_gfgf );if _fdd !=nil {return nil ,_fdd ;};if len (_ebg )< _cbf .BlockSize {return nil ,_aa .New ("c\u0069p\u0068\u0065\u0072\u0074\u0065\u0078\u0074\u0020t\u006f\u006f\u0020\u0073ho\u0072\u0074");};_dff :=_ebg [:_cbf .BlockSize ];_ebg =_ebg [_cbf .BlockSize :];_eecf :=_ag .NewCFBDecrypter (_cdb ,_dff );_eecf .XORKeyStream (_ebg ,_ebg );return _ebg ,nil ;};var _degb =&_bb .Mutex {};func _gbf (_ffee *_d .Response )([]byte ,error ){var _bfd []byte ;_bbdf ,_afd :=_dbc (_ffee );if _afd !=nil {return _bfd ,_afd ;};return _fg .ReadAll (_bbdf );};var _ca *_ce .PublicKey ;var _baf map[string ]int ;func SetLicenseKey (content string ,customerName string )error {if _dgf {return nil ;};_dgg ,_fdf :=_aggd (content );if _fdf !=nil {_fb .Log .Error ("\u004c\u0069c\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u0020\u0064\u0065\u0063\u006f\u0064\u0065\u0020\u0065\u0072\u0072\u006f\u0072: \u0025\u0076",_fdf );return _fdf ;};if !_eg .EqualFold (_dgg .CustomerName ,customerName ){_fb .Log .Error ("L\u0069ce\u006es\u0065 \u0063\u006f\u0064\u0065\u0020i\u0073\u0073\u0075e\u0020\u002d\u0020\u0043\u0075s\u0074\u006f\u006de\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006da\u0074\u0063\u0068, e\u0078\u0070\u0065\u0063\u0074\u0065d\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u0062\u0075\u0074\u0020\u0067o\u0074 \u0027\u0025\u0073\u0027",_dgg .CustomerName ,customerName );return _cb .Errorf ("\u0063\u0075\u0073\u0074\u006fm\u0065\u0072\u0020\u006e\u0061\u006d\u0065\u0020\u006d\u0069\u0073\u006d\u0061t\u0063\u0068\u002c\u0020\u0065\u0078\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0027\u0025\u0073\u0027\u002c\u0020\u0062\u0075\u0074\u0020\u0067\u006f\u0074\u0020\u0027\u0025\u0073'",_dgg .CustomerName ,customerName );};_fdf =_dgg .Validate ();if _fdf !=nil {_fb .Log .Error ("\u004c\u0069\u0063\u0065\u006e\u0073e\u0020\u0063\u006f\u0064\u0065\u0020\u0076\u0061\u006c\u0069\u0064\u0061\u0074i\u006f\u006e\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_fdf );return _fdf ;};_egf =&_dgg ;return nil ;};func (_bgf defaultStateHolder )updateState (_feed ,_bbcfc ,_dcb string ,_aab int ,_aaa bool ,_afe int ,_cfcb int ,_edb _db .Time ,_dbdc map[string ]int )error {_gef :=_ddae ();if len (_gef )==0{return _aa .New ("\u0068\u006fm\u0065\u0020\u0064i\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_bag :=_cf .Join (_gef ,"\u002eu\u006e\u0069\u0064\u006f\u0063");_bgb :=_fe .MkdirAll (_bag ,0777);if _bgb !=nil {return _bgb ;};if len (_feed )< 20{return _aa .New ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006b\u0065\u0079");};_ace :=[]byte (_feed );_bad :=_agg .Sum512_256 (_ace [:20]);_fad :=_dc .EncodeToString (_bad [:]);_bfa :=_cf .Join (_bag ,_fad );var _fbb reportState ;_fbb .Docs =int64 (_aab );_fbb .NumErrors =int64 (_cfcb );_fbb .LimitDocs =_aaa ;_fbb .RemainingDocs =int64 (_afe );_fbb .LastWritten =_db .Now ().UTC ();_fbb .LastReported =_edb ;_fbb .Instance =_bbcfc ;_fbb .Next =_dcb ;_fbb .Usage =_dbdc ;_bea ,_bgb :=_fd .Marshal (_fbb );if _bgb !=nil {return _bgb ;};const _aac ="\u0068\u00619\u004e\u004b\u0038]\u0052\u0062\u004c\u002a\u006d\u0034\u004c\u004b\u0057";_bea ,_bgb =_fbba ([]byte (_aac ),_bea );if _bgb !=nil {return _bgb ;};_bgb =_fg .WriteFile (_bfa ,_bea ,0600);if _bgb !=nil {return _bgb ;};return nil ;};var _ece map[string ]struct{};type meteredUsageCheckinForm struct{Instance string `json:"inst"`;Next string `json:"next"`;UsageNumber int `json:"usage_number"`;NumFailed int64 `json:"num_failed"`;Hostname string `json:"hostname"`;LocalIP string `json:"local_ip"`;MacAddress string `json:"mac_address"`;Package string `json:"package"`;PackageVersion string `json:"package_version"`;Usage map[string ]int `json:"u"`;IsPersistentCache bool `json:"is_persistent_cache"`;Timestamp int64 `json:"timestamp"`;};func (_dbga *meteredClient )getStatus ()(meteredStatusResp ,error ){var _cfc meteredStatusResp ;_dfd :=_dbga ._gbc +"\u002fm\u0065t\u0065\u0072\u0065\u0064\u002f\u0073\u0074\u0061\u0074\u0075\u0073";var _dce meteredStatusForm ;_edd ,_efd :=_fd .Marshal (_dce );if _efd !=nil {return _cfc ,_efd ;};_gee ,_efd :=_aff (_edd );if _efd !=nil {return _cfc ,_efd ;};_de ,_efd :=_d .NewRequest ("\u0050\u004f\u0053\u0054",_dfd ,_gee );if _efd !=nil {return _cfc ,_efd ;};_de .Header .Add ("\u0043\u006f\u006et\u0065\u006e\u0074\u002d\u0054\u0079\u0070\u0065","\u0061\u0070p\u006c\u0069\u0063a\u0074\u0069\u006f\u006e\u002f\u006a\u0073\u006f\u006e");_de .Header .Add ("\u0043\u006fn\u0074\u0065\u006et\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_de .Header .Add ("\u0041c\u0063e\u0070\u0074\u002d\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067","\u0067\u007a\u0069\u0070");_de .Header .Add ("\u0058-\u0041\u0050\u0049\u002d\u004b\u0045Y",_dbga ._bga );_ccd ,_efd :=_dbga ._ddg .Do (_de );if _efd !=nil {return _cfc ,_efd ;};defer _ccd .Body .Close ();if _ccd .StatusCode !=200{return _cfc ,_cb .Errorf ("\u0066\u0061i\u006c\u0065\u0064\u0020t\u006f\u0020c\u0068\u0065\u0063\u006b\u0069\u006e\u002c\u0020s\u0074\u0061\u0074\u0075\u0073\u0020\u0063\u006f\u0064\u0065\u0020\u0069s\u003a\u0020\u0025\u0064",_ccd .StatusCode );};_bac ,_efd :=_gbf (_ccd );if _efd !=nil {return _cfc ,_efd ;};_efd =_fd .Unmarshal (_bac ,&_cfc );if _efd !=nil {return _cfc ,_efd ;};return _cfc ,nil ;};type LegacyLicense struct{Name string ;Signature string `json:",omitempty"`;Expiration _db .Time ;LicenseType LegacyLicenseType ;};func (_cfg *LicenseKey )TypeToString ()string {if _cfg ._gca {return "M\u0065t\u0065\u0072\u0065\u0064\u0020\u0073\u0075\u0062s\u0063\u0072\u0069\u0070ti\u006f\u006e";};if _cfg .Tier ==LicenseTierUnlicensed {return "\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";};if _cfg .Tier ==LicenseTierCommunity {return "\u0041\u0047PL\u0076\u0033\u0020O\u0070\u0065\u006e\u0020Sou\u0072ce\u0020\u0043\u006f\u006d\u006d\u0075\u006eit\u0079\u0020\u004c\u0069\u0063\u0065\u006es\u0065";};if _cfg .Tier ==LicenseTierIndividual ||_cfg .Tier =="\u0069\u006e\u0064i\u0065"{return "\u0043\u006f\u006dm\u0065\u0072\u0063\u0069a\u006c\u0020\u004c\u0069\u0063\u0065\u006es\u0065\u0020\u002d\u0020\u0049\u006e\u0064\u0069\u0076\u0069\u0064\u0075\u0061\u006c";};return "\u0043\u006fm\u006d\u0065\u0072\u0063\u0069\u0061\u006c\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u002d\u0020\u0042\u0075\u0073\u0069ne\u0073\u0073";};func (_ffd LegacyLicense )Verify (pubKey *_ce .PublicKey )error {_fef :=_ffd ;_fef .Signature ="";_ba :=_ea .Buffer {};_fga :=_fd .NewEncoder (&_ba );if _gbb :=_fga .Encode (_fef );_gbb !=nil {return _gbb ;};_eaed ,_ddd :=_dc .DecodeString (_ffd .Signature );if _ddd !=nil {return _ddd ;};_ffb :=_ac .Sum256 (_ba .Bytes ());_ddd =_ce .VerifyPKCS1v15 (pubKey ,_c .SHA256 ,_ffb [:],_eaed );return _ddd ;};func _ceb (_cg string ,_gc string ,_ddag string )(string ,error ){_cbfe :=_eg .Index (_ddag ,_cg );if _cbfe ==-1{return "",_cb .Errorf ("\u0068\u0065a\u0064\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_ab :=_eg .Index (_ddag ,_gc );if _ab ==-1{return "",_cb .Errorf ("\u0066\u006fo\u0074\u0065\u0072 \u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_dbe :=_cbfe +len (_cg )+1;return _ddag [_dbe :_ab -1],nil ;};func MakeUnlicensedKey ()*LicenseKey {_bce :=LicenseKey {};_bce .CustomerName ="\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064";_bce .Tier =LicenseTierUnlicensed ;_bce .CreatedAt =_db .Now ().UTC ();_bce .CreatedAtInt =_bce .CreatedAt .Unix ();return &_bce ;};func GetMeteredState ()(MeteredStatus ,error ){if _egf ==nil {return MeteredStatus {},_aa .New ("\u006c\u0069\u0063\u0065ns\u0065\u0020\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};if !_egf ._gca ||len (_egf ._gbg )==0{return MeteredStatus {},_aa .New ("\u0061p\u0069 \u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");};_gde ,_eea :=_ade .loadState (_egf ._gbg );if _eea !=nil {_fb .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eea );return MeteredStatus {},_eea ;};if _gde .Docs > 0{_dfb :=_egg ("","",true );if _dfb !=nil {return MeteredStatus {},_dfb ;};};_degb .Lock ();defer _degb .Unlock ();_abf :=_ddb ();_abf ._bga =_egf ._gbg ;_acdc ,_eea :=_abf .getStatus ();if _eea !=nil {return MeteredStatus {},_eea ;};if !_acdc .Valid {return MeteredStatus {},_aa .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_deg :=MeteredStatus {OK :true ,Credits :_acdc .OrgCredits ,Used :_acdc .OrgUsed };return _deg ,nil ;};func SetMeteredKeyPersistentCache (val bool ){_egf ._bed =val };type meteredStatusForm struct{};func (_ffe *LicenseKey )IsLicensed ()bool {if _ffe ==nil {return false ;};return _ffe .Tier !=LicenseTierUnlicensed ||_ffe ._gca ;};func Track (docKey string ,useKey string )error {return _egg (docKey ,useKey ,!_egf ._bed )};func init (){_bdg :=_fe .Getenv (_egfg );_eec :=_fe .Getenv (_cag );if len (_bdg )==0||len (_eec )==0{return ;};_ega ,_ddadg :=_fg .ReadFile (_bdg );if _ddadg !=nil {_fb .Log .Error ("\u0055\u006eab\u006c\u0065\u0020t\u006f\u0020\u0072\u0065ad \u006cic\u0065\u006e\u0073\u0065\u0020\u0063\u006fde\u0020\u0066\u0069\u006c\u0065\u003a\u0020%\u0076",_ddadg );return ;};_ddadg =SetLicenseKey (string (_ega ),_eec );if _ddadg !=nil {_fb .Log .Error ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u006c\u006f\u0061\u0064\u0020\u006ci\u0063\u0065\u006e\u0073\u0065\u0020\u0063\u006f\u0064\u0065\u003a\u0020\u0025\u0076",_ddadg );return ;};};func _edc ()(_a .IP ,error ){_bggb ,_dad :=_a .Dial ("\u0075\u0064\u0070","\u0038\u002e\u0038\u002e\u0038\u002e\u0038\u003a\u0038\u0030");if _dad !=nil {return nil ,_dad ;};defer _bggb .Close ();_bbb :=_bggb .LocalAddr ().(*_a .UDPAddr );return _bbb .IP ,nil ;};type MeteredStatus struct{OK bool ;Credits int64 ;Used int64 ;};var _acg =_db .Date (2010,1,1,0,0,0,0,_db .UTC );const (_gba ="\u002d\u002d\u002d--\u0042\u0045\u0047\u0049\u004e\u0020\u0055\u004e\u0049D\u004fC\u0020L\u0049C\u0045\u004e\u0053\u0045\u0020\u004b\u0045\u0059\u002d\u002d\u002d\u002d\u002d";_dcd ="\u002d\u002d\u002d\u002d\u002d\u0045\u004e\u0044\u0020\u0055\u004e\u0049\u0044\u004f\u0043 \u004cI\u0043\u0045\u004e\u0053\u0045\u0020\u004b\u0045\u0059\u002d\u002d\u002d\u002d\u002d";);func _ddad ()([]string ,[]string ,error ){_bgac ,_bgbd :=_a .Interfaces ();if _bgbd !=nil {return nil ,nil ,_bgbd ;};var _def []string ;var _abde []string ;for _ ,_bgfb :=range _bgac {if _bgfb .Flags &_a .FlagUp ==0||_ea .Equal (_bgfb .HardwareAddr ,nil ){continue ;};_gdf ,_cbfc :=_bgfb .Addrs ();if _cbfc !=nil {return nil ,nil ,_cbfc ;};_aedg :=0;for _ ,_bbd :=range _gdf {var _aba _a .IP ;switch _dbef :=_bbd .(type ){case *_a .IPNet :_aba =_dbef .IP ;case *_a .IPAddr :_aba =_dbef .IP ;};if _aba .IsLoopback (){continue ;};if _aba .To4 ()==nil {continue ;};_abde =append (_abde ,_aba .String ());_aedg ++;};_bfaa :=_bgfb .HardwareAddr .String ();if _bfaa !=""&&_aedg > 0{_def =append (_def ,_bfaa );};};return _def ,_abde ,nil ;};var _egf =MakeUnlicensedKey ();var _ade stateLoader =defaultStateHolder {};func SetMeteredKey (apiKey string )error {if len (apiKey )==0{_fb .Log .Error ("\u004d\u0065\u0074\u0065\u0072e\u0064\u0020\u004c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u0041\u0050\u0049 \u004b\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0065\u006d\u0070\u0074\u0079");_fb .Log .Error ("\u002d\u0020\u0047\u0072\u0061\u0062\u0020\u006f\u006e\u0065\u0020\u0069\u006e\u0020\u0074h\u0065\u0020\u0046\u0072\u0065\u0065\u0020\u0054\u0069\u0065\u0072\u0020\u0061t\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0063\u006c\u006fud\u002e\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");return _cb .Errorf ("\u006de\u0074\u0065\u0072e\u0064\u0020\u006ci\u0063en\u0073\u0065\u0020\u0061\u0070\u0069\u0020k\u0065\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u006e\u006f\u0074\u0020\u0062\u0065\u0020\u0065\u006d\u0070\u0074\u0079\u003a\u0020\u0063\u0072\u0065\u0061\u0074\u0065 o\u006ee\u0020\u0061\u0074\u0020\u0068\u0074t\u0070\u0073\u003a\u002f\u002fc\u006c\u006f\u0075\u0064\u002e\u0075\u006e\u0069\u0064\u006f\u0063.\u0069\u006f");};if _egf !=nil &&(_egf ._gca ||_egf .Tier !=LicenseTierUnlicensed ){_fb .Log .Error ("\u0045\u0052\u0052\u004f\u0052:\u0020\u0043\u0061\u006e\u006eo\u0074 \u0073\u0065\u0074\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0074\u0077\u0069c\u0065\u0020\u002d\u0020\u0053\u0068\u006f\u0075\u006c\u0064\u0020\u006a\u0075\u0073\u0074\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0069z\u0065\u0020\u006f\u006e\u0063\u0065");return _aa .New ("\u006c\u0069\u0063en\u0073\u0065\u0020\u006b\u0065\u0079\u0020\u0061\u006c\u0072\u0065\u0061\u0064\u0079\u0020\u0073\u0065\u0074");};_acd :=_ddb ();_acd ._bga =apiKey ;_ccbf ,_cce :=_acd .getStatus ();if _cce !=nil {return _cce ;};if !_ccbf .Valid {return _aa .New ("\u006b\u0065\u0079\u0020\u006e\u006f\u0074\u0020\u0076\u0061\u006c\u0069\u0064");};_ffed :=&LicenseKey {_gca :true ,_gbg :apiKey ,_bed :true };_egf =_ffed ;return nil ;};type LicenseKey struct{LicenseId string `json:"license_id"`;CustomerId string `json:"customer_id"`;CustomerName string `json:"customer_name"`;Tier string `json:"tier"`;CreatedAt _db .Time `json:"-"`;CreatedAtInt int64 `json:"created_at"`;ExpiresAt _db .Time `json:"-"`;ExpiresAtInt int64 `json:"expires_at"`;CreatedBy string `json:"created_by"`;CreatorName string `json:"creator_name"`;CreatorEmail string `json:"creator_email"`;UniPDF bool `json:"unipdf"`;UniOffice bool `json:"unioffice"`;UniHTML bool `json:"unihtml"`;Trial bool `json:"trial"`;_gca bool ;_gbg string ;_bed bool ;};func _ddae ()string {_cea :=_fe .Getenv ("\u0048\u004f\u004d\u0045");if len (_cea )==0{_cea ,_ =_fe .UserHomeDir ();};return _cea ;}; |