openrune: just about finish rework, gets to login
@@ -52,6 +52,8 @@ import net.runelite.client.util.DeferredEventBus;
|
||||
import net.runelite.client.util.ExecutorServiceExceptionLogger;
|
||||
import net.runelite.http.api.chat.ChatClient;
|
||||
import okhttp3.OkHttpClient;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@AllArgsConstructor
|
||||
public class RuneLiteModule extends AbstractModule
|
||||
@@ -87,6 +89,10 @@ public class RuneLiteModule extends AbstractModule
|
||||
bind(EventBus.class)
|
||||
.annotatedWith(Names.named("Deferred EventBus"))
|
||||
.to(DeferredEventBus.class);
|
||||
|
||||
bind(Logger.class)
|
||||
.annotatedWith(Names.named("Core Logger"))
|
||||
.toInstance(LoggerFactory.getLogger(RuneLite.class));
|
||||
}
|
||||
|
||||
@Provides
|
||||
|
||||
@@ -85,7 +85,6 @@ import net.runelite.api.Player;
|
||||
import net.runelite.api.coords.WorldPoint;
|
||||
import net.runelite.api.events.PlayerChanged;
|
||||
import net.runelite.api.events.UsernameChanged;
|
||||
import net.runelite.api.events.WorldChanged;
|
||||
import net.runelite.client.RuneLite;
|
||||
import net.runelite.client.account.AccountSession;
|
||||
import net.runelite.client.eventbus.EventBus;
|
||||
@@ -1043,12 +1042,6 @@ public class ConfigManager
|
||||
updateRSProfile();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void onWorldChanged(WorldChanged ev)
|
||||
{
|
||||
updateRSProfile();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void onPlayerChanged(PlayerChanged ev)
|
||||
{
|
||||
|
||||
@@ -27,7 +27,6 @@ package net.runelite.client.config;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
|
||||
import java.awt.Font;
|
||||
|
||||
@Getter
|
||||
|
||||
@@ -109,8 +109,8 @@ public class MenuManager
|
||||
{
|
||||
for (MenuEntry menuEntry : client.getMenuEntries())
|
||||
{
|
||||
String option = menuEntry.getOption();
|
||||
String target = menuEntry.getTarget();
|
||||
String option = menuEntry.getMenuOption();
|
||||
String target = menuEntry.getMenuTarget();
|
||||
|
||||
if (option.equals(customMenuOption.getMenuOption()) && target.equals(customMenuOption.getMenuTarget()))
|
||||
{
|
||||
@@ -128,7 +128,7 @@ public class MenuManager
|
||||
return;
|
||||
}
|
||||
|
||||
int widgetId = event.getActionParam1();
|
||||
int widgetId = event.getWidgetId();
|
||||
Collection<WidgetMenuOption> options = managedMenuOptions.get(widgetId);
|
||||
|
||||
for (WidgetMenuOption currentMenu : options)
|
||||
@@ -139,9 +139,9 @@ public class MenuManager
|
||||
menuEntries = Arrays.copyOf(menuEntries, menuEntries.length + 1);
|
||||
|
||||
MenuEntry menuEntry = menuEntries[menuEntries.length - 1] = new MenuEntry();
|
||||
menuEntry.setOption(currentMenu.getMenuOption());
|
||||
menuEntry.setParam1(widgetId);
|
||||
menuEntry.setTarget(currentMenu.getMenuTarget());
|
||||
menuEntry.setMenuOption(currentMenu.getMenuOption());
|
||||
menuEntry.setWidgetId(widgetId);
|
||||
menuEntry.setMenuTarget(currentMenu.getMenuTarget());
|
||||
menuEntry.setType(MenuAction.RUNELITE.getId());
|
||||
|
||||
client.setMenuEntries(menuEntries);
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
package net.runelite.client.menus;
|
||||
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
|
||||
import java.awt.Color;
|
||||
import net.runelite.client.ui.JagexColors;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
|
||||
@@ -133,37 +133,11 @@ public class ClientLoader implements Supplier<Applet>
|
||||
StandardOpenOption.CREATE, StandardOpenOption.READ, StandardOpenOption.WRITE);
|
||||
FileLock flock = lockfile.lock())
|
||||
{
|
||||
SplashScreen.stage(.05, null, "Downloading Old School RuneScape");
|
||||
try
|
||||
{
|
||||
updateVanilla(config);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
// try again with the fallback config and gamepack
|
||||
if (!config.isFallback())
|
||||
{
|
||||
log.warn("Unable to download game client, attempting to use fallback config", ex);
|
||||
config = downloadFallbackConfig();
|
||||
updateVanilla(config);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
if (updateCheckMode == AUTO)
|
||||
{
|
||||
SplashScreen.stage(.35, null, "Patching");
|
||||
applyPatch();
|
||||
}
|
||||
|
||||
SplashScreen.stage(.40, null, "Loading client");
|
||||
File jarFile = updateCheckMode == AUTO ? PATCHED_CACHE : VANILLA_CACHE;
|
||||
// create the classloader for the jar while we hold the lock, and eagerly load and link all classes
|
||||
// in the jar. Otherwise the jar can change on disk and can break future classloads.
|
||||
classLoader = createJarClassLoader(jarFile);
|
||||
classLoader = createJarClassLoader(new File("./injected-client/build/libs/injected-client-3.5.4.jar"));
|
||||
}
|
||||
|
||||
SplashScreen.stage(.465, "Starting", "Starting Old School RuneScape");
|
||||
@@ -175,7 +149,7 @@ public class ClientLoader implements Supplier<Applet>
|
||||
return rs;
|
||||
}
|
||||
catch (IOException | ClassNotFoundException | InstantiationException | IllegalAccessException
|
||||
| VerificationException | SecurityException e)
|
||||
| SecurityException e)
|
||||
{
|
||||
log.error("Error loading RS!", e);
|
||||
|
||||
@@ -543,7 +517,7 @@ public class ClientLoader implements Supplier<Applet>
|
||||
|
||||
if (rs instanceof Client)
|
||||
{
|
||||
log.info("client-patch {}", ((Client) rs).getBuildID());
|
||||
//.info("client-patch {}", ((Client) rs).getBuildID());
|
||||
}
|
||||
|
||||
return rs;
|
||||
|
||||
@@ -143,7 +143,7 @@ public class OverlayManager
|
||||
|
||||
event.consume();
|
||||
|
||||
Overlay overlay = overlays.get(event.getId());
|
||||
Overlay overlay = overlays.get(event.getType());
|
||||
if (overlay != null)
|
||||
{
|
||||
List<OverlayMenuEntry> menuEntries = overlay.getMenuEntries();
|
||||
|
||||
@@ -877,10 +877,10 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
|
||||
OverlayMenuEntry overlayMenuEntry = menuEntries.get(i);
|
||||
|
||||
final MenuEntry entry = new MenuEntry();
|
||||
entry.setOption(overlayMenuEntry.getOption());
|
||||
entry.setTarget(ColorUtil.wrapWithColorTag(overlayMenuEntry.getTarget(), JagexColors.MENU_TARGET));
|
||||
entry.setMenuOption(overlayMenuEntry.getOption());
|
||||
entry.setMenuTarget(ColorUtil.wrapWithColorTag(overlayMenuEntry.getTarget(), JagexColors.MENU_TARGET));
|
||||
entry.setType(overlayMenuEntry.getMenuAction().getId());
|
||||
entry.setIdentifier(overlayManager.getOverlays().indexOf(overlay)); // overlay id
|
||||
entry.setType(overlayManager.getOverlays().indexOf(overlay)); // overlay id
|
||||
|
||||
entries[i] = entry;
|
||||
}
|
||||
|
||||
@@ -65,10 +65,10 @@ public class ObsidianSkin extends SubstanceSkin
|
||||
|
||||
final SubstanceColorSchemeBundle defaultSchemeBundle = new SubstanceColorSchemeBundle(
|
||||
activeScheme, enabledScheme, enabledScheme);
|
||||
defaultSchemeBundle.registerColorScheme(enabledScheme, 0.6f,
|
||||
ComponentState.DISABLED_UNSELECTED);
|
||||
defaultSchemeBundle.registerColorScheme(activeScheme, 0.6f,
|
||||
ComponentState.DISABLED_SELECTED);
|
||||
//defaultSchemeBundle.registerColorScheme(enabledScheme, 0.6f,
|
||||
// ComponentState.DISABLED_UNSELECTED);
|
||||
//defaultSchemeBundle.registerColorScheme(activeScheme, 0.6f,
|
||||
// ComponentState.DISABLED_SELECTED);
|
||||
|
||||
// borders
|
||||
final SubstanceColorScheme borderDisabledSelectedScheme = schemes
|
||||
@@ -82,9 +82,9 @@ public class ObsidianSkin extends SubstanceSkin
|
||||
final SubstanceColorScheme markActiveScheme = schemes.get("RuneLite Mark Active");
|
||||
defaultSchemeBundle.registerColorScheme(markActiveScheme, ColorSchemeAssociationKind.MARK,
|
||||
ComponentState.getActiveStates());
|
||||
defaultSchemeBundle.registerColorScheme(markActiveScheme, 0.6f,
|
||||
ColorSchemeAssociationKind.MARK, ComponentState.DISABLED_SELECTED,
|
||||
ComponentState.DISABLED_UNSELECTED);
|
||||
//defaultSchemeBundle.registerColorScheme(markActiveScheme, 0.6f,
|
||||
// ColorSchemeAssociationKind.MARK, ComponentState.DISABLED_SELECTED,
|
||||
// ComponentState.DISABLED_UNSELECTED);
|
||||
|
||||
// separators
|
||||
final SubstanceColorScheme separatorScheme = schemes.get("RuneLite Separator");
|
||||
@@ -102,8 +102,8 @@ public class ObsidianSkin extends SubstanceSkin
|
||||
|
||||
final SubstanceColorSchemeBundle decorationsSchemeBundle = new SubstanceColorSchemeBundle(
|
||||
activeScheme, enabledScheme, enabledScheme);
|
||||
decorationsSchemeBundle.registerColorScheme(enabledScheme, 0.5f,
|
||||
ComponentState.DISABLED_UNSELECTED);
|
||||
//decorationsSchemeBundle.registerColorScheme(enabledScheme, 0.5f,
|
||||
// ComponentState.DISABLED_UNSELECTED);
|
||||
|
||||
// borders
|
||||
decorationsSchemeBundle.registerColorScheme(borderDisabledSelectedScheme,
|
||||
@@ -129,8 +129,8 @@ public class ObsidianSkin extends SubstanceSkin
|
||||
|
||||
final SubstanceColorSchemeBundle headerSchemeBundle = new SubstanceColorSchemeBundle(activeScheme,
|
||||
enabledScheme, enabledScheme);
|
||||
headerSchemeBundle.registerColorScheme(enabledScheme, 0.5f,
|
||||
ComponentState.DISABLED_UNSELECTED);
|
||||
//headerSchemeBundle.registerColorScheme(enabledScheme, 0.5f,
|
||||
// ComponentState.DISABLED_UNSELECTED);
|
||||
|
||||
// borders
|
||||
final SubstanceColorScheme headerBorderScheme = schemes.get("RuneLite Header Border");
|
||||
@@ -142,13 +142,13 @@ public class ObsidianSkin extends SubstanceSkin
|
||||
headerSchemeBundle.registerColorScheme(markActiveScheme, ColorSchemeAssociationKind.MARK,
|
||||
ComponentState.getActiveStates());
|
||||
|
||||
headerSchemeBundle.registerHighlightColorScheme(activeScheme, 0.7f,
|
||||
ComponentState.ROLLOVER_UNSELECTED, ComponentState.ROLLOVER_ARMED,
|
||||
ComponentState.ARMED);
|
||||
headerSchemeBundle.registerHighlightColorScheme(activeScheme, 0.8f,
|
||||
ComponentState.SELECTED);
|
||||
headerSchemeBundle.registerHighlightColorScheme(activeScheme, 1.0f,
|
||||
ComponentState.ROLLOVER_SELECTED);
|
||||
//headerSchemeBundle.registerHighlightColorScheme(activeScheme, 0.7f,
|
||||
// ComponentState.ROLLOVER_UNSELECTED, ComponentState.ROLLOVER_ARMED,
|
||||
// ComponentState.ARMED);
|
||||
//headerSchemeBundle.registerHighlightColorScheme(activeScheme, 0.8f,
|
||||
// ComponentState.SELECTED);
|
||||
//headerSchemeBundle.registerHighlightColorScheme(activeScheme, 1.0f,
|
||||
// ComponentState.ROLLOVER_SELECTED);
|
||||
|
||||
final SubstanceColorScheme headerWatermarkScheme = schemes.get("RuneLite Header Watermark");
|
||||
|
||||
|
||||
@@ -547,7 +547,8 @@
|
||||
526,
|
||||
2530,
|
||||
3187,
|
||||
24655
|
||||
24655,
|
||||
25199
|
||||
],
|
||||
"monks robe": [
|
||||
542,
|
||||
@@ -1652,6 +1653,10 @@
|
||||
1005,
|
||||
7957
|
||||
],
|
||||
"red cape": [
|
||||
1007,
|
||||
25207
|
||||
],
|
||||
"blue skirt": [
|
||||
1011,
|
||||
7386,
|
||||
@@ -1662,6 +1667,11 @@
|
||||
12445,
|
||||
12447
|
||||
],
|
||||
"blue cape": [
|
||||
1021,
|
||||
25195,
|
||||
25208
|
||||
],
|
||||
"blue partyhat": [
|
||||
1042,
|
||||
2422
|
||||
@@ -3353,7 +3363,17 @@
|
||||
],
|
||||
"explosive potion": [
|
||||
4045,
|
||||
23818
|
||||
23818,
|
||||
25211
|
||||
],
|
||||
"bandages": [
|
||||
4049,
|
||||
25202
|
||||
],
|
||||
"barricade": [
|
||||
4053,
|
||||
25209,
|
||||
25210
|
||||
],
|
||||
"decorative sword": [
|
||||
4068,
|
||||
@@ -3402,7 +3422,12 @@
|
||||
4506,
|
||||
4511,
|
||||
20489,
|
||||
24160
|
||||
24160,
|
||||
25157,
|
||||
25165,
|
||||
25169,
|
||||
25174,
|
||||
25176
|
||||
],
|
||||
"decorative shield": [
|
||||
4072,
|
||||
@@ -3415,11 +3440,14 @@
|
||||
4081,
|
||||
10588,
|
||||
12017,
|
||||
12018
|
||||
12018,
|
||||
25250,
|
||||
25278
|
||||
],
|
||||
"sled": [
|
||||
4083,
|
||||
4084
|
||||
4084,
|
||||
25282
|
||||
],
|
||||
"dragon platelegs": [
|
||||
4087,
|
||||
@@ -3494,7 +3522,8 @@
|
||||
],
|
||||
"stick": [
|
||||
4179,
|
||||
9702
|
||||
9702,
|
||||
25285
|
||||
],
|
||||
"extended brush": [
|
||||
4191,
|
||||
@@ -4790,20 +4819,24 @@
|
||||
"seers ring": [
|
||||
6731,
|
||||
11770,
|
||||
23624
|
||||
23624,
|
||||
25258
|
||||
],
|
||||
"archers ring": [
|
||||
6733,
|
||||
11771
|
||||
11771,
|
||||
25260
|
||||
],
|
||||
"warrior ring": [
|
||||
6735,
|
||||
11772
|
||||
11772,
|
||||
25262
|
||||
],
|
||||
"berserker ring": [
|
||||
6737,
|
||||
11773,
|
||||
23595
|
||||
23595,
|
||||
25264
|
||||
],
|
||||
"darklight": [
|
||||
6746,
|
||||
@@ -6114,7 +6147,18 @@
|
||||
11781,
|
||||
11782,
|
||||
11783,
|
||||
11784
|
||||
11784,
|
||||
25266,
|
||||
25267,
|
||||
25268,
|
||||
25269,
|
||||
25270,
|
||||
25271,
|
||||
25272,
|
||||
25273,
|
||||
25274,
|
||||
25275,
|
||||
25276
|
||||
],
|
||||
"bandana eyepatch": [
|
||||
8924,
|
||||
@@ -7387,7 +7431,15 @@
|
||||
23073,
|
||||
23075,
|
||||
24370,
|
||||
24444
|
||||
24444,
|
||||
25177,
|
||||
25179,
|
||||
25181,
|
||||
25183,
|
||||
25185,
|
||||
25187,
|
||||
25189,
|
||||
25191
|
||||
],
|
||||
"slayer ring": [
|
||||
11866,
|
||||
@@ -7472,15 +7524,18 @@
|
||||
],
|
||||
"ring of the gods": [
|
||||
12601,
|
||||
13202
|
||||
13202,
|
||||
25252
|
||||
],
|
||||
"tyrannical ring": [
|
||||
12603,
|
||||
12691
|
||||
12691,
|
||||
25254
|
||||
],
|
||||
"treasonous ring": [
|
||||
12605,
|
||||
12692
|
||||
12692,
|
||||
25256
|
||||
],
|
||||
"bandos page": [
|
||||
12613,
|
||||
@@ -8215,7 +8270,9 @@
|
||||
19550,
|
||||
19710,
|
||||
20655,
|
||||
20657
|
||||
20657,
|
||||
25246,
|
||||
25248
|
||||
],
|
||||
"amulet of torture": [
|
||||
19553,
|
||||
@@ -8594,7 +8651,8 @@
|
||||
],
|
||||
"granite ring": [
|
||||
21739,
|
||||
21752
|
||||
21752,
|
||||
25193
|
||||
],
|
||||
"imbued saradomin max cape": [
|
||||
21776,
|
||||
@@ -8872,6 +8930,10 @@
|
||||
22405,
|
||||
22446
|
||||
],
|
||||
"old key": [
|
||||
22428,
|
||||
25244
|
||||
],
|
||||
"battlemage potion": [
|
||||
22449,
|
||||
22452,
|
||||
@@ -9478,5 +9540,64 @@
|
||||
"extradimensional bag": [
|
||||
25106,
|
||||
25108
|
||||
],
|
||||
"decorative boots": [
|
||||
25155,
|
||||
25163,
|
||||
25167,
|
||||
25171,
|
||||
25173
|
||||
],
|
||||
"castlewars brew": [
|
||||
25159,
|
||||
25160,
|
||||
25161,
|
||||
25162
|
||||
],
|
||||
"soul fragment": [
|
||||
25196,
|
||||
25201
|
||||
],
|
||||
"potion of power": [
|
||||
25203,
|
||||
25204,
|
||||
25205,
|
||||
25206
|
||||
],
|
||||
"blue icon": [
|
||||
25212,
|
||||
25213,
|
||||
25214,
|
||||
25215,
|
||||
25216,
|
||||
25217,
|
||||
25218,
|
||||
25219,
|
||||
25220,
|
||||
25221,
|
||||
25222,
|
||||
25223,
|
||||
25224,
|
||||
25225,
|
||||
25226,
|
||||
25227
|
||||
],
|
||||
"red icon": [
|
||||
25228,
|
||||
25229,
|
||||
25230,
|
||||
25231,
|
||||
25232,
|
||||
25233,
|
||||
25234,
|
||||
25235,
|
||||
25236,
|
||||
25237,
|
||||
25238,
|
||||
25239,
|
||||
25240,
|
||||
25241,
|
||||
25242,
|
||||
25243
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -24,50 +24,35 @@
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
-->
|
||||
<configuration scan="true">
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${user.home}/.runelite/logs/client.log</file>
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${user.home}/.runelite/logs/client.log</file>
|
||||
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- daily rollover -->
|
||||
<fileNamePattern>${user.home}/.runelite/logs/client_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- daily rollover -->
|
||||
<fileNamePattern>${user.home}/.runelite/logs/client_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
||||
|
||||
<!-- when file size is larger than defined, roll to new file -->
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<!-- when file size is larger than defined, roll to new file -->
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
|
||||
<!-- keep 30 days' worth of history -->
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<!-- keep 30 days' worth of history -->
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
|
||||
<encoder>
|
||||
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<encoder>
|
||||
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- Configure the Sentry appender, overriding the logging threshold to the WARN level -->
|
||||
<appender name="Sentry" class="io.sentry.logback.SentryAppender">
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>ERROR</level>
|
||||
</filter>
|
||||
<!-- Optionally add an encoder -->
|
||||
<encoder>
|
||||
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
<appender-ref ref="Sentry" />
|
||||
</root>
|
||||
|
||||
<logger name="org.pf4j" level="WARN"/>
|
||||
<logger name="org.jgroups" level="WARN"/>
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="FILE"/>
|
||||
</root>
|
||||
</configuration>
|
||||
@@ -0,0 +1,19 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDDDCCAfSgAwIBAgIJAK8uBanmNQZaMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
|
||||
BAMMEHJ1bmVsaXRlLXBsdWdpbnMwHhcNMTkxMjEyMjEwNzUxWhcNMjUxMjEwMjEw
|
||||
NzUxWjAbMRkwFwYDVQQDDBBydW5lbGl0ZS1wbHVnaW5zMIIBIjANBgkqhkiG9w0B
|
||||
AQEFAAOCAQ8AMIIBCgKCAQEApu11OVANSU+pHaXRxB7fIZapucJ6BT46neicEixs
|
||||
NVPuK/QRVjO/G8F++MXFD/tlZUOEDllDN8uaHBIVwxilqEVYL7oX65Esl7qqC1TZ
|
||||
WGdjiMyYoK3CXWEWB4w+CdB31T7JG2HqH45ZsVs+U9OVWBkNkL5nNQNPOmZFd+3A
|
||||
yCb9nGlO7SxduiHpwh3CV19jY47y8tevyo5qpaBuQeWtu3vbpeer0kbDarwD3xoF
|
||||
yUMPRK518gxRUSmOpsSG5viQ731mKVCUUfIXz91d3s+kJYAjORHS4zJe9s+1dljp
|
||||
oLYNLkaP6m3CmNtC84OxkmognvZTNMbiQ3GQm/BK4sdjPQIDAQABo1MwUTAdBgNV
|
||||
HQ4EFgQUxrkiRXNd0OHPMkqgl9UgV1//OuQwHwYDVR0jBBgwFoAUxrkiRXNd0OHP
|
||||
Mkqgl9UgV1//OuQwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEA
|
||||
StPyblz3aqOM5z2KqHX1B7Z3Q8B58g55YSefpcfwWEc6LT4HCztszcZDteWpV3W2
|
||||
ERfemkGKgsDhQ0qkzIt7tS5eNN3PPj7RZZm7vl5HquQ1vC/33ri/Z3CEKzbW7knt
|
||||
i1iEpx8E9DKb9J9DjdKwNxSomOyCOFUt9YoQJs80xc1mwPDd6aWR3xwvnEUimkm+
|
||||
Dbj7HMOXLeyN810wkeWcT8nC5GhxH3ZAmVExBHsaIOB876RntzshBehjY8s8JQhw
|
||||
R+fT1e8EhYMM9ylYDk1KIWFWrAujjU04lS9tXZ5C2e7fr9R953XN6Y0PNM/taNTU
|
||||
GzwGroJZI02V+1ADO14rRA==
|
||||
-----END CERTIFICATE-----
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 170 B |
|
After Width: | Height: | Size: 170 B |
|
After Width: | Height: | Size: 720 B |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 943 B |
|
After Width: | Height: | Size: 759 B |
|
After Width: | Height: | Size: 824 B |
|
After Width: | Height: | Size: 716 B |
|
After Width: | Height: | Size: 197 B |
|
After Width: | Height: | Size: 434 B |
|
After Width: | Height: | Size: 448 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 410 B |
|
After Width: | Height: | Size: 477 B |
|
After Width: | Height: | Size: 764 B |
|
After Width: | Height: | Size: 973 B |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 343 B |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 871 B |
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1 @@
|
||||
The images in this folder are derivatives of "twemoji" (https://github.com/twitter/twemoji) by "Twitter, Inc", used under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). The derivatives are licensed under the same license.
|
||||
|
After Width: | Height: | Size: 323 B |
|
After Width: | Height: | Size: 329 B |
|
After Width: | Height: | Size: 386 B |
|
After Width: | Height: | Size: 135 B |
|
After Width: | Height: | Size: 558 B |
|
After Width: | Height: | Size: 278 B |
|
After Width: | Height: | Size: 375 B |
|
After Width: | Height: | Size: 428 B |
|
After Width: | Height: | Size: 348 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 341 B |
|
After Width: | Height: | Size: 517 B |
|
After Width: | Height: | Size: 178 B |
|
After Width: | Height: | Size: 216 B |
|
After Width: | Height: | Size: 456 B |
|
After Width: | Height: | Size: 382 B |
|
After Width: | Height: | Size: 265 B |
|
After Width: | Height: | Size: 329 B |
|
After Width: | Height: | Size: 489 B |
|
After Width: | Height: | Size: 116 B |
|
After Width: | Height: | Size: 270 B |
|
After Width: | Height: | Size: 308 B |
|
After Width: | Height: | Size: 404 B |
|
After Width: | Height: | Size: 373 B |
|
After Width: | Height: | Size: 123 B |
|
After Width: | Height: | Size: 433 B |
|
After Width: | Height: | Size: 341 B |
|
After Width: | Height: | Size: 496 B |
|
After Width: | Height: | Size: 500 B |
|
After Width: | Height: | Size: 240 B |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 203 B |
|
After Width: | Height: | Size: 281 B |
|
After Width: | Height: | Size: 456 B |
|
After Width: | Height: | Size: 227 B |
|
After Width: | Height: | Size: 414 B |
|
After Width: | Height: | Size: 349 B |
|
After Width: | Height: | Size: 311 B |
|
After Width: | Height: | Size: 295 B |
|
After Width: | Height: | Size: 475 B |
|
After Width: | Height: | Size: 540 B |
|
After Width: | Height: | Size: 299 B |
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 383 B |
|
After Width: | Height: | Size: 304 B |
|
After Width: | Height: | Size: 405 B |
|
After Width: | Height: | Size: 367 B |
|
After Width: | Height: | Size: 398 B |
|
After Width: | Height: | Size: 363 B |
|
After Width: | Height: | Size: 133 B |
|
After Width: | Height: | Size: 380 B |
|
After Width: | Height: | Size: 285 B |
|
After Width: | Height: | Size: 278 B |
|
After Width: | Height: | Size: 490 B |
|
After Width: | Height: | Size: 352 B |
|
After Width: | Height: | Size: 361 B |
|
After Width: | Height: | Size: 353 B |
|
After Width: | Height: | Size: 312 B |
|
After Width: | Height: | Size: 372 B |
|
After Width: | Height: | Size: 350 B |
|
After Width: | Height: | Size: 135 B |