# compiler: R8
# compiler_version: 8.10.24
# common_typos_disable
# {"id":"com.android.tools.r8.mapping","version":"2.2"}
# pg_map_id: 00b32b6
# pg_map_hash: SHA-256 00b32b63c9f2f6331f4b159b019bce8e1ad073b4a07096c83fd492c80c9a6033
cn.thinkingdata.module.routes.RemoteConfigModuleRouter -> cn.thinkingdata.module.routes.RemoteConfigModuleRouter:
# {"id":"sourceFile","fileName":"RemoteConfigModuleRouter.java"}
    1:1:void <init>():7:7 -> <init>
    1:2:java.util.Map getRouterMap():9:10 -> getRouterMap
cn.thinkingdata.remoteconfig.BuildConfig -> cn.thinkingdata.remoteconfig.BuildConfig:
# {"id":"sourceFile","fileName":"BuildConfig.java"}
    1:1:void <init>():6:6 -> <init>
cn.thinkingdata.remoteconfig.TDRemoteConfig -> cn.thinkingdata.remoteconfig.TDRemoteConfig:
# {"id":"sourceFile","fileName":"TDRemoteConfig.java"}
    1:1:void <init>():22:22 -> <init>
    1:1:void accumulateNum(java.lang.String,double):147:147 -> accumulateNum
    2:2:void cn.thinkingdata.remoteconfig.task.TDClientValueManager.accumulateNum(java.lang.String,double):84:84 -> accumulateNum
    2:2:void accumulateNum(java.lang.String,double):147 -> accumulateNum
    1:1:void addClientParams(org.json.JSONObject):139:139 -> addClientParams
    2:2:void cn.thinkingdata.remoteconfig.task.TDClientValueManager.addClientParams(org.json.JSONObject):52:52 -> addClientParams
    2:2:void addClientParams(org.json.JSONObject):139 -> addClientParams
    1:3:void addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):125:127 -> addConfigFetchListener
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener,java.lang.String):230:230 -> addConfigFetchListener
    4:4:void addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):127 -> addConfigFetchListener
    5:5:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):181:181 -> addConfigFetchListener
    5:5:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener,java.lang.String):232 -> addConfigFetchListener
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    5:5:void addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):127 -> addConfigFetchListener
    6:8:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):181:183 -> addConfigFetchListener
    6:8:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener,java.lang.String):232 -> addConfigFetchListener
    6:8:void addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):127 -> addConfigFetchListener
    1:3:void clearDefaultValues():40:42 -> clearDefaultValues
    4:6:void clearDefaultValues(java.lang.String):46:48 -> clearDefaultValues
    1:1:void cn.thinkingdata.remoteconfig.utils.LogUtil.setEnableLog(boolean):16:16 -> enableLog
    1:1:void enableLog(boolean):25 -> enableLog
    1:1:void fetch():109:109 -> fetch
    2:2:void fetch(java.lang.String,java.lang.String):113:113 -> fetch
    1:2:java.lang.Object getClientParamValueForKey(java.lang.String):151:151 -> getClientParamValueForKey
    3:3:java.lang.Object cn.thinkingdata.remoteconfig.task.TDClientValueManager.get(java.lang.String):106:106 -> getClientParamValueForKey
    3:3:java.lang.Object getClientParamValueForKey(java.lang.String):151 -> getClientParamValueForKey
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:7:java.lang.Object cn.thinkingdata.remoteconfig.task.TDClientValueManager.get(java.lang.String):106:109 -> getClientParamValueForKey
    4:7:java.lang.Object getClientParamValueForKey(java.lang.String):151 -> getClientParamValueForKey
    1:1:org.json.JSONObject getClientParams():155:155 -> getClientParams
    2:2:org.json.JSONObject cn.thinkingdata.remoteconfig.task.TDClientValueManager.getAllClientParams():113:113 -> getClientParams
    2:2:org.json.JSONObject getClientParams():155 -> getClientParams
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    3:12:org.json.JSONObject cn.thinkingdata.remoteconfig.task.TDClientValueManager.getAllClientParams():113:122 -> getClientParams
    3:12:org.json.JSONObject getClientParams():155 -> getClientParams
    1:1:cn.thinkingdata.remoteconfig.core.TDObject getData():96:96 -> getData
    2:7:cn.thinkingdata.remoteconfig.core.TDObject getData(java.lang.String,java.lang.String):100:105 -> getData
    1:1:java.lang.String getSDKVersion():131:131 -> getSDKVersion
    1:4:void init(android.content.Context,java.lang.String,java.lang.String):29:32 -> init
    5:14:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):80:89 -> init
    5:14:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):36 -> init
    15:15:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.initAsync(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):101:101 -> init
    15:15:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):91 -> init
    15:15:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):36 -> init
    16:16:boolean cn.thinkingdata.remoteconfig.core.TDRemoteInstance.addNewTemplateCode(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):130:130 -> init
    16:16:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):93 -> init
    16:16:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):36 -> init
    17:17:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.initAsync(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):101:101 -> init
    17:17:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):94 -> init
    17:17:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):36 -> init
    18:18:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):97:97 -> init
    18:18:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):36 -> init
    19:34:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):82:97 -> init
    19:34:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):36 -> init
    1:1:void removeClientParam(java.lang.String):143:143 -> removeClientParam
    2:2:void cn.thinkingdata.remoteconfig.task.TDClientValueManager.removeClientParam(java.lang.String):70:70 -> removeClientParam
    2:2:void removeClientParam(java.lang.String):143 -> removeClientParam
    1:1:void removeCustomFetchParam(java.lang.String):86:86 -> removeCustomFetchParam
    2:2:void removeCustomFetchParam(java.lang.String,java.lang.String,java.lang.String):90:90 -> removeCustomFetchParam
    3:5:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.removeCustomFetchParams(java.lang.String,java.lang.String):211:213 -> removeCustomFetchParam
    3:5:void removeCustomFetchParam(java.lang.String,java.lang.String,java.lang.String):92 -> removeCustomFetchParam
    1:1:void setCustomFetchParams(org.json.JSONObject):76:76 -> setCustomFetchParams
    2:2:void setCustomFetchParams(org.json.JSONObject,java.lang.String,java.lang.String):80:80 -> setCustomFetchParams
    3:5:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.setCustomParams(org.json.JSONObject,java.lang.String):199:201 -> setCustomFetchParams
    3:5:void setCustomFetchParams(org.json.JSONObject,java.lang.String,java.lang.String):82 -> setCustomFetchParams
    1:3:void setDefaultValues(java.lang.String):52:54 -> setDefaultValues
    4:6:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.applyDefaultParams(java.lang.String,java.lang.String):238:240 -> setDefaultValues
    4:6:void setDefaultValues(java.lang.String):54 -> setDefaultValues
    7:9:void setDefaultValues(java.lang.String,java.lang.String):58:60 -> setDefaultValues
    10:12:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.applyDefaultParams(java.lang.String,java.lang.String):238:240 -> setDefaultValues
    10:12:void setDefaultValues(java.lang.String,java.lang.String):60 -> setDefaultValues
    13:13:void setDefaultValues(org.json.JSONObject):64:64 -> setDefaultValues
    14:16:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.applyDefaultParams(org.json.JSONObject,java.lang.String):223:225 -> setDefaultValues
    14:16:void setDefaultValues(org.json.JSONObject):66 -> setDefaultValues
    17:17:void setDefaultValues(org.json.JSONObject,java.lang.String):70:70 -> setDefaultValues
    18:20:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.applyDefaultParams(org.json.JSONObject,java.lang.String):223:225 -> setDefaultValues
    18:20:void setDefaultValues(org.json.JSONObject,java.lang.String):72 -> setDefaultValues
cn.thinkingdata.remoteconfig.TDRemoteConfig$1 -> cn.thinkingdata.remoteconfig.a:
# {"id":"sourceFile","fileName":"TDRemoteConfig.java"}
    java.lang.String val$appId -> a
    java.lang.String val$tempCode -> b
    1:1:void <init>(java.lang.String,java.lang.String):113:113 -> <init>
    1:3:void run():116:118 -> run
cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener -> cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener:
# {"id":"sourceFile","fileName":"TDRemoteConfig.java"}
cn.thinkingdata.remoteconfig.TDRemoteConfigSettings -> cn.thinkingdata.remoteconfig.TDRemoteConfigSettings:
# {"id":"sourceFile","fileName":"TDRemoteConfigSettings.java"}
    1:3:void <init>():18:20 -> <init>
    1:1:org.json.JSONObject getCustomFetchParams():27:27 -> getCustomFetchParams
    1:1:void setCustomFetchParams(org.json.JSONObject):23:23 -> setCustomFetchParams
cn.thinkingdata.remoteconfig.TDRemoteConfigSettings$TDRemoteConfigMode -> cn.thinkingdata.remoteconfig.TDRemoteConfigSettings$TDRemoteConfigMode:
# {"id":"sourceFile","fileName":"TDRemoteConfigSettings.java"}
    1:1:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings$TDRemoteConfigMode[] $values():31:31 -> $values
    1:2:void <clinit>():32:33 -> <clinit>
    3:3:void <clinit>():31:31 -> <clinit>
    1:1:void <init>(java.lang.String,int):31:31 -> <init>
    1:1:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings$TDRemoteConfigMode valueOf(java.lang.String):31:31 -> valueOf
    1:1:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings$TDRemoteConfigMode[] values():31:31 -> values
cn.thinkingdata.remoteconfig.adapter.RCNetWorkReceiverAdapter -> cn.thinkingdata.remoteconfig.adapter.a:
# {"id":"sourceFile","fileName":"RCNetWorkReceiverAdapter.java"}
    1:1:void <init>():18:18 -> <init>
    1:1:void onCapabilitiesChanged(android.net.Network,android.net.NetworkCapabilities):31:31 -> onCapabilitiesChanged
    2:3:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance$5.onNetWorkChanged():278:279 -> onCapabilitiesChanged
    2:3:void onCapabilitiesChanged(android.net.Network,android.net.NetworkCapabilities):31 -> onCapabilitiesChanged
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.tryFetch():286:286 -> onCapabilitiesChanged
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance$5.onNetWorkChanged():279 -> onCapabilitiesChanged
    4:4:void onCapabilitiesChanged(android.net.Network,android.net.NetworkCapabilities):31 -> onCapabilitiesChanged
    1:1:void onChange():36:36 -> onChange
    2:3:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance$5.onNetWorkChanged():278:279 -> onChange
    2:3:void onChange():36 -> onChange
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.tryFetch():286:286 -> onChange
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance$5.onNetWorkChanged():279 -> onChange
    4:4:void onChange():36 -> onChange
cn.thinkingdata.remoteconfig.core.TDAppSetting -> cn.thinkingdata.remoteconfig.core.b:
# {"id":"sourceFile","fileName":"TDAppSetting.java"}
    cn.thinkingdata.remoteconfig.sp.AppStoragePlugin mAppStoragePlugin -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/a;"}
    java.util.Map templateConfigSettings -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashMap;"}
    java.lang.String appId -> c
    android.content.Context mContext -> d
    java.lang.String currentClientUserId -> e
    boolean hasInitApp -> f
    1:1:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):46:46 -> <init>
    2:11:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):40:49 -> <init>
    1:6:boolean addTemplateCode(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):112:117 -> a
    7:13:cn.thinkingdata.remoteconfig.core.TDTemplateSetting getTemplateSetting(java.lang.String):121:127 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)Lcn/thinkingdata/remoteconfig/core/n;"}
    14:27:void updateAppConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):165:178 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/model/a;)V"}
    1:3:void initAppInfoAsync(java.lang.String):53:55 -> b
    4:8:java.lang.String getAccountId():149:153 -> b
    4:8:void initAppInfoAsync(java.lang.String):55 -> b
    9:13:java.lang.String getDistinctId():157:161 -> b
    9:13:void initAppInfoAsync(java.lang.String):55 -> b
    14:18:void initAppInfoAsync(java.lang.String):55:59 -> b
    19:21:void clearUserId():198:200 -> b
    19:21:void initAppInfoAsync(java.lang.String):60 -> b
    22:31:void initAppInfoAsync(java.lang.String):61:70 -> b
    32:32:java.lang.String cn.thinkingdata.remoteconfig.utils.RemoteConfigUtil.MD5(java.lang.String):195:195 -> b
    32:32:void initAppInfoAsync(java.lang.String):70 -> b
    33:41:void initAppInfoAsync(java.lang.String):70:78 -> b
    42:54:void cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.deleteAccountByLimit():144:156 -> b
    42:54:void initAppInfoAsync(java.lang.String):78 -> b
    55:55:void initAppInfoAsync(java.lang.String):79:79 -> b
    56:62:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.initTemplateInfoAsync():86:92 -> b
    56:62:void initAppInfoAsync(java.lang.String):81 -> b
    63:63:void initAppInfoAsync(java.lang.String):83:83 -> b
cn.thinkingdata.remoteconfig.core.TDAppSetting$1 -> cn.thinkingdata.remoteconfig.core.a:
# {"id":"sourceFile","fileName":"TDAppSetting.java"}
    cn.thinkingdata.remoteconfig.core.TDAppSetting this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/b;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDAppSetting):91:91 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/b;)V"}
    1:5:void run():95:99 -> run
    6:6:java.lang.String cn.thinkingdata.remoteconfig.utils.RemoteConfigUtil.MD5(java.lang.String):195:195 -> run
    6:6:void run():99 -> run
    7:7:void run():99:99 -> run
cn.thinkingdata.remoteconfig.core.TDObject -> cn.thinkingdata.remoteconfig.core.TDObject:
# {"id":"sourceFile","fileName":"TDObject.java"}
    1:5:void <init>(android.util.Pair):26:30 -> <init>
    6:9:void <init>(java.lang.Object):34:37 -> <init>
    1:4:org.json.JSONArray arrayValue():195:198 -> arrayValue
    1:14:cn.thinkingdata.remoteconfig.core.TDObject arrayWithFilter(cn.thinkingdata.remoteconfig.core.TDObject$IFilter):111:124 -> arrayWithFilter
    1:4:java.lang.Boolean booleanValue():170:173 -> booleanValue
    1:4:java.lang.String configValue():206:209 -> configValue
    1:8:java.lang.Double doubleValue():154:161 -> doubleValue
    1:11:cn.thinkingdata.remoteconfig.core.TDObject get(java.lang.String,java.lang.Object):41:51 -> get
    12:12:cn.thinkingdata.remoteconfig.core.TDObject get(java.lang.String):85:85 -> get
    13:25:cn.thinkingdata.remoteconfig.core.TDObject get(int,java.lang.Object):89:101 -> get
    26:26:cn.thinkingdata.remoteconfig.core.TDObject get(int):107:107 -> get
    1:15:java.lang.Object getDefaultValue():57:71 -> getDefaultValue
    1:6:java.lang.Long longValue():140:145 -> longValue
    1:4:org.json.JSONObject objectValue():183:186 -> objectValue
    1:5:java.lang.String stringValue():130:134 -> stringValue
cn.thinkingdata.remoteconfig.core.TDObject$IFilter -> cn.thinkingdata.remoteconfig.core.TDObject$IFilter:
# {"id":"sourceFile","fileName":"TDObject.java"}
cn.thinkingdata.remoteconfig.core.TDRemoteConfigSettingsParent -> cn.thinkingdata.remoteconfig.core.c:
# {"id":"sourceFile","fileName":"TDRemoteConfigSettingsParent.java"}
    1:1:void <init>():16:16 -> <init>
cn.thinkingdata.remoteconfig.core.TDRemoteInstance -> cn.thinkingdata.remoteconfig.core.l:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    boolean isRegisterNetWorkReceiver -> a
    android.content.Context mContext -> b
    cn.thinkingdata.remoteconfig.core.TDAppSetting mAppSetting -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/b;"}
    java.util.List tempNetStatusList -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    java.util.Map sInstances -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashMap;"}
    java.lang.String defaultAppId -> f
    1:18:void <clinit>():50:67 -> <clinit>
    1:1:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):60:60 -> <init>
    2:12:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):53:63 -> <init>
    1:1:void fetchWithTempCode(java.lang.String,int,boolean):123:123 -> a
    2:2:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    2:2:void fetchWithTempCode(java.lang.String,int,boolean):123 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    3:4:void fetchWithTempCode(java.lang.String,int,boolean):123:124 -> a
    5:9:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAccountId():149:153 -> a
    5:9:void fetchWithTempCode(java.lang.String,int,boolean):124 -> a
    10:10:void fetchWithTempCode(java.lang.String,int,boolean):124:124 -> a
    11:15:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getDistinctId():157:161 -> a
    11:15:void fetchWithTempCode(java.lang.String,int,boolean):124 -> a
    16:16:java.lang.String getClientUserId():195:195 -> a
    16:16:void fetchWithTempCode(java.lang.String,int,boolean):124 -> a
    17:17:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getClientUserId():108:108 -> a
    17:17:java.lang.String getClientUserId():195 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    17:17:void fetchWithTempCode(java.lang.String,int,boolean):124 -> a
    18:23:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():184:189 -> a
    18:23:void fetchWithTempCode(java.lang.String,int,boolean):124 -> a
    24:26:void cn.thinkingdata.remoteconfig.core.TDAppSetting.clearUserId():198:200 -> a
    24:26:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():190 -> a
    24:26:void fetchWithTempCode(java.lang.String,int,boolean):124 -> a
    27:30:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():191:194 -> a
    27:30:void fetchWithTempCode(java.lang.String,int,boolean):124 -> a
    31:32:void fetchWithTempCode(java.lang.String,int,boolean):124:125 -> a
    33:33:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    33:33:void fetchWithTempCode(java.lang.String,int,boolean):125 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    34:35:void fetchWithTempCode(java.lang.String,int,boolean):125:126 -> a
    36:36:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):138:138 -> a
    37:37:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isDebug():82:82 -> a
    37:37:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.addRequestCount():344 -> a
    37:37:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):140 -> a
    38:38:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.addRequestCount():345:345 -> a
    38:38:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):140 -> a
    39:47:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):141:149 -> a
    48:48:java.lang.String cn.thinkingdata.remoteconfig.utils.RemoteConfigUtil.calculateSHA256(java.lang.String,java.lang.String):41:41 -> a
    48:48:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):149 -> a
    49:49:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):150:150 -> a
    50:50:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    50:50:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):150 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    51:52:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):150:151 -> a
    53:53:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getServerUrl(java.lang.String):141:141 -> a
    53:53:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):152 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    54:54:java.lang.String cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getServerUrl():96:96 -> a
    54:54:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getServerUrl(java.lang.String):143 -> a
    54:54:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):152 -> a
    55:55:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getServerUrl(java.lang.String):145:145 -> a
    55:55:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):152 -> a
    56:60:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):152:156 -> a
    61:64:java.lang.String cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getTempCode():75:78 -> a
    61:64:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):157 -> a
    65:66:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):157:158 -> a
    67:67:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    67:67:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):159 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    68:71:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):159:162 -> a
    72:72:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    72:72:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):162 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    73:83:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):162:172 -> a
    84:84:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    84:84:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):172 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    85:85:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):172:172 -> a
    86:88:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.removeSystemErrorTask(java.lang.String,java.lang.String):144:146 -> a
    86:88:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):172 -> a
    89:99:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):176:186 -> a
    100:100:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    100:100:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):186 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    101:101:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):186:186 -> a
    102:104:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.removeSystemErrorTask(java.lang.String,java.lang.String):144:146 -> a
    102:104:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):186 -> a
    105:105:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):182:182 -> a
    106:107:void cn.thinkingdata.remoteconfig.utils.LogUtil.e(java.lang.String,java.lang.Throwable):62:63 -> a
    106:107:void fetchSync(java.lang.String,int,org.json.JSONObject,boolean):190 -> a
    108:108:void clearDefaultParams(java.lang.String):258:258 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()V"}
    109:109:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.clearDefaultParams():204:204 -> a
    109:109:void clearDefaultParams(java.lang.String):260 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    111:117:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.clearDefaultParams():206:212 -> a
    111:117:void clearDefaultParams(java.lang.String):260 -> a
    118:118:void cn.thinkingdata.remoteconfig.core.TDAppSetting.updateLastModifyFile():91:91 -> a
    118:118:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.clearDefaultParams():212 -> a
    118:118:void clearDefaultParams(java.lang.String):260 -> a
    119:122:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.clearDefaultParams():211:214 -> a
    119:122:void clearDefaultParams(java.lang.String):260 -> a
    123:123:android.util.Pair getAll(java.lang.String):265:265 -> a
    124:124:android.util.Pair cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getAll():298:298 -> a
    124:124:android.util.Pair getAll(java.lang.String):267 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    125:130:android.util.Pair cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getAll():299:304 -> a
    125:130:android.util.Pair getAll(java.lang.String):267 -> a
    131:131:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isStrategyNoExpired():316:316 -> a
    131:131:android.util.Pair cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getAll():305 -> a
    131:131:android.util.Pair getAll(java.lang.String):267 -> a
    132:136:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isExpired():323:327 -> a
    132:136:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isStrategyNoExpired():319 -> a
    132:136:android.util.Pair cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getAll():305 -> a
    132:136:android.util.Pair getAll(java.lang.String):267 -> a
    137:140:android.util.Pair cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getAll():306:309 -> a
    137:140:android.util.Pair getAll(java.lang.String):267 -> a
    141:141:android.util.Pair getAll(java.lang.String):269:269 -> a
    1:6:cn.thinkingdata.remoteconfig.core.TDRemoteInstance getInstance(java.lang.String):71:76 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)Lcn/thinkingdata/remoteconfig/core/l;"}
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$1 -> cn.thinkingdata.remoteconfig.core.d:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    cn.thinkingdata.remoteconfig.TDRemoteConfigSettings val$configSettings -> a
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):101:101 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/l;Lcn/thinkingdata/remoteconfig/TDRemoteConfigSettings;)V"}
    1:2:void run():104:105 -> run
    3:3:void cn.thinkingdata.remoteconfig.utils.SpUtils.init(android.content.Context):27:27 -> run
    3:3:void run():105 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:4:void cn.thinkingdata.remoteconfig.utils.SpUtils.init(android.content.Context):28:28 -> run
    4:4:void run():105 -> run
    5:8:void run():106:109 -> run
    9:12:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.addNewConfigs(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):75:78 -> run
    9:12:void run():109 -> run
    13:14:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startDebugTimerTask():94:95 -> run
    13:14:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.addNewConfigs(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):79 -> run
    13:14:void run():109 -> run
    15:16:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.addNewConfigs(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):81:82 -> run
    15:16:void run():109 -> run
    17:18:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startNormalTimerTask():88:89 -> run
    17:18:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.addNewConfigs(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):83 -> run
    17:18:void run():109 -> run
    19:19:void run():110:110 -> run
    20:20:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.registerNetWorkObserver():273:273 -> run
    20:20:void run():110 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    21:22:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.registerNetWorkObserver():274:275 -> run
    21:22:void run():110 -> run
    23:28:void run():112:117 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$2 -> cn.thinkingdata.remoteconfig.core.e:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    cn.thinkingdata.remoteconfig.core.TDTemplateSetting val$templateSetting -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/n;"}
    org.json.JSONObject val$params -> b
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,org.json.JSONObject):201:201 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/n;Lorg/json/JSONObject;)V"}
    1:1:void run():204:204 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$3 -> cn.thinkingdata.remoteconfig.core.f:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    cn.thinkingdata.remoteconfig.core.TDTemplateSetting val$templateSetting -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/n;"}
    java.lang.String val$key -> b
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,java.lang.String):213:213 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/n;Ljava/lang/String;)V"}
    1:2:void run():216:216 -> run
    3:3:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.removeCustomParams(java.lang.String):137:137 -> run
    3:3:void run():216 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:4:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.removeCustomParams(java.lang.String):137:137 -> run
    4:4:void run():216 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$4 -> cn.thinkingdata.remoteconfig.core.g:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    java.lang.String val$filePath -> a
    cn.thinkingdata.remoteconfig.core.TDTemplateSetting val$templateSetting -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/n;"}
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting):240:240 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/l;Ljava/lang/String;Lcn/thinkingdata/remoteconfig/core/n;)V"}
    1:2:void run():244:245 -> run
    3:14:java.lang.String cn.thinkingdata.remoteconfig.utils.JsonUtil.getJsonFromPath(java.lang.String):194:205 -> run
    3:14:void run():245 -> run
    15:17:void run():245:247 -> run
    18:32:java.lang.String cn.thinkingdata.remoteconfig.utils.JsonUtil.getJsonFromAssets(java.lang.String,android.content.Context):176:190 -> run
    18:32:void run():247 -> run
    33:36:void run():247:250 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$5 -> cn.thinkingdata.remoteconfig.core.h:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance):275:275 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/l;)V"}
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$6 -> cn.thinkingdata.remoteconfig.core.i:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance):286:286 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/l;)V"}
    1:5:void run():289:293 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$7 -> cn.thinkingdata.remoteconfig.core.k:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    java.lang.String val$accountId -> a
    java.lang.String val$distinctId -> b
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,java.lang.String,java.lang.String):300:300 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/l;Ljava/lang/String;Ljava/lang/String;)V"}
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$7$1 -> cn.thinkingdata.remoteconfig.core.j:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    java.lang.String val$clientUserId -> a
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance$7 this$1 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/k;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance$7,java.lang.String):303:303 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/k;Ljava/lang/String;)V"}
    1:1:void run():306:306 -> run
    2:2:boolean cn.thinkingdata.remoteconfig.core.TDAppSetting.hasInitApp():87:87 -> run
    2:2:void run():306 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    3:3:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> run
    3:3:void run():307 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:5:void run():307:308 -> run
    6:6:void cn.thinkingdata.remoteconfig.core.TDAppSetting.clearUserId():198:198 -> run
    6:6:void run():308 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    7:8:void cn.thinkingdata.remoteconfig.core.TDAppSetting.clearUserId():199:200 -> run
    7:8:void run():308 -> run
    9:9:void run():309:309 -> run
    10:10:boolean cn.thinkingdata.remoteconfig.core.TDAppSetting.isFirstChangeAccount():204:204 -> run
    10:10:void run():309 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    11:11:boolean cn.thinkingdata.remoteconfig.core.TDAppSetting.isFirstChangeAccount():205:205 -> run
    11:11:void run():309 -> run
    12:12:void run():310:310 -> run
    13:13:boolean cn.thinkingdata.remoteconfig.core.TDAppSetting.isChangeAccount(java.lang.String,java.lang.String):209:209 -> run
    13:13:void run():310 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    14:25:boolean cn.thinkingdata.remoteconfig.core.TDAppSetting.isChangeAccount(java.lang.String,java.lang.String):210:221 -> run
    14:25:void run():310 -> run
    26:27:void run():312:313 -> run
    28:28:java.util.Map cn.thinkingdata.remoteconfig.core.TDAppSetting.getTemplateConfigSettings():131:131 -> run
    28:28:void run():313 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    29:30:java.util.Map cn.thinkingdata.remoteconfig.core.TDAppSetting.getTemplateConfigSettings():131:132 -> run
    29:30:void run():313 -> run
    31:37:void run():313:319 -> run
    38:38:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.removeDelayTemplateMessage():107:107 -> run
    38:38:void run():319 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    39:39:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.removeDelayTemplateMessage():107:107 -> run
    39:39:void run():319 -> run
    40:40:void run():320:320 -> run
    41:41:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> run
    41:41:void run():320 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    42:44:void run():320:322 -> run
    45:45:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():184:184 -> run
    45:45:void run():322 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    46:51:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():184:189 -> run
    46:51:void run():322 -> run
    52:54:void cn.thinkingdata.remoteconfig.core.TDAppSetting.clearUserId():198:200 -> run
    52:54:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():190 -> run
    52:54:void run():322 -> run
    55:58:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():191:194 -> run
    55:58:void run():322 -> run
    59:60:void run():322:323 -> run
    61:61:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> run
    61:61:void run():323 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    62:63:void run():323:324 -> run
    64:64:java.util.Map cn.thinkingdata.remoteconfig.core.TDAppSetting.getTemplateConfigSettings():133:133 -> run
    64:64:void run():313 -> run
cn.thinkingdata.remoteconfig.core.TDTemplateSetting -> cn.thinkingdata.remoteconfig.core.n:
# {"id":"sourceFile","fileName":"TDTemplateSetting.java"}
    cn.thinkingdata.remoteconfig.TDRemoteConfigSettings mConfigSettings -> a
    java.lang.String serverUrl -> b
    java.lang.Object mStoragePluginObj -> c
    cn.thinkingdata.remoteconfig.sp.RemoteConfigStoragePlugin mStoragePlugin -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/b;"}
    java.util.Map customParams -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashMap;"}
    org.json.JSONObject defaultParams -> f
    long expiration_time -> g
    java.lang.Object applyConfigsObj -> h
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lorg/json/JSONObject;"}
    org.json.JSONObject applyConfigs -> i
    java.lang.String activationStrategy -> j
    java.lang.String mConfigMd5 -> k
    int requestControlCount -> l
    long lastFetchTime -> m
    long lastFetchStamp -> n
    android.content.Context mContext -> o
    cn.thinkingdata.remoteconfig.core.TDAppSetting mAppSetting -> p
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/b;"}
    java.util.List mFetchListener -> q
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    android.os.Handler mHandler -> r
    boolean hasSendDebugEvent -> s
    1:1:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings,cn.thinkingdata.remoteconfig.core.TDAppSetting):67:67 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Landroid/content/Context;Lcn/thinkingdata/remoteconfig/TDRemoteConfigSettings;Lcn/thinkingdata/remoteconfig/core/b;)V"}
    2:27:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings,cn.thinkingdata.remoteconfig.core.TDAppSetting):46:71 -> <init>
    1:1:boolean isDebug():82:82 -> a
    1:1:void uploadDebugEvent(int):384 -> a
    2:4:void uploadDebugEvent(int):385:387 -> a
    5:18:void cn.thinkingdata.remoteconfig.utils.AnalyticUtil.trackDebugFailEvent(java.lang.String,int):38:51 -> a
    5:18:void uploadDebugEvent(int):387 -> a
    19:24:void checkTemplateStoragePluginSafe():100:105 -> a
    25:25:void checkTemplateStoragePluginSafe():105:105 -> a
    26:26:void mergeCustomParams(org.json.JSONObject):128:128 -> a
    27:32:void cn.thinkingdata.remoteconfig.utils.JsonUtil.mergeJsonToMap(org.json.JSONObject,java.util.Map):130:135 -> a
    27:32:void mergeCustomParams(org.json.JSONObject):128 -> a
    33:33:void mergeCustomParams(org.json.JSONObject):129:129 -> a
    34:35:void cn.thinkingdata.remoteconfig.utils.LogUtil.i1(java.lang.String,java.lang.Object[]):32:33 -> a
    34:35:void mergeCustomParams(org.json.JSONObject):129 -> a
    36:36:void mergeCustomParams(org.json.JSONObject):131:131 -> a
    37:37:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):219:219 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/model/a;)V"}
    38:38:boolean isDebug():82:82 -> a
    38:38:void updateLastFetchTime():363 -> a
    38:38:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):220 -> a
    39:43:void updateLastFetchTime():364:368 -> a
    39:43:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):220 -> a
    44:66:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):221:243 -> a
    67:67:void cn.thinkingdata.remoteconfig.core.TDAppSetting.updateLastModifyFile():91:91 -> a
    67:67:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):243 -> a
    68:68:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):245:245 -> a
    69:69:boolean isDebug():82:82 -> a
    69:69:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):247 -> a
    70:76:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):247:253 -> a
    77:90:void cn.thinkingdata.remoteconfig.utils.AnalyticUtil.trackClientDebugEvent(java.lang.String,org.json.JSONObject):58:71 -> a
    77:90:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):253 -> a
    91:107:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):254:270 -> a
    108:108:java.lang.String getClientUserId():294:294 -> a
    108:108:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):270 -> a
    109:109:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getClientUserId():108:108 -> a
    109:109:java.lang.String getClientUserId():294 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    109:109:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):270 -> a
    110:119:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):270:279 -> a
    120:120:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):269:269 -> a
    1:6:void mergeDefaultParams(org.json.JSONObject):188:193 -> b
    7:8:void cn.thinkingdata.remoteconfig.utils.LogUtil.i1(java.lang.String,java.lang.Object[]):32:33 -> b
    7:8:void mergeDefaultParams(org.json.JSONObject):193 -> b
    9:12:void mergeDefaultParams(org.json.JSONObject):194:197 -> b
    13:13:void cn.thinkingdata.remoteconfig.core.TDAppSetting.updateLastModifyFile():91:91 -> b
    13:13:void mergeDefaultParams(org.json.JSONObject):197 -> b
    14:17:void mergeDefaultParams(org.json.JSONObject):196:199 -> b
    18:23:void clearOldConfig():335:340 -> b
    24:24:void cn.thinkingdata.remoteconfig.core.TDAppSetting.updateLastModifyFile():91:91 -> b
    24:24:void clearOldConfig():340 -> b
    25:25:void clearOldConfig():337:337 -> b
    1:5:void downGradeMode():375:379 -> c
    6:6:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.debugTaskToNormal(cn.thinkingdata.remoteconfig.task.TimerTaskInfo):150:150 -> c
    6:6:void downGradeMode():379 -> c
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    7:14:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.debugTaskToNormal(cn.thinkingdata.remoteconfig.task.TimerTaskInfo):150:157 -> c
    7:14:void downGradeMode():379 -> c
    15:16:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startNormalTimerTask():88:89 -> c
    15:16:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.debugTaskToNormal(cn.thinkingdata.remoteconfig.task.TimerTaskInfo):158 -> c
    15:16:void downGradeMode():379 -> c
    1:1:boolean isDebug():82:82 -> d
    1:1:boolean isRequestControl():349 -> d
    2:7:boolean isRequestControl():350:355 -> d
    8:11:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.sendFetchControlDelayTask(cn.thinkingdata.remoteconfig.task.TimerTaskInfo):100:103 -> d
    8:11:boolean isRequestControl():355 -> d
    1:29:void loadDefaultAndApplyParams():146:174 -> e
    1:4:void parseServerUrl():111:114 -> f
    5:12:void parseServerUrl():114:121 -> f
cn.thinkingdata.remoteconfig.core.TDTemplateSetting$1 -> cn.thinkingdata.remoteconfig.core.m:
# {"id":"sourceFile","fileName":"TDTemplateSetting.java"}
    org.json.JSONObject val$statusJson -> a
    cn.thinkingdata.remoteconfig.core.TDTemplateSetting this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/n;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDTemplateSetting,org.json.JSONObject):279:279 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/n;Lorg/json/JSONObject;)V"}
    1:5:void run():282:286 -> run
    6:6:void run():286:286 -> run
cn.thinkingdata.remoteconfig.model.TDNetModel -> cn.thinkingdata.remoteconfig.model.a:
# {"id":"sourceFile","fileName":"TDNetModel.java"}
    int code -> a
    java.lang.String msg -> b
    org.json.JSONObject data -> c
    long timeStamp -> d
    1:1:void <init>():14:14 -> <init>
cn.thinkingdata.remoteconfig.plugin.RemoteConfigPlugin -> cn.thinkingdata.remoteconfig.plugin.RemoteConfigPlugin:
# {"id":"sourceFile","fileName":"RemoteConfigPlugin.java"}
    1:1:void <init>():24:24 -> <init>
    1:15:void onMethodCall(cn.thinkingdata.core.router.plugin.MethodCall):29:43 -> onMethodCall
cn.thinkingdata.remoteconfig.receiver.RemoteConfigLifecycleCallBack -> cn.thinkingdata.remoteconfig.receiver.a:
# {"id":"sourceFile","fileName":"RemoteConfigLifecycleCallBack.java"}
    java.util.List activityList -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    1:3:void <init>():19:21 -> <init>
    1:3:void onActivityStarted(android.app.Activity):30:32 -> onActivityStarted
    4:4:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.handlePageCycleUpdate():173:173 -> onActivityStarted
    4:4:void onActivityStarted(android.app.Activity):32 -> onActivityStarted
    5:7:void onActivityStarted(android.app.Activity):34:36 -> onActivityStarted
    1:4:void onActivityStopped(android.app.Activity):51:54 -> onActivityStopped
    5:5:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.handlePageCycleUpdate():173:173 -> onActivityStopped
    5:5:void onActivityStopped(android.app.Activity):54 -> onActivityStopped
cn.thinkingdata.remoteconfig.receiver.TDRemoteConfigObservable -> cn.thinkingdata.remoteconfig.receiver.TDRemoteConfigObservable:
# {"id":"sourceFile","fileName":"TDRemoteConfigObservable.java"}
    1:2:void <init>():22:23 -> <init>
    1:3:void addObserver(cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver):39:41 -> addObserver
    4:4:void addObserver(cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver):41:41 -> addObserver
    1:8:cn.thinkingdata.remoteconfig.receiver.TDRemoteConfigObservable getInstance():27:34 -> getInstance
    1:7:void notifyOnChangeAccount(java.lang.String,java.lang.String,java.lang.String):51:57 -> notifyOnChangeAccount
    8:8:void notifyOnChangeAccount(java.lang.String,java.lang.String,java.lang.String):57:57 -> notifyOnChangeAccount
    1:7:void notifyOnConfigApplySuccess(java.lang.String,java.lang.String,java.lang.String):71:77 -> notifyOnConfigApplySuccess
    8:8:void notifyOnConfigApplySuccess(java.lang.String,java.lang.String,java.lang.String):77:77 -> notifyOnConfigApplySuccess
    1:7:void notifyOnConfigExpired(java.lang.String,java.lang.String,java.lang.String):61:67 -> notifyOnConfigExpired
    8:8:void notifyOnConfigExpired(java.lang.String,java.lang.String,java.lang.String):67:67 -> notifyOnConfigExpired
    1:3:void removeObserver(cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver):45:47 -> removeObserver
    4:4:void removeObserver(cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver):47:47 -> removeObserver
cn.thinkingdata.remoteconfig.receiver.TDRemoteConfigObserver -> cn.thinkingdata.remoteconfig.receiver.b:
# {"id":"sourceFile","fileName":"TDRemoteConfigObserver.java"}
    1:1:void <init>():15:15 -> <init>
    1:1:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):38:38 -> a
    2:2:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.doChangeAccount(java.lang.String,java.lang.String):299:299 -> a
    2:2:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):40 -> a
    3:3:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    3:3:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.doChangeAccount(java.lang.String,java.lang.String):299 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    3:3:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):40 -> a
    4:5:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.doChangeAccount(java.lang.String,java.lang.String):299:300 -> a
    4:5:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):40 -> a
    6:6:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    6:6:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.doChangeAccount(java.lang.String,java.lang.String):300 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    6:6:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):40 -> a
    7:7:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.doChangeAccount(java.lang.String,java.lang.String):300:300 -> a
    7:7:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):40 -> a
    1:1:void onDistinctIdReceived(java.lang.String,java.lang.String,java.lang.String):29:29 -> onDistinctIdReceived
    1:1:void onLoginReceived(java.lang.String,java.lang.String,java.lang.String):24:24 -> onLoginReceived
    1:1:void onLogoutReceived(java.lang.String,java.lang.String):34:34 -> onLogoutReceived
cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver -> cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver:
# {"id":"sourceFile","fileName":"TDRemoteStatusObserver.java"}
cn.thinkingdata.remoteconfig.sp.AppStoragePlugin -> cn.thinkingdata.remoteconfig.sp.a:
# {"id":"sourceFile","fileName":"AppStoragePlugin.java"}
    cn.thinkingdata.remoteconfig.sp.StorageLocalUserId storageLocalUserId -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/i;"}
    cn.thinkingdata.remoteconfig.sp.StorageUserIdExpiredTime storageUserIdExpiredTime -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/j;"}
    cn.thinkingdata.remoteconfig.sp.StorageLastClientUserId storageFetchClientUserId -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/e;"}
    cn.thinkingdata.remoteconfig.sp.StorageLastAccountId storageLastAccountId -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/d;"}
    cn.thinkingdata.remoteconfig.sp.StorageLastModify storageLastModify -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/h;"}
    1:1:void <init>(android.content.Context,java.lang.String):25:25 -> <init>
    1:5:void createStorage(android.content.Context):30:34 -> createStorage
    1:9:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):41:49 -> getSharePreferenceStorage
    10:14:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):43:47 -> getSharePreferenceStorage
    15:15:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):45:45 -> getSharePreferenceStorage
cn.thinkingdata.remoteconfig.sp.RemoteConfigStoragePlugin -> cn.thinkingdata.remoteconfig.sp.b:
# {"id":"sourceFile","fileName":"RemoteConfigStoragePlugin.java"}
    cn.thinkingdata.remoteconfig.sp.StorageLastFetchConfig storageLastFetchConfig -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/f;"}
    cn.thinkingdata.remoteconfig.sp.StorageDefaultConfig storageDefaultConfig -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/c;"}
    cn.thinkingdata.remoteconfig.sp.StorageLastFetchTime storageLastFetchTime -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/g;"}
    1:1:void <init>(android.content.Context,java.lang.String,java.lang.String):25:25 -> <init>
    2:4:void loadStorage(android.content.Context,java.lang.String):30:32 -> <init>
    2:4:void <init>(android.content.Context,java.lang.String,java.lang.String):26 -> <init>
    1:1:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):45:45 -> getSharePreferenceStorage
    2:6:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):43:47 -> getSharePreferenceStorage
cn.thinkingdata.remoteconfig.sp.StorageDefaultConfig -> cn.thinkingdata.remoteconfig.sp.c:
# {"id":"sourceFile","fileName":"StorageDefaultConfig.java"}
    1:1:void <init>(java.util.concurrent.Future,java.lang.String):22:22 -> <init>
    1:1:java.lang.Object create():19:19 -> create
cn.thinkingdata.remoteconfig.sp.StorageLastAccountId -> cn.thinkingdata.remoteconfig.sp.d:
# {"id":"sourceFile","fileName":"StorageLastAccountId.java"}
    1:1:void <init>(java.util.concurrent.Future):19:19 -> <init>
    1:1:java.lang.Object create():16:16 -> create
cn.thinkingdata.remoteconfig.sp.StorageLastClientUserId -> cn.thinkingdata.remoteconfig.sp.e:
# {"id":"sourceFile","fileName":"StorageLastClientUserId.java"}
    1:1:void <init>(java.util.concurrent.Future):21:21 -> <init>
    1:1:java.lang.Object create():18:18 -> create
cn.thinkingdata.remoteconfig.sp.StorageLastFetchConfig -> cn.thinkingdata.remoteconfig.sp.f:
# {"id":"sourceFile","fileName":"StorageLastFetchConfig.java"}
    1:1:void <init>(java.util.concurrent.Future,java.lang.String):22:22 -> <init>
    1:1:java.lang.Object create():19:19 -> create
cn.thinkingdata.remoteconfig.sp.StorageLastFetchTime -> cn.thinkingdata.remoteconfig.sp.g:
# {"id":"sourceFile","fileName":"StorageLastFetchTime.java"}
    1:1:void <init>(java.util.concurrent.Future,java.lang.String):19:19 -> <init>
    1:1:void load(android.content.SharedPreferences):30:30 -> load
    1:1:void save(android.content.SharedPreferences$Editor,java.lang.Object):16:16 -> save
    2:3:void save(android.content.SharedPreferences$Editor,java.lang.Long):24:25 -> save
    2:3:void save(android.content.SharedPreferences$Editor,java.lang.Object):16 -> save
cn.thinkingdata.remoteconfig.sp.StorageLastModify -> cn.thinkingdata.remoteconfig.sp.h:
# {"id":"sourceFile","fileName":"StorageLastModify.java"}
    1:1:void <init>(java.util.concurrent.Future):19:19 -> <init>
    1:1:java.lang.Object create():16:16 -> create
cn.thinkingdata.remoteconfig.sp.StorageLocalUserId -> cn.thinkingdata.remoteconfig.sp.i:
# {"id":"sourceFile","fileName":"StorageLocalUserId.java"}
    1:1:void <init>(java.util.concurrent.Future):20:20 -> <init>
    1:1:void load(android.content.SharedPreferences):31:31 -> load
    1:1:void save(android.content.SharedPreferences$Editor,java.lang.Object):17:17 -> save
    2:3:void save(android.content.SharedPreferences$Editor,java.lang.String):25:26 -> save
    2:3:void save(android.content.SharedPreferences$Editor,java.lang.Object):17 -> save
cn.thinkingdata.remoteconfig.sp.StorageUserIdExpiredTime -> cn.thinkingdata.remoteconfig.sp.j:
# {"id":"sourceFile","fileName":"StorageUserIdExpiredTime.java"}
    1:1:void <init>(java.util.concurrent.Future):22:22 -> <init>
    1:1:void load(android.content.SharedPreferences):33:33 -> load
    1:1:void save(android.content.SharedPreferences$Editor,java.lang.Object):19:19 -> save
    2:3:void save(android.content.SharedPreferences$Editor,java.lang.Long):27:28 -> save
    2:3:void save(android.content.SharedPreferences$Editor,java.lang.Object):19 -> save
cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager -> cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager:
# {"id":"sourceFile","fileName":"SystemConfigManager.java"}
    1:1:void <init>():36:36 -> <init>
    2:3:void <init>():33:34 -> <init>
    1:6:cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager getInstance():41:46 -> getInstance
    1:7:boolean isFindAppIdConfig(java.lang.String):57:63 -> isFindAppIdConfig
    8:8:boolean isFindAppIdConfig(java.lang.String):63:63 -> isFindAppIdConfig
    1:1:boolean isRCCStop(java.lang.String):129:129 -> isRCCStop
    1:5:boolean isStop(java.lang.String,java.lang.String,java.lang.String):137:141 -> isStop
    6:10:boolean isStop(java.lang.String,java.lang.String,java.lang.String):141:145 -> isStop
    1:1:boolean isStrategyStop(java.lang.String,java.lang.String):133:133 -> isStrategyStop
    1:2:void loadLocalConfig(java.lang.String,java.lang.String):50:51 -> loadLocalConfig
    3:3:java.lang.String cn.thinkingdata.remoteconfig.utils.SpUtils.getString(java.lang.String,java.lang.String):45:45 -> loadLocalConfig
    3:3:void loadLocalConfig(java.lang.String,java.lang.String):51 -> loadLocalConfig
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:4:java.lang.String cn.thinkingdata.remoteconfig.utils.SpUtils.getString(java.lang.String,java.lang.String):46:46 -> loadLocalConfig
    4:4:void loadLocalConfig(java.lang.String,java.lang.String):51 -> loadLocalConfig
    5:6:void loadLocalConfig(java.lang.String,java.lang.String):52:53 -> loadLocalConfig
    1:6:void loadRemoteSystemConfig(java.lang.String,java.lang.String):97:102 -> loadRemoteSystemConfig
    7:13:void loadRemoteSystemConfig(java.lang.String,java.lang.String):102:108 -> loadRemoteSystemConfig
    1:20:void parseSystemConfig(java.lang.String,java.lang.String):69:88 -> parseSystemConfig
    21:25:void parseSystemConfig(java.lang.String,java.lang.String):88:92 -> parseSystemConfig
cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager$1 -> cn.thinkingdata.remoteconfig.sysconfig.a:
# {"id":"sourceFile","fileName":"SystemConfigManager.java"}
    java.lang.String val$appId -> a
    cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager this$0 -> b
    1:1:void <init>(cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager,java.lang.String):108:108 -> <init>
    1:4:void onSuccess(cn.thinkingdata.core.network.TDNetResponse):117:120 -> onSuccess
cn.thinkingdata.remoteconfig.sysconfig.SystemConfigModel -> cn.thinkingdata.remoteconfig.sysconfig.b:
# {"id":"sourceFile","fileName":"SystemConfigModel.java"}
    java.lang.String appId -> a
    java.lang.String plat -> b
    boolean disabled -> c
    java.util.List disabledVersionList -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    1:1:void <init>():12:12 -> <init>
cn.thinkingdata.remoteconfig.task.RemoteTaskManager -> cn.thinkingdata.remoteconfig.task.b:
# {"id":"sourceFile","fileName":"RemoteTaskManager.java"}
    java.util.concurrent.ExecutorService mPool -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/concurrent/ThreadPoolExecutor;"}
    cn.thinkingdata.remoteconfig.task.RemoteTaskManager instance -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/b;"}
    1:2:void <init>():22:23 -> <init>
    1:6:cn.thinkingdata.remoteconfig.task.RemoteTaskManager getInstance():34:39 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/remoteconfig/task/b;"}
    7:9:void addTask(java.lang.Runnable):44:46 -> a
cn.thinkingdata.remoteconfig.task.RemoteTaskManager$1 -> cn.thinkingdata.remoteconfig.task.a:
# {"id":"sourceFile","fileName":"RemoteTaskManager.java"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTaskManager):25:25 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"()V"}
    1:1:java.lang.Thread newThread(java.lang.Runnable):28:28 -> newThread
cn.thinkingdata.remoteconfig.task.RemoteTimerTask -> cn.thinkingdata.remoteconfig.task.h:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    android.os.Handler mHandler -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/g;"}
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask$OnTimerTaskListener mTimerTaskListener -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/f;"}
    java.util.List normalTasks -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    java.util.List debugTasks -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    boolean hasRegisterActivityLifeCycle -> e
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask instance -> f
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/h;"}
    1:1:void <init>():55:55 -> <init>
    2:19:void <init>():46:63 -> <init>
    1:4:cn.thinkingdata.remoteconfig.task.RemoteTimerTask getInstance():49:52 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/remoteconfig/task/h;"}
    5:8:void registerActivityLifeCycle(android.content.Context):67:70 -> a
cn.thinkingdata.remoteconfig.task.RemoteTimerTask$1 -> cn.thinkingdata.remoteconfig.task.c:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/h;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTimerTask):173:173 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/h;)V"}
    1:5:void run():176:180 -> run
    6:6:cn.thinkingdata.remoteconfig.core.TDTemplateSetting cn.thinkingdata.remoteconfig.core.TDRemoteInstance.getTemplateSetting(java.lang.String):134:134 -> run
    6:6:void run():180 -> run
    7:7:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isFetchExpired():331:331 -> run
    7:7:void run():182 -> run
    8:8:void run():183:183 -> run
cn.thinkingdata.remoteconfig.task.RemoteTimerTask$2 -> cn.thinkingdata.remoteconfig.task.d:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    int val$type -> a
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/h;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTimerTask,int):191:191 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/h;I)V"}
    1:9:void run():196:204 -> run
    10:10:cn.thinkingdata.remoteconfig.core.TDTemplateSetting cn.thinkingdata.remoteconfig.core.TDRemoteInstance.getTemplateSetting(java.lang.String):134:134 -> run
    10:10:void run():204 -> run
    11:15:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isExpired():323:327 -> run
    11:15:void run():206 -> run
    16:16:void run():208:208 -> run
    17:17:java.lang.String cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getClientUserId():294:294 -> run
    17:17:void run():208 -> run
    18:18:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getClientUserId():108:108 -> run
    18:18:java.lang.String cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getClientUserId():294 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    18:18:void run():208 -> run
    19:22:void run():208:211 -> run
cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener -> cn.thinkingdata.remoteconfig.task.f:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/h;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTimerTask):218:218 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/h;)V"}
cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener$1 -> cn.thinkingdata.remoteconfig.task.e:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    cn.thinkingdata.remoteconfig.task.TimerTaskInfo val$info -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/m;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener,cn.thinkingdata.remoteconfig.task.TimerTaskInfo):231:231 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/m;)V"}
    1:4:void run():234:237 -> run
cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TimerHandler -> cn.thinkingdata.remoteconfig.task.g:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/h;"}
    1:2:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTimerTask,android.os.Looper):111:112 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/h;Landroid/os/Looper;)V"}
    1:17:void handleMessage(android.os.Message):117:133 -> handleMessage
    18:18:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onControlDelay(cn.thinkingdata.remoteconfig.task.TimerTaskInfo):231:231 -> handleMessage
    18:18:void handleMessage(android.os.Message):134 -> handleMessage
    19:19:void handleMessage(android.os.Message):126:126 -> handleMessage
    20:20:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskDebug():226:226 -> handleMessage
    20:20:void handleMessage(android.os.Message):127 -> handleMessage
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    21:21:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskDebug():226:226 -> handleMessage
    21:21:void handleMessage(android.os.Message):127 -> handleMessage
    22:22:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.handleTimerTasks(int):191:191 -> handleMessage
    22:22:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskDebug():226 -> handleMessage
    22:22:void handleMessage(android.os.Message):127 -> handleMessage
    23:23:void handleMessage(android.os.Message):129:129 -> handleMessage
    24:24:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startDebugTimerTask():94:94 -> handleMessage
    24:24:void handleMessage(android.os.Message):129 -> handleMessage
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    25:26:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startDebugTimerTask():94:95 -> handleMessage
    25:26:void handleMessage(android.os.Message):129 -> handleMessage
    27:27:void handleMessage(android.os.Message):120:120 -> handleMessage
    28:28:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskNormal():221:221 -> handleMessage
    28:28:void handleMessage(android.os.Message):121 -> handleMessage
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    29:29:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskNormal():221:221 -> handleMessage
    29:29:void handleMessage(android.os.Message):121 -> handleMessage
    30:30:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.handleTimerTasks(int):191:191 -> handleMessage
    30:30:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskNormal():221 -> handleMessage
    30:30:void handleMessage(android.os.Message):121 -> handleMessage
    31:31:void handleMessage(android.os.Message):123:123 -> handleMessage
    32:32:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startNormalTimerTask():88:88 -> handleMessage
    32:32:void handleMessage(android.os.Message):123 -> handleMessage
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    33:34:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startNormalTimerTask():88:89 -> handleMessage
    33:34:void handleMessage(android.os.Message):123 -> handleMessage
cn.thinkingdata.remoteconfig.task.TDClientValueManager -> cn.thinkingdata.remoteconfig.task.l:
# {"id":"sourceFile","fileName":"TDClientValueManager.java"}
    org.json.JSONObject mClientValueParams -> a
    java.lang.Object mClientValueObj -> b
    cn.thinkingdata.remoteconfig.task.TDClientValueManager instance -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/l;"}
    1:1:void <init>():20:20 -> <init>
    2:2:void <init>():16:16 -> <init>
    1:8:cn.thinkingdata.remoteconfig.task.TDClientValueManager getInstance():25:32 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/remoteconfig/task/l;"}
    1:3:void loadLocalClientParams():36:38 -> b
    4:4:java.lang.String cn.thinkingdata.remoteconfig.utils.SpUtils.getString(java.lang.String,java.lang.String):45:45 -> b
    4:4:void loadLocalClientParams():38 -> b
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    5:5:java.lang.String cn.thinkingdata.remoteconfig.utils.SpUtils.getString(java.lang.String,java.lang.String):46:46 -> b
    5:5:void loadLocalClientParams():38 -> b
    6:10:void loadLocalClientParams():38:42 -> b
    11:15:java.lang.String cn.thinkingdata.remoteconfig.utils.SpUtils.getOldStrategyValue():60:64 -> b
    11:15:void loadLocalClientParams():42 -> b
    16:18:void loadLocalClientParams():42:44 -> b
cn.thinkingdata.remoteconfig.task.TDClientValueManager$1 -> cn.thinkingdata.remoteconfig.task.i:
# {"id":"sourceFile","fileName":"TDClientValueManager.java"}
    org.json.JSONObject val$params -> a
    cn.thinkingdata.remoteconfig.task.TDClientValueManager this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.TDClientValueManager,org.json.JSONObject):52:52 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/l;Lorg/json/JSONObject;)V"}
    1:9:void run():55:63 -> run
    10:10:void run():63:63 -> run
cn.thinkingdata.remoteconfig.task.TDClientValueManager$2 -> cn.thinkingdata.remoteconfig.task.j:
# {"id":"sourceFile","fileName":"TDClientValueManager.java"}
    java.lang.String val$key -> a
    cn.thinkingdata.remoteconfig.task.TDClientValueManager this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.TDClientValueManager,java.lang.String):70:70 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/l;Ljava/lang/String;)V"}
    1:5:void run():73:77 -> run
    6:6:void run():77:77 -> run
cn.thinkingdata.remoteconfig.task.TDClientValueManager$3 -> cn.thinkingdata.remoteconfig.task.k:
# {"id":"sourceFile","fileName":"TDClientValueManager.java"}
    java.lang.String val$key -> a
    double val$num -> b
    cn.thinkingdata.remoteconfig.task.TDClientValueManager this$0 -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.TDClientValueManager,java.lang.String,double):84:84 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/l;Ljava/lang/String;D)V"}
    1:12:void run():87:98 -> run
    13:13:void run():98:98 -> run
cn.thinkingdata.remoteconfig.task.TimerTaskInfo -> cn.thinkingdata.remoteconfig.task.m:
# {"id":"sourceFile","fileName":"TimerTaskInfo.java"}
    java.lang.String appId -> a
    java.lang.String tempCode -> b
    boolean isDebug -> c
    1:3:void <init>(java.lang.String,java.lang.String):17:19 -> <init>
    1:3:boolean equals(java.lang.Object):24:26 -> equals
cn.thinkingdata.remoteconfig.user.ClientUser -> cn.thinkingdata.remoteconfig.user.a:
# {"id":"sourceFile","fileName":"ClientUser.java"}
    java.lang.String accountId -> a
    java.lang.String distinctId -> b
    java.lang.String clientUserId -> c
    1:1:void <init>():15:15 -> <init>
    1:12:cn.thinkingdata.remoteconfig.user.ClientUser parseCursor(android.database.Cursor):26:37 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Landroid/database/Cursor;)Lcn/thinkingdata/remoteconfig/user/a;"}
cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper -> cn.thinkingdata.remoteconfig.user.b:
# {"id":"sourceFile","fileName":"ClientUserIdDataBaseHelper.java"}
    java.io.File dbFile -> a
    cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper mHelper -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/user/b;"}
    1:2:void <init>(android.content.Context):46:47 -> <init>
    1:1:cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper getHelper(android.content.Context):39:39 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Landroid/content/Context;)Lcn/thinkingdata/remoteconfig/user/b;"}
    2:2:boolean isDatabaseExists(java.io.File):139:139 -> a
    2:2:cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper getHelper(android.content.Context):39 -> a
    3:5:cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper getHelper(android.content.Context):40:42 -> a
    6:13:cn.thinkingdata.remoteconfig.user.ClientUser findUserByDistinctId(java.lang.String,java.lang.String):102:109 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Ljava/lang/String;)Lcn/thinkingdata/remoteconfig/user/a;"}
    14:17:cn.thinkingdata.remoteconfig.user.ClientUser findUserByDistinctId(java.lang.String,java.lang.String):106:109 -> a
    18:20:cn.thinkingdata.remoteconfig.user.ClientUser findUserByDistinctId(java.lang.String,java.lang.String):109:111 -> a
    1:1:void onCreate(android.database.sqlite.SQLiteDatabase):52:52 -> onCreate
cn.thinkingdata.remoteconfig.user.ClientUserManager -> cn.thinkingdata.remoteconfig.user.ClientUserManager:
# {"id":"sourceFile","fileName":"ClientUserManager.java"}
    1:3:void <init>(android.content.Context):32:34 -> <init>
    1:1:void createNewUser(java.lang.String,java.lang.String,java.lang.String,java.lang.String):126:126 -> createNewUser
    2:17:void cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.insertNewUser(cn.thinkingdata.remoteconfig.user.ClientUser):62:77 -> createNewUser
    2:17:void createNewUser(java.lang.String,java.lang.String,java.lang.String,java.lang.String):126 -> createNewUser
    1:1:java.lang.String generateClientUserId():130:130 -> generateClientUserId
    1:1:void getClientUserId(java.lang.String,java.lang.String,java.lang.String,cn.thinkingdata.remoteconfig.user.ClientUserManager$OnGetClientUserIdCallBack):100:100 -> getClientUserId
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcn/thinkingdata/remoteconfig/user/f;)V"}
    2:2:java.util.concurrent.Future getClientUserId(java.lang.String,java.lang.String,java.lang.String):112:112 -> getClientUserId
    1:11:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):56:66 -> getClientUserIdSync
    12:19:cn.thinkingdata.remoteconfig.user.ClientUser cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.findUserByAccountId(java.lang.String,java.lang.String):85:92 -> getClientUserIdSync
    12:19:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):66 -> getClientUserIdSync
    20:20:cn.thinkingdata.remoteconfig.user.ClientUser cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.findUserByAccountId(java.lang.String,java.lang.String):89:89 -> getClientUserIdSync
    20:20:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):66 -> getClientUserIdSync
    21:31:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):67:77 -> getClientUserIdSync
    32:37:void cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.updateAccountId(java.lang.String,java.lang.String,java.lang.String):117:122 -> getClientUserIdSync
    32:37:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):77 -> getClientUserIdSync
    38:49:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):78:89 -> getClientUserIdSync
    50:55:void cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.updateDistinctId(java.lang.String,java.lang.String,java.lang.String):128:133 -> getClientUserIdSync
    50:55:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):89 -> getClientUserIdSync
    56:59:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):91:94 -> getClientUserIdSync
    60:62:cn.thinkingdata.remoteconfig.user.ClientUser cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.findUserByAccountId(java.lang.String,java.lang.String):92:94 -> getClientUserIdSync
    60:62:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):66 -> getClientUserIdSync
    1:8:cn.thinkingdata.remoteconfig.user.ClientUserManager getInstance(android.content.Context):45:52 -> getInstance
cn.thinkingdata.remoteconfig.user.ClientUserManager$1 -> cn.thinkingdata.remoteconfig.user.c:
# {"id":"sourceFile","fileName":"ClientUserManager.java"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.user.ClientUserManager):36:36 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"()V"}
    1:1:java.lang.Thread newThread(java.lang.Runnable):39:39 -> newThread
cn.thinkingdata.remoteconfig.user.ClientUserManager$2 -> cn.thinkingdata.remoteconfig.user.d:
# {"id":"sourceFile","fileName":"ClientUserManager.java"}
    java.lang.String val$appId -> a
    java.lang.String val$accountId -> b
    java.lang.String val$distinctId -> c
    cn.thinkingdata.remoteconfig.user.ClientUserManager$OnGetClientUserIdCallBack val$callBack -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/user/f;"}
    cn.thinkingdata.remoteconfig.user.ClientUserManager this$0 -> e
    1:1:void <init>(cn.thinkingdata.remoteconfig.user.ClientUserManager,java.lang.String,java.lang.String,java.lang.String,cn.thinkingdata.remoteconfig.user.ClientUserManager$OnGetClientUserIdCallBack):100:100 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/user/ClientUserManager;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcn/thinkingdata/remoteconfig/user/f;)V"}
    1:3:void run():103:105 -> run
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance$7.onClientUserIdSuccess(java.lang.String):303:303 -> run
    4:4:void run():105 -> run
cn.thinkingdata.remoteconfig.user.ClientUserManager$3 -> cn.thinkingdata.remoteconfig.user.e:
# {"id":"sourceFile","fileName":"ClientUserManager.java"}
    java.lang.String val$appId -> a
    java.lang.String val$accountId -> b
    java.lang.String val$distinctId -> c
    cn.thinkingdata.remoteconfig.user.ClientUserManager this$0 -> d
    1:1:void <init>(cn.thinkingdata.remoteconfig.user.ClientUserManager,java.lang.String,java.lang.String,java.lang.String):112:112 -> <init>
    1:1:java.lang.String call():115:115 -> call
    1:1:java.lang.Object call():112 -> call
cn.thinkingdata.remoteconfig.user.ClientUserManager$OnGetClientUserIdCallBack -> cn.thinkingdata.remoteconfig.user.f:
# {"id":"sourceFile","fileName":"ClientUserManager.java"}
cn.thinkingdata.remoteconfig.user.TDUserInfo -> cn.thinkingdata.remoteconfig.user.g:
# {"id":"sourceFile","fileName":"TDUserInfo.java"}
    java.lang.String accountId -> a
    java.lang.String distinctId -> b
    java.lang.String clientUserId -> c
    java.lang.String userId -> d
    1:5:void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String):17:21 -> <init>
cn.thinkingdata.remoteconfig.utils.AnalyticUtil -> cn.thinkingdata.remoteconfig.utils.a:
# {"id":"sourceFile","fileName":"AnalyticUtil.java"}
    1:1:cn.thinkingdata.core.router.provider.IAnalyticsProvider getAnalyticProvider():22:22 -> a
    2:12:void trackRiskEvent(java.lang.String,java.lang.String):78:88 -> a
    1:5:long getCurrentTimeStamp():29:33 -> b
cn.thinkingdata.remoteconfig.utils.JsonUtil -> cn.thinkingdata.remoteconfig.utils.b:
# {"id":"sourceFile","fileName":"JsonUtil.java"}
    1:10:void mergeJSONObject(org.json.JSONObject,org.json.JSONObject):39:48 -> a
    11:21:org.json.JSONArray formatJSONArray(org.json.JSONArray):65:75 -> a
    22:38:org.json.JSONObject formatJSONObject(org.json.JSONObject):84:100 -> a
    1:12:void parseJsonConfig(org.json.JSONObject,org.json.JSONObject):210:221 -> b
    13:32:org.json.JSONObject parseConfigToJson(org.json.JSONObject):247:266 -> b
cn.thinkingdata.remoteconfig.utils.LogUtil -> cn.thinkingdata.remoteconfig.utils.c:
# {"id":"sourceFile","fileName":"LogUtil.java"}
    boolean mEnableLog -> a
    1:2:void e(java.lang.String):56:57 -> a
    1:2:void i(java.lang.String):26:27 -> b
cn.thinkingdata.remoteconfig.utils.RemoteConfigUtil -> cn.thinkingdata.remoteconfig.utils.d:
# {"id":"sourceFile","fileName":"RemoteConfigUtil.java"}
    1:14:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings copyNewSettings(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):45:58 -> a
    1:14:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings buildSettings(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):80 -> a
    15:21:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings buildSettings(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):81:87 -> a
    22:22:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings buildSettings(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):82:82 -> a
    23:27:java.util.List copyNewTimerTasks(java.util.List):68:72 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/util/ArrayList;)Ljava/util/ArrayList;"}
    28:35:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):93:100 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Landroid/content/Context;Ljava/lang/String;Lcn/thinkingdata/remoteconfig/core/n;Lcn/thinkingdata/remoteconfig/user/g;)Lorg/json/JSONObject;"}
    36:39:java.lang.String cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getTempCode():75:78 -> a
    36:39:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):100 -> a
    40:66:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):100:126 -> a
    67:77:java.lang.String getStrategySDKVersion():199:209 -> a
    67:77:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):126 -> a
    78:84:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):126:132 -> a
    85:85:java.util.Map cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getCustomParams():141:141 -> a
    85:85:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):133 -> a
    86:91:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):134:139 -> a
    92:117:cn.thinkingdata.remoteconfig.model.TDNetModel toNetModel(cn.thinkingdata.core.network.TDNetResponse,java.lang.String):146:171 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/core/network/TDNetResponse;Ljava/lang/String;)Lcn/thinkingdata/remoteconfig/model/a;"}
    118:118:java.lang.String calculateSHA256(java.lang.String,java.lang.String):41:41 -> a
    118:118:cn.thinkingdata.remoteconfig.model.TDNetModel toNetModel(cn.thinkingdata.core.network.TDNetResponse,java.lang.String):172 -> a
    119:127:cn.thinkingdata.remoteconfig.model.TDNetModel toNetModel(cn.thinkingdata.core.network.TDNetResponse,java.lang.String):173:181 -> a
    128:150:cn.thinkingdata.remoteconfig.model.TDNetModel toNetModel(cn.thinkingdata.core.network.TDNetResponse,java.lang.String):167:189 -> a
cn.thinkingdata.remoteconfig.utils.SpUtils -> cn.thinkingdata.remoteconfig.utils.e:
# {"id":"sourceFile","fileName":"SpUtils.java"}
    android.content.SharedPreferences sp -> a
    cn.thinkingdata.remoteconfig.utils.SpUtils instance -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/utils/e;"}
    1:1:void <init>():23:23 -> <init>
    1:4:cn.thinkingdata.remoteconfig.utils.SpUtils getInstance():33:36 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/remoteconfig/utils/e;"}
    5:6:void putString(java.lang.String,java.lang.String):40:41 -> a
