From ade169253bb8b217b03520ae69be69d4d94607b0 Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Sat, 26 Dec 2020 20:50:49 +0800
Subject: [PATCH] Fix package

---
 mirai-core/src/commonMain/kotlin/MiraiImpl.kt |  2 +-
 .../kotlin/message/FlashImageImpl.kt          |  2 +-
 .../commonMain/kotlin/message/conversions.kt  |  4 +--
 .../src/commonMain/kotlin/message/faceImpl.kt |  2 +-
 .../kotlin/message/incomingSourceImpl.kt      |  2 +-
 .../kotlin/message/offlineSourceImpl.kt       |  2 +-
 .../kotlin/message/outgoingSourceImpl.kt      |  2 +-
 .../kotlin/network/highway/HighwayHelper.kt   |  4 +--
 .../network/protocol/data/jce/ConfigPush.kt   |  4 +--
 .../protocol/data/jce/DeviceItemDes.kt        |  4 +--
 .../network/protocol/data/jce/FriendList.kt   |  4 +--
 .../network/protocol/data/jce/GroupMngReq.kt  |  4 +--
 .../network/protocol/data/jce/InstanceInfo.kt |  4 +--
 .../network/protocol/data/jce/MsgType0x210.kt |  4 +--
 .../protocol/data/jce/OnlinePushPack.kt       |  4 +--
 .../protocol/data/jce/PushNotifyPack.kt       |  4 +--
 .../data/jce/RequestMSFForceOffline.kt        |  4 +--
 .../protocol/data/jce/RequestPacket.kt        |  4 +--
 .../data/jce/RequestPushForceOffline.kt       |  4 +--
 .../protocol/data/jce/SvcDevLoginInfo.kt      |  4 +--
 .../data/jce/SvcReqMSFLoginNotifyData.kt      |  4 +--
 .../protocol/data/jce/SvcReqRegister.kt       |  4 +--
 .../data/jce/SvcRequestPushReadedNotify.kt    |  4 +--
 .../protocol/data/jce/SvcRespRegister.kt      |  4 +--
 .../data/jce/SvcRspGetDevLoginInfo.kt         |  4 +--
 .../network/protocol/data/jce/TroopList.kt    |  4 +--
 .../network/protocol/data/proto/Cmd0x352.kt   |  2 +-
 .../network/protocol/data/proto/Cmd0x388.kt   |  2 +-
 .../network/protocol/data/proto/Cmd0x857.kt   |  2 +-
 .../network/protocol/data/proto/Cmd0x858.kt   |  2 +-
 .../network/protocol/data/proto/Define.kt     |  2 +-
 .../protocol/data/proto/FriendListCommon.kt   |  2 +-
 .../network/protocol/data/proto/Group.kt      |  2 +-
 .../network/protocol/data/proto/Highway.kt    |  2 +-
 .../protocol/data/proto/HummerCommelem.kt     |  2 +-
 .../protocol/data/proto/HummerResv12.kt       |  2 +-
 .../protocol/data/proto/HummerResv21.kt       |  2 +-
 .../protocol/data/proto/ImageRequest.kt       |  2 +-
 .../network/protocol/data/proto/LongMsg.kt    |  2 +-
 .../kotlin/network/protocol/data/proto/Msg.kt |  4 +--
 .../network/protocol/data/proto/MsgCommon.kt  |  2 +-
 .../protocol/data/proto/MsgRevokeUserDef.kt   |  2 +-
 .../network/protocol/data/proto/MsgSvc.kt     |  2 +-
 .../protocol/data/proto/MsgTransmit.kt        |  2 +-
 .../network/protocol/data/proto/MultiMsg.kt   |  2 +-
 .../network/protocol/data/proto/OIDB.kt       |  2 +-
 .../network/protocol/data/proto/Oidb0x769.kt  |  2 +-
 .../network/protocol/data/proto/OnlinePush.kt |  2 +-
 .../network/protocol/data/proto/PbReserve.kt  |  2 +-
 .../protocol/data/proto/StatSvcGetOnline.kt   |  2 +-
 .../network/protocol/data/proto/StructMsg.kt  |  2 +-
 .../network/protocol/data/proto/SyncCookie.kt |  2 +-
 .../protocol/data/proto/msgType0x210.kt       |  2 +-
 .../protocol/data/proto/msgType0x211.kt       |  2 +-
 .../network/protocol/packet/chat/MultiMsg.kt  |  6 ++--
 .../protocol/packet/chat/NewContact.kt        |  4 +--
 .../protocol/packet/chat/NudgePacket.kt       |  6 ++--
 .../protocol/packet/chat/PbMessageSvc.kt      |  6 ++--
 .../protocol/packet/chat/TroopManagement.kt   |  2 +-
 .../protocol/packet/chat/image/ImgStore.kt    |  4 +--
 .../protocol/packet/chat/image/LongConn.kt    |  4 +--
 .../chat/receive/MessageSvc.PbDeleteMsg.kt    |  2 +-
 .../chat/receive/MessageSvc.PbGetMsg.kt       |  6 ++--
 .../chat/receive/MessageSvc.PbSendMsg.kt      |  4 +--
 .../receive/MessageSvc.PushForceOffline.kt    |  2 +-
 .../chat/receive/MessageSvc.PushNotify.kt     |  2 +-
 .../chat/receive/OnlinePush.PbPushGroupMsg.kt |  4 +--
 .../chat/receive/OnlinePush.PbPushTransMsg.kt |  2 +-
 .../packet/chat/receive/OnlinePush.ReqPush.kt |  3 +-
 .../protocol/packet/chat/voice/PttStore.kt    |  4 +--
 .../protocol/packet/list/FriendList.kt        |  8 ++---
 .../protocol/packet/list/ProfileService.kt    |  6 ++--
 .../protocol/packet/login/ConfigPushSvc.kt    |  7 +++-
 .../network/protocol/packet/login/StatSvc.kt  |  2 +-
 .../commonMain/kotlin/utils/io/JceStruct.kt   |  2 +-
 .../commonMain/kotlin/utils/io/ProtoBuf.kt    |  2 +-
 .../ProtoBufWithNullableSupport.kt            |  6 ++--
 .../utils/io/serialization/tars/Tars.kt       |  8 ++---
 .../utils/io/serialization/tars/TarsId.kt     |  2 +-
 .../tars/internal/TarsDecoder.kt              |  7 ++--
 .../serialization/tars/internal/TarsInput.kt  |  4 +--
 .../io/serialization/tars/internal/TarsOld.kt | 34 +++++++++----------
 .../io/serialization/tars/internal/TarsTag.kt |  4 +--
 .../kotlin/utils/io/serialization/utils.kt    |  8 ++---
 84 files changed, 159 insertions(+), 152 deletions(-)

diff --git a/mirai-core/src/commonMain/kotlin/MiraiImpl.kt b/mirai-core/src/commonMain/kotlin/MiraiImpl.kt
index a3d098758..d4efbcd87 100644
--- a/mirai-core/src/commonMain/kotlin/MiraiImpl.kt
+++ b/mirai-core/src/commonMain/kotlin/MiraiImpl.kt
@@ -31,6 +31,7 @@ import net.mamoe.mirai.internal.network.protocol.packet.chat.*
 import net.mamoe.mirai.internal.network.protocol.packet.chat.voice.PttStore
 import net.mamoe.mirai.internal.network.protocol.packet.list.FriendList
 import net.mamoe.mirai.internal.network.protocol.packet.login.StatSvc
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
 import net.mamoe.mirai.message.MessageReceipt
 import net.mamoe.mirai.message.action.Nudge
 import net.mamoe.mirai.message.data.*
@@ -39,7 +40,6 @@ import net.mamoe.mirai.message.data.Image.Key.FRIEND_IMAGE_ID_REGEX_2
 import net.mamoe.mirai.message.data.Image.Key.GROUP_IMAGE_ID_REGEX
 import net.mamoe.mirai.utils.*
 import net.mamoe.mirai.utils.ExternalResource.Companion.toExternalResource
-import net.mamoe.mirai.utils.serialization.toByteArray
 import java.util.concurrent.atomic.AtomicBoolean
 import kotlin.math.absoluteValue
 import kotlin.random.Random
diff --git a/mirai-core/src/commonMain/kotlin/message/FlashImageImpl.kt b/mirai-core/src/commonMain/kotlin/message/FlashImageImpl.kt
index 530d6bf8d..6e0bbcbff 100644
--- a/mirai-core/src/commonMain/kotlin/message/FlashImageImpl.kt
+++ b/mirai-core/src/commonMain/kotlin/message/FlashImageImpl.kt
@@ -13,11 +13,11 @@ package net.mamoe.mirai.internal.message
 
 import net.mamoe.mirai.internal.network.protocol.data.proto.HummerCommelem
 import net.mamoe.mirai.internal.network.protocol.data.proto.ImMsgBody
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
 import net.mamoe.mirai.message.data.FlashImage
 import net.mamoe.mirai.message.data.isFriendImage
 import net.mamoe.mirai.message.data.isGroupImage
 import net.mamoe.mirai.message.data.md5
-import net.mamoe.mirai.utils.serialization.toByteArray
 
 
 internal fun FlashImage.toJceData(): ImMsgBody.Elem {
diff --git a/mirai-core/src/commonMain/kotlin/message/conversions.kt b/mirai-core/src/commonMain/kotlin/message/conversions.kt
index 0e3ffc624..5108942b6 100644
--- a/mirai-core/src/commonMain/kotlin/message/conversions.kt
+++ b/mirai-core/src/commonMain/kotlin/message/conversions.kt
@@ -24,10 +24,10 @@ import net.mamoe.mirai.contact.Group
 import net.mamoe.mirai.internal.network.protocol.data.proto.*
 import net.mamoe.mirai.internal.network.protocol.data.proto.ImMsgBody
 import net.mamoe.mirai.internal.utils.*
+import net.mamoe.mirai.internal.utils.io.serialization.loadAs
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
 import net.mamoe.mirai.message.data.*
 import net.mamoe.mirai.utils.*
-import net.mamoe.mirai.utils.serialization.loadAs
-import net.mamoe.mirai.utils.serialization.toByteArray
 import kotlin.contracts.ExperimentalContracts
 import kotlin.contracts.InvocationKind
 import kotlin.contracts.contract
diff --git a/mirai-core/src/commonMain/kotlin/message/faceImpl.kt b/mirai-core/src/commonMain/kotlin/message/faceImpl.kt
index 94c9367ae..77e17a78c 100644
--- a/mirai-core/src/commonMain/kotlin/message/faceImpl.kt
+++ b/mirai-core/src/commonMain/kotlin/message/faceImpl.kt
@@ -14,12 +14,12 @@ import kotlinx.serialization.Serializable
 import kotlinx.serialization.Transient
 import net.mamoe.mirai.internal.network.protocol.data.proto.HummerCommelem
 import net.mamoe.mirai.internal.network.protocol.data.proto.ImMsgBody
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
 import net.mamoe.mirai.message.code.internal.appendAsMiraiCode
 import net.mamoe.mirai.message.data.Face
 import net.mamoe.mirai.message.data.MarketFace
 import net.mamoe.mirai.utils.MiraiExperimentalApi
 import net.mamoe.mirai.utils.hexToBytes
-import net.mamoe.mirai.utils.serialization.toByteArray
 import net.mamoe.mirai.utils.toByteArray
 
 internal val FACE_BUF = "00 01 00 04 52 CC F5 D0".hexToBytes()
diff --git a/mirai-core/src/commonMain/kotlin/message/incomingSourceImpl.kt b/mirai-core/src/commonMain/kotlin/message/incomingSourceImpl.kt
index 7cb478b5e..ba9f88c09 100644
--- a/mirai-core/src/commonMain/kotlin/message/incomingSourceImpl.kt
+++ b/mirai-core/src/commonMain/kotlin/message/incomingSourceImpl.kt
@@ -21,6 +21,7 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.MsgComm
 import net.mamoe.mirai.internal.network.protocol.data.proto.SourceMsg
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
 import net.mamoe.mirai.internal.utils._miraiContentToString
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
 import net.mamoe.mirai.message.data.Message
 import net.mamoe.mirai.message.data.MessageChain
 import net.mamoe.mirai.message.data.MessageSource
@@ -28,7 +29,6 @@ import net.mamoe.mirai.message.data.OnlineMessageSource
 import net.mamoe.mirai.utils.encodeToBase64
 import net.mamoe.mirai.utils.encodeToString
 import net.mamoe.mirai.utils.mapToIntArray
-import net.mamoe.mirai.utils.serialization.toByteArray
 import java.util.concurrent.atomic.AtomicBoolean
 
 internal interface MessageSourceInternal {
diff --git a/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt b/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt
index bce577763..8ad6f9e18 100644
--- a/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt
+++ b/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt
@@ -15,11 +15,11 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.ImMsgBody
 import net.mamoe.mirai.internal.network.protocol.data.proto.MsgComm
 import net.mamoe.mirai.internal.network.protocol.data.proto.SourceMsg
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
+import net.mamoe.mirai.internal.utils.io.serialization.loadAs
 import net.mamoe.mirai.message.data.MessageChain
 import net.mamoe.mirai.message.data.MessageSourceKind
 import net.mamoe.mirai.message.data.OfflineMessageSource
 import net.mamoe.mirai.utils.mapToIntArray
-import net.mamoe.mirai.utils.serialization.loadAs
 import java.util.concurrent.atomic.AtomicBoolean
 
 
diff --git a/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt b/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt
index 184873ab6..cc7ed23f4 100644
--- a/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt
+++ b/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt
@@ -26,10 +26,10 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.MsgComm
 import net.mamoe.mirai.internal.network.protocol.data.proto.SourceMsg
 import net.mamoe.mirai.internal.network.protocol.packet.chat.receive.OnlinePushPbPushGroupMsg.SendGroupMessageReceipt
 import net.mamoe.mirai.internal.network.protocol.packet.chat.toLongUnsigned
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
 import net.mamoe.mirai.message.data.MessageChain
 import net.mamoe.mirai.message.data.MessageSource
 import net.mamoe.mirai.message.data.OnlineMessageSource
-import net.mamoe.mirai.utils.serialization.toByteArray
 import java.util.concurrent.atomic.AtomicBoolean
 
 
diff --git a/mirai-core/src/commonMain/kotlin/network/highway/HighwayHelper.kt b/mirai-core/src/commonMain/kotlin/network/highway/HighwayHelper.kt
index 20107be80..0f3144009 100644
--- a/mirai-core/src/commonMain/kotlin/network/highway/HighwayHelper.kt
+++ b/mirai-core/src/commonMain/kotlin/network/highway/HighwayHelper.kt
@@ -27,10 +27,10 @@ import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
 import net.mamoe.mirai.internal.utils.PlatformSocket
 import net.mamoe.mirai.internal.utils.SocketException
 import net.mamoe.mirai.internal.utils.addSuppressedMirai
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
 import net.mamoe.mirai.internal.utils.toIpV4AddressString
 import net.mamoe.mirai.utils.*
-import net.mamoe.mirai.utils.serialization.readProtoBuf
-import net.mamoe.mirai.utils.serialization.toByteArray
 import java.io.InputStream
 import kotlin.math.roundToInt
 import kotlin.time.ExperimentalTime
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/ConfigPush.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/ConfigPush.kt
index 9740ea6ad..4dc0a7b44 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/ConfigPush.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/ConfigPush.kt
@@ -11,8 +11,8 @@ package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
 import net.mamoe.mirai.internal.network.Packet
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class BigDataChannel(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/DeviceItemDes.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/DeviceItemDes.kt
index aa98eddfc..21c978075 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/DeviceItemDes.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/DeviceItemDes.kt
@@ -9,8 +9,8 @@
 package  net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class DeviceItemDes(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/FriendList.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/FriendList.kt
index abb2d39db..ff65f43c9 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/FriendList.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/FriendList.kt
@@ -10,8 +10,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class ModifyGroupCardReq(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/GroupMngReq.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/GroupMngReq.kt
index 8f91ec195..1be9ddfdc 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/GroupMngReq.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/GroupMngReq.kt
@@ -10,8 +10,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class GroupMngReqJce(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/InstanceInfo.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/InstanceInfo.kt
index 391c197c4..191cbc10e 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/InstanceInfo.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/InstanceInfo.kt
@@ -11,8 +11,8 @@ package  net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
 import net.mamoe.mirai.contact.ClientKind
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal data class InstanceInfo(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/MsgType0x210.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/MsgType0x210.kt
index cd74af748..c26886a7f 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/MsgType0x210.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/MsgType0x210.kt
@@ -11,8 +11,8 @@ package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class AddGroup(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/OnlinePushPack.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/OnlinePushPack.kt
index b9f9a0491..dfcee6383 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/OnlinePushPack.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/OnlinePushPack.kt
@@ -10,8 +10,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 internal class OnlinePushPack {
     @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/PushNotifyPack.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/PushNotifyPack.kt
index 89b72b3f4..e77fb8c1c 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/PushNotifyPack.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/PushNotifyPack.kt
@@ -12,8 +12,8 @@ package net.mamoe.mirai.internal.network.protocol.data.jce
 import kotlinx.serialization.Serializable
 import net.mamoe.mirai.internal.network.Packet
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Suppress("ArrayInDataClass")
 @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestMSFForceOffline.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestMSFForceOffline.kt
index bcbaaa5f3..1eaf3a1e2 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestMSFForceOffline.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestMSFForceOffline.kt
@@ -10,8 +10,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class RequestMSFForceOffline(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestPacket.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestPacket.kt
index 145d8a3dd..78117e0c9 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestPacket.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestPacket.kt
@@ -11,8 +11,8 @@ package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 private val EMPTY_MAP = mapOf<String, String>()
 
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestPushForceOffline.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestPushForceOffline.kt
index 407ccd293..42bf3c6c2 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestPushForceOffline.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/RequestPushForceOffline.kt
@@ -10,8 +10,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class RequestPushForceOffline(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcDevLoginInfo.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcDevLoginInfo.kt
index 5aace46b6..769c33281 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcDevLoginInfo.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcDevLoginInfo.kt
@@ -10,8 +10,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal data class SvcDevLoginInfo(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcReqMSFLoginNotifyData.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcReqMSFLoginNotifyData.kt
index 399dc4d65..b1d8dc407 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcReqMSFLoginNotifyData.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcReqMSFLoginNotifyData.kt
@@ -10,8 +10,8 @@
 package  net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 // ANDROID PHONE QQ
 
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcReqRegister.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcReqRegister.kt
index 0d6fb8d2f..d86b55e1e 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcReqRegister.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcReqRegister.kt
@@ -10,8 +10,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class SvcReqRegister(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRequestPushReadedNotify.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRequestPushReadedNotify.kt
index 4a98843b9..cad35a1f1 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRequestPushReadedNotify.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRequestPushReadedNotify.kt
@@ -12,8 +12,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class SvcRequestPushReadedNotify(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRespRegister.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRespRegister.kt
index f635f4d40..0053f81ed 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRespRegister.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRespRegister.kt
@@ -10,8 +10,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 
 @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRspGetDevLoginInfo.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRspGetDevLoginInfo.kt
index 9d211c105..0f3e2112f 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRspGetDevLoginInfo.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/SvcRspGetDevLoginInfo.kt
@@ -10,8 +10,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class SvcRspGetDevLoginInfo(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/TroopList.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/TroopList.kt
index 16add0c7f..019a6b5a3 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/TroopList.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/jce/TroopList.kt
@@ -10,8 +10,8 @@
 package net.mamoe.mirai.internal.network.protocol.data.jce
 
 import kotlinx.serialization.Serializable
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @Serializable
 internal class GetTroopListReqV2Simplify(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x352.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x352.kt
index 29aebdd74..640ec1e6f 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x352.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x352.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class Cmd0x352 : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x388.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x388.kt
index 90567097d..5ca072217 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x388.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x388.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class Cmd0x388 : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x857.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x857.kt
index 1a02ad20d..a3f3c0b66 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x857.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x857.kt
@@ -16,7 +16,7 @@ import kotlinx.serialization.protobuf.ProtoIntegerType
 import kotlinx.serialization.protobuf.ProtoNumber
 import kotlinx.serialization.protobuf.ProtoType
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 internal class GroupOpenSysMsg : ProtoBuf {
     @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x858.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x858.kt
index f5bed7eee..7e8305173 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x858.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Cmd0x858.kt
@@ -16,7 +16,7 @@ import kotlinx.serialization.protobuf.ProtoIntegerType
 import kotlinx.serialization.protobuf.ProtoNumber
 import kotlinx.serialization.protobuf.ProtoType
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class Oidb0x858 : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Define.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Define.kt
index 779d0304a..95a6a0df0 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Define.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Define.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 internal class Common : ProtoBuf {
     @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/FriendListCommon.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/FriendListCommon.kt
index 92cd6692a..0a20e84f8 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/FriendListCommon.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/FriendListCommon.kt
@@ -14,7 +14,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class Vec0xd50 : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Group.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Group.kt
index 0acb09735..101080e72 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Group.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Group.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class GroupLabel : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Highway.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Highway.kt
index c9546d224..9055c6619 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Highway.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Highway.kt
@@ -14,7 +14,7 @@ import kotlinx.serialization.protobuf.ProtoIntegerType
 import kotlinx.serialization.protobuf.ProtoNumber
 import kotlinx.serialization.protobuf.ProtoType
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class BdhExtinfo : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerCommelem.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerCommelem.kt
index a830352a7..1cf5a51c9 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerCommelem.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerCommelem.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 internal class HummerCommelem : ProtoBuf {
     @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerResv12.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerResv12.kt
index 3e33d8353..042315a4f 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerResv12.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerResv12.kt
@@ -13,7 +13,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class MarketFaceExtPb : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerResv21.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerResv21.kt
index 3f0446b86..9559200c4 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerResv21.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/HummerResv21.kt
@@ -14,7 +14,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class HummerResv21 : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/ImageRequest.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/ImageRequest.kt
index 6ff521f0c..92dd6b620 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/ImageRequest.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/ImageRequest.kt
@@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 import net.mamoe.mirai.utils.currentTimeSeconds
 
 internal interface ImgReq : ProtoBuf
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/LongMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/LongMsg.kt
index 35882e2c5..d46334d8d 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/LongMsg.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/LongMsg.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 internal class LongMsg : ProtoBuf {
     @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Msg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Msg.kt
index 4a7cf2b50..791138cac 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Msg.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Msg.kt
@@ -14,8 +14,8 @@ import kotlinx.serialization.protobuf.ProtoIntegerType
 import kotlinx.serialization.protobuf.ProtoNumber
 import kotlinx.serialization.protobuf.ProtoType
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
-import net.mamoe.mirai.utils.serialization.toByteArray
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
 
 @Serializable
 internal class ImCommon : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgCommon.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgCommon.kt
index 3705db1ba..4ca282e55 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgCommon.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgCommon.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 /**
  * msf.msgcomm.msg_comm
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgRevokeUserDef.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgRevokeUserDef.kt
index 3f012bbe0..ea3048c4c 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgRevokeUserDef.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgRevokeUserDef.kt
@@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 internal class MsgRevokeUserDef : ProtoBuf {
     @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgSvc.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgSvc.kt
index 67e6d0654..890761783 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgSvc.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgSvc.kt
@@ -13,7 +13,7 @@ import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.Packet
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class MsgSvc : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgTransmit.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgTransmit.kt
index 6f4727795..1a4fd8a61 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgTransmit.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MsgTransmit.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 internal class MsgTransmit : ProtoBuf {
     @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MultiMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MultiMsg.kt
index aed9587a5..f75c5800d 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MultiMsg.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MultiMsg.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class MultiMsg : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/OIDB.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/OIDB.kt
index 1ba1b21fb..fced80a82 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/OIDB.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/OIDB.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class Oidb0x8a0 : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Oidb0x769.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Oidb0x769.kt
index 8ea6534ba..7efcb52aa 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Oidb0x769.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/Oidb0x769.kt
@@ -14,7 +14,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class Oidb0x769 : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/OnlinePush.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/OnlinePush.kt
index 096d27fd2..ff03ece3d 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/OnlinePush.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/OnlinePush.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class MsgOnlinePush {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/PbReserve.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/PbReserve.kt
index 04d82a917..bdb62d5fb 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/PbReserve.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/PbReserve.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 internal class Generalflags : ProtoBuf {
     @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/StatSvcGetOnline.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/StatSvcGetOnline.kt
index 1c2923073..be96b8563 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/StatSvcGetOnline.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/StatSvcGetOnline.kt
@@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 internal class StatSvcGetOnline {
     @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/StructMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/StructMsg.kt
index 1936d122a..c9c8eaf8b 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/StructMsg.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/StructMsg.kt
@@ -12,7 +12,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 internal class QPayReminderMsg : ProtoBuf {
     @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/SyncCookie.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/SyncCookie.kt
index 53e713d29..369f33fa9 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/SyncCookie.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/SyncCookie.kt
@@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.network.protocol.data.proto
 
 import kotlinx.serialization.Serializable
 import kotlinx.serialization.protobuf.ProtoNumber
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 import kotlin.math.absoluteValue
 import kotlin.random.Random
 
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/msgType0x210.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/msgType0x210.kt
index 8bae4117b..b02a1cb6f 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/msgType0x210.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/msgType0x210.kt
@@ -16,7 +16,7 @@ import kotlinx.serialization.protobuf.ProtoIntegerType
 import kotlinx.serialization.protobuf.ProtoNumber
 import kotlinx.serialization.protobuf.ProtoType
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 @Serializable
 internal class SubMsgType0x43 : ProtoBuf {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/msgType0x211.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/msgType0x211.kt
index 14c3a9bc7..7623c0fc0 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/msgType0x211.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/msgType0x211.kt
@@ -16,7 +16,7 @@ import kotlinx.serialization.protobuf.ProtoIntegerType
 import kotlinx.serialization.protobuf.ProtoNumber
 import kotlinx.serialization.protobuf.ProtoType
 import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
 
 
 @Serializable
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/MultiMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/MultiMsg.kt
index df2070110..78ea7247a 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/MultiMsg.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/MultiMsg.kt
@@ -27,13 +27,13 @@ import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.PacketLogger
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
 import net.mamoe.mirai.internal.utils._miraiContentToString
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
+import net.mamoe.mirai.internal.utils.io.serialization.writeProtoBuf
 import net.mamoe.mirai.message.data.ForwardMessage
 import net.mamoe.mirai.message.data.asMessageChain
 import net.mamoe.mirai.utils.gzip
 import net.mamoe.mirai.utils.md5
-import net.mamoe.mirai.utils.serialization.readProtoBuf
-import net.mamoe.mirai.utils.serialization.toByteArray
-import net.mamoe.mirai.utils.serialization.writeProtoBuf
 
 internal class MessageValidationData(
     val data: ByteArray,
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/NewContact.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/NewContact.kt
index 4e3cb6389..bb5c1fd0a 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/NewContact.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/NewContact.kt
@@ -25,8 +25,8 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.Structmsg
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
 import net.mamoe.mirai.internal.utils._miraiContentToString
-import net.mamoe.mirai.utils.serialization.loadAs
-import net.mamoe.mirai.utils.serialization.writeProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.loadAs
+import net.mamoe.mirai.internal.utils.io.serialization.writeProtoBuf
 
 internal class NewContact {
 
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/NudgePacket.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/NudgePacket.kt
index 638340f53..e56353c5e 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/NudgePacket.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/NudgePacket.kt
@@ -19,9 +19,9 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.OidbSso
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
-import net.mamoe.mirai.utils.serialization.loadAs
-import net.mamoe.mirai.utils.serialization.toByteArray
-import net.mamoe.mirai.utils.serialization.writeProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.loadAs
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
+import net.mamoe.mirai.internal.utils.io.serialization.writeProtoBuf
 
 internal object NudgePacket : OutgoingPacketFactory<NudgePacket.Response>("OidbSvc.0xed3") {
     override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): Response {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/PbMessageSvc.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/PbMessageSvc.kt
index a69fb390c..b63e8235f 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/PbMessageSvc.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/PbMessageSvc.kt
@@ -20,10 +20,10 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.MsgSvc
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
+import net.mamoe.mirai.internal.utils.io.serialization.writeProtoBuf
 import net.mamoe.mirai.utils.hexToBytes
-import net.mamoe.mirai.utils.serialization.readProtoBuf
-import net.mamoe.mirai.utils.serialization.toByteArray
-import net.mamoe.mirai.utils.serialization.writeProtoBuf
 
 internal class PbMessageSvc {
     object PbMsgWithDraw : OutgoingPacketFactory<PbMsgWithDraw.Response>(
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/TroopManagement.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/TroopManagement.kt
index 61d299ec9..cbd92f541 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/TroopManagement.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/TroopManagement.kt
@@ -26,8 +26,8 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.*
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
+import net.mamoe.mirai.internal.utils.io.serialization.*
 import net.mamoe.mirai.utils.daysToSeconds
-import net.mamoe.mirai.utils.serialization.*
 import net.mamoe.mirai.data.GroupInfo as MiraiGroupInfo
 
 @OptIn(LowLevelApi::class)
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/image/ImgStore.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/image/ImgStore.kt
index b98fbc26d..8e98d93f9 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/image/ImgStore.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/image/ImgStore.kt
@@ -18,8 +18,8 @@ import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
 import net.mamoe.mirai.internal.network.protocol.packet.chat.toLongUnsigned
-import net.mamoe.mirai.utils.serialization.readProtoBuf
-import net.mamoe.mirai.utils.serialization.writeProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.writeProtoBuf
 import kotlin.random.Random
 import kotlin.random.nextInt
 
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/image/LongConn.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/image/LongConn.kt
index ee46ae5ea..b3d2f433f 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/image/LongConn.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/image/LongConn.kt
@@ -18,8 +18,8 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.GetImgUrlReq
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
-import net.mamoe.mirai.utils.serialization.readProtoBuf
-import net.mamoe.mirai.utils.serialization.writeProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.writeProtoBuf
 
 internal class LongConn {
 
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbDeleteMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbDeleteMsg.kt
index b4e57db1a..74393f031 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbDeleteMsg.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbDeleteMsg.kt
@@ -19,7 +19,7 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.MsgComm
 import net.mamoe.mirai.internal.network.protocol.data.proto.MsgSvc
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
-import net.mamoe.mirai.utils.serialization.writeProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.writeProtoBuf
 
 internal object MessageSvcPbDeleteMsg : OutgoingPacketFactory<Nothing?>("MessageSvc.PbDeleteMsg") {
 
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbGetMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbGetMsg.kt
index b9e912675..8c87318de 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbGetMsg.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbGetMsg.kt
@@ -46,12 +46,12 @@ import net.mamoe.mirai.internal.network.protocol.packet.chat.NewContact
 import net.mamoe.mirai.internal.network.protocol.packet.chat.toLongUnsigned
 import net.mamoe.mirai.internal.network.protocol.packet.list.FriendList
 import net.mamoe.mirai.internal.utils.*
+import net.mamoe.mirai.internal.utils.io.serialization.loadAs
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.writeProtoBuf
 import net.mamoe.mirai.message.data.PlainText
 import net.mamoe.mirai.message.data.buildMessageChain
 import net.mamoe.mirai.utils.*
-import net.mamoe.mirai.utils.serialization.loadAs
-import net.mamoe.mirai.utils.serialization.readProtoBuf
-import net.mamoe.mirai.utils.serialization.writeProtoBuf
 import kotlin.random.Random
 
 
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt
index 76a4ef8b3..5917f3e08 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt
@@ -32,10 +32,10 @@ import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.writeProtoBuf
 import net.mamoe.mirai.message.data.*
 import net.mamoe.mirai.utils.currentTimeSeconds
-import net.mamoe.mirai.utils.serialization.readProtoBuf
-import net.mamoe.mirai.utils.serialization.writeProtoBuf
 import java.util.concurrent.atomic.AtomicReference
 import kotlin.contracts.InvocationKind
 import kotlin.contracts.contract
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PushForceOffline.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PushForceOffline.kt
index a3aa406af..070f78c6c 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PushForceOffline.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PushForceOffline.kt
@@ -14,7 +14,7 @@ import net.mamoe.mirai.event.events.BotOfflineEvent
 import net.mamoe.mirai.internal.QQAndroidBot
 import net.mamoe.mirai.internal.network.protocol.data.jce.RequestPushForceOffline
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
-import net.mamoe.mirai.utils.serialization.readUniPacket
+import net.mamoe.mirai.internal.utils.io.serialization.readUniPacket
 
 
 /**
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PushNotify.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PushNotify.kt
index cb7bd2a35..ee627f645 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PushNotify.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PushNotify.kt
@@ -17,7 +17,7 @@ import net.mamoe.mirai.internal.network.protocol.data.jce.RequestPushNotify
 import net.mamoe.mirai.internal.network.protocol.data.proto.MsgSvc
 import net.mamoe.mirai.internal.network.protocol.packet.IncomingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
-import net.mamoe.mirai.utils.serialization.readUniPacket
+import net.mamoe.mirai.internal.utils.io.serialization.readUniPacket
 
 
 /**
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.PbPushGroupMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.PbPushGroupMsg.kt
index 5158b5291..84004f887 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.PbPushGroupMsg.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.PbPushGroupMsg.kt
@@ -33,9 +33,9 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.MsgOnlinePush
 import net.mamoe.mirai.internal.network.protocol.data.proto.Oidb0x8fc
 import net.mamoe.mirai.internal.network.protocol.packet.IncomingPacketFactory
 import net.mamoe.mirai.internal.utils._miraiContentToString
+import net.mamoe.mirai.internal.utils.io.serialization.loadAs
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
 import net.mamoe.mirai.utils.*
-import net.mamoe.mirai.utils.serialization.loadAs
-import net.mamoe.mirai.utils.serialization.readProtoBuf
 
 /**
  * 接受群消息
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.PbPushTransMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.PbPushTransMsg.kt
index 8faf1f6f9..bdf8acfba 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.PbPushTransMsg.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.PbPushTransMsg.kt
@@ -36,8 +36,8 @@ import net.mamoe.mirai.internal.network.protocol.packet.IncomingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.buildResponseUniPacket
 import net.mamoe.mirai.internal.utils._miraiContentToString
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
 import net.mamoe.mirai.utils.*
-import net.mamoe.mirai.utils.serialization.readProtoBuf
 
 
 internal object OnlinePushPbPushTransMsg :
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.ReqPush.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.ReqPush.kt
index d6c3b2f5f..5cb207048 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.ReqPush.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/OnlinePush.ReqPush.kt
@@ -45,8 +45,9 @@ import net.mamoe.mirai.internal.network.protocol.packet.IncomingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.buildResponseUniPacket
 import net.mamoe.mirai.internal.utils.*
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.*
 import net.mamoe.mirai.utils.*
-import net.mamoe.mirai.utils.serialization.*
 
 
 //0C 01 B1 89 BE 09 5E 3D 72 A6 00 01 73 68 FC 06 00 00 00 3C
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/voice/PttStore.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/voice/PttStore.kt
index e690adb63..d1ada824d 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/voice/PttStore.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/voice/PttStore.kt
@@ -18,9 +18,9 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.Cmd0x388
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.writeProtoBuf
 import net.mamoe.mirai.utils.encodeToString
-import net.mamoe.mirai.utils.serialization.readProtoBuf
-import net.mamoe.mirai.utils.serialization.writeProtoBuf
 
 internal class PttStore {
     object GroupPttUp : OutgoingPacketFactory<GroupPttUp.Response>("PttStore.GroupPttUp") {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/list/FriendList.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/list/FriendList.kt
index 041e39f10..73b2b4e9d 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/list/FriendList.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/list/FriendList.kt
@@ -19,10 +19,10 @@ import net.mamoe.mirai.internal.network.protocol.packet.EMPTY_BYTE_ARRAY
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
-import net.mamoe.mirai.utils.serialization.jceRequestSBuffer
-import net.mamoe.mirai.utils.serialization.readUniPacket
-import net.mamoe.mirai.utils.serialization.toByteArray
-import net.mamoe.mirai.utils.serialization.writeJceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.jceRequestSBuffer
+import net.mamoe.mirai.internal.utils.io.serialization.readUniPacket
+import net.mamoe.mirai.internal.utils.io.serialization.toByteArray
+import net.mamoe.mirai.internal.utils.io.serialization.writeJceStruct
 
 
 internal class FriendList {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/list/ProfileService.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/list/ProfileService.kt
index e9d1bd613..3f2d4f600 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/list/ProfileService.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/list/ProfileService.kt
@@ -19,9 +19,9 @@ import net.mamoe.mirai.internal.network.protocol.data.jce.RequestPacket
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.buildOutgoingUniPacket
-import net.mamoe.mirai.utils.serialization.jceRequestSBuffer
-import net.mamoe.mirai.utils.serialization.readUniPacket
-import net.mamoe.mirai.utils.serialization.writeJceStruct
+import net.mamoe.mirai.internal.utils.io.serialization.jceRequestSBuffer
+import net.mamoe.mirai.internal.utils.io.serialization.readUniPacket
+import net.mamoe.mirai.internal.utils.io.serialization.writeJceStruct
 import net.mamoe.mirai.utils.toByteArray
 
 internal class ProfileService {
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/ConfigPushSvc.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/ConfigPushSvc.kt
index 57507318b..26976da73 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/ConfigPushSvc.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/ConfigPushSvc.kt
@@ -22,8 +22,13 @@ import net.mamoe.mirai.internal.network.protocol.data.jce.RequestPacket
 import net.mamoe.mirai.internal.network.protocol.packet.IncomingPacketFactory
 import net.mamoe.mirai.internal.network.protocol.packet.OutgoingPacket
 import net.mamoe.mirai.internal.network.protocol.packet.buildResponseUniPacket
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.jceRequestSBuffer
+import net.mamoe.mirai.internal.utils.io.serialization.loadAs
+import net.mamoe.mirai.internal.utils.io.serialization.readProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.readUniPacket
+import net.mamoe.mirai.internal.utils.io.serialization.writeJceStruct
 import net.mamoe.mirai.utils.*
-import net.mamoe.mirai.utils.serialization.*
 import net.mamoe.mirai.internal.network.protocol.data.jce.PushReq as PushReqJceStruct
 
 
diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/StatSvc.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/StatSvc.kt
index 0a7a836fd..e67cc6a10 100644
--- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/StatSvc.kt
+++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/StatSvc.kt
@@ -33,10 +33,10 @@ import net.mamoe.mirai.internal.network.protocol.data.proto.StatSvcGetOnline
 import net.mamoe.mirai.internal.network.protocol.packet.*
 import net.mamoe.mirai.internal.utils.NetworkType
 import net.mamoe.mirai.internal.utils._miraiContentToString
+import net.mamoe.mirai.internal.utils.io.serialization.*
 import net.mamoe.mirai.utils.currentTimeMillis
 import net.mamoe.mirai.utils.encodeToString
 import net.mamoe.mirai.utils.localIpAddress
-import net.mamoe.mirai.utils.serialization.*
 import net.mamoe.mirai.utils.toReadPacket
 
 @Suppress("EnumEntryName", "unused")
diff --git a/mirai-core/src/commonMain/kotlin/utils/io/JceStruct.kt b/mirai-core/src/commonMain/kotlin/utils/io/JceStruct.kt
index cf8c00ab1..669485e06 100644
--- a/mirai-core/src/commonMain/kotlin/utils/io/JceStruct.kt
+++ b/mirai-core/src/commonMain/kotlin/utils/io/JceStruct.kt
@@ -7,6 +7,6 @@
  *  https://github.com/mamoe/mirai/blob/master/LICENSE
  */
 
-package net.mamoe.mirai.utils
+package net.mamoe.mirai.internal.utils.io
 
 internal interface JceStruct
\ No newline at end of file
diff --git a/mirai-core/src/commonMain/kotlin/utils/io/ProtoBuf.kt b/mirai-core/src/commonMain/kotlin/utils/io/ProtoBuf.kt
index 81f07c8b4..8d1538d62 100644
--- a/mirai-core/src/commonMain/kotlin/utils/io/ProtoBuf.kt
+++ b/mirai-core/src/commonMain/kotlin/utils/io/ProtoBuf.kt
@@ -7,7 +7,7 @@
  *  https://github.com/mamoe/mirai/blob/master/LICENSE
  */
 
-package net.mamoe.mirai.utils
+package net.mamoe.mirai.internal.utils.io
 
 /**
  * 仅有标示作用
diff --git a/mirai-core/src/commonMain/kotlin/utils/io/serialization/ProtoBufWithNullableSupport.kt b/mirai-core/src/commonMain/kotlin/utils/io/serialization/ProtoBufWithNullableSupport.kt
index c7a2753c6..4dca5f2a4 100644
--- a/mirai-core/src/commonMain/kotlin/utils/io/serialization/ProtoBufWithNullableSupport.kt
+++ b/mirai-core/src/commonMain/kotlin/utils/io/serialization/ProtoBufWithNullableSupport.kt
@@ -9,7 +9,7 @@
 
 @file:Suppress("DEPRECATION_ERROR")
 
-package net.mamoe.mirai.utils.serialization
+package net.mamoe.mirai.internal.utils.io.serialization
 
 import kotlinx.serialization.*
 import kotlinx.serialization.builtins.ByteArraySerializer
@@ -26,8 +26,8 @@ import kotlinx.serialization.modules.SerializersModule
 import kotlinx.serialization.protobuf.ProtoBuf
 import kotlinx.serialization.protobuf.ProtoIntegerType
 import kotlinx.serialization.protobuf.ProtoType
-import net.mamoe.mirai.utils.serialization.ProtoBufWithNullableSupport.Varint.encodeVarint
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.serialization.ProtoBufWithNullableSupport.Varint.encodeVarint
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 import java.io.ByteArrayOutputStream
 import java.nio.ByteBuffer
 import java.nio.ByteOrder
diff --git a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/Tars.kt b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/Tars.kt
index 24baa969e..852baf033 100644
--- a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/Tars.kt
+++ b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/Tars.kt
@@ -9,7 +9,7 @@
 
 @file:Suppress("MemberVisibilityCanBePrivate", "unused")
 
-package net.mamoe.mirai.utils.serialization.tars
+package net.mamoe.mirai.internal.utils.io.serialization.tars
 
 import kotlinx.io.charsets.Charset
 import kotlinx.io.charsets.Charsets
@@ -17,9 +17,9 @@ import kotlinx.io.core.*
 import kotlinx.serialization.*
 import kotlinx.serialization.modules.EmptySerializersModule
 import kotlinx.serialization.modules.SerializersModule
-import net.mamoe.mirai.utils.serialization.tars.internal.TarsDecoder
-import net.mamoe.mirai.utils.serialization.tars.internal.TarsInput
-import net.mamoe.mirai.utils.serialization.tars.internal.TarsOld
+import net.mamoe.mirai.internal.utils.io.serialization.tars.internal.TarsDecoder
+import net.mamoe.mirai.internal.utils.io.serialization.tars.internal.TarsInput
+import net.mamoe.mirai.internal.utils.io.serialization.tars.internal.TarsOld
 
 /**
  * The main entry point to work with Tars serialization.
diff --git a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/TarsId.kt b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/TarsId.kt
index e60a163e9..0d31df958 100644
--- a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/TarsId.kt
+++ b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/TarsId.kt
@@ -7,7 +7,7 @@
  *  https://github.com/mamoe/mirai/blob/master/LICENSE
  */
 
-package net.mamoe.mirai.utils.serialization.tars
+package net.mamoe.mirai.internal.utils.io.serialization.tars
 
 import kotlinx.serialization.ExperimentalSerializationApi
 import kotlinx.serialization.SerialInfo
diff --git a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsDecoder.kt b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsDecoder.kt
index 37586539c..4ffac004b 100644
--- a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsDecoder.kt
+++ b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsDecoder.kt
@@ -9,7 +9,7 @@
 
 @file:Suppress("PrivatePropertyName")
 
-package net.mamoe.mirai.utils.serialization.tars.internal
+package net.mamoe.mirai.internal.utils.io.serialization.tars.internal
 
 import kotlinx.serialization.ExperimentalSerializationApi
 import kotlinx.serialization.InternalSerializationApi
@@ -18,8 +18,9 @@ import kotlinx.serialization.encoding.AbstractDecoder
 import kotlinx.serialization.encoding.CompositeDecoder
 import kotlinx.serialization.internal.TaggedDecoder
 import kotlinx.serialization.modules.SerializersModule
-import net.mamoe.mirai.utils.serialization.tars.Tars
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.serialization.tars.internal.*
 
 
 @OptIn(InternalSerializationApi::class, ExperimentalSerializationApi::class)
diff --git a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsInput.kt b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsInput.kt
index 3e31ee588..672dc8425 100644
--- a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsInput.kt
+++ b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsInput.kt
@@ -7,11 +7,11 @@
  *  https://github.com/mamoe/mirai/blob/master/LICENSE
  */
 
-package net.mamoe.mirai.utils.serialization.tars.internal
+package net.mamoe.mirai.internal.utils.io.serialization.tars.internal
 
 import kotlinx.io.charsets.Charset
 import kotlinx.io.core.*
-import net.mamoe.mirai.utils.serialization.tars.Tars
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars
 
 
 /**
diff --git a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsOld.kt b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsOld.kt
index 22ecbde16..c8ef2526e 100644
--- a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsOld.kt
+++ b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsOld.kt
@@ -7,7 +7,7 @@
  *  https://github.com/mamoe/mirai/blob/master/LICENSE
  */
 
-package net.mamoe.mirai.utils.serialization.tars.internal
+package net.mamoe.mirai.internal.utils.io.serialization.tars.internal
 
 import kotlinx.io.charsets.Charset
 import kotlinx.io.charsets.Charsets
@@ -24,22 +24,22 @@ import kotlinx.serialization.internal.MapLikeSerializer
 import kotlinx.serialization.internal.TaggedEncoder
 import kotlinx.serialization.modules.EmptySerializersModule
 import kotlinx.serialization.modules.SerializersModule
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.BYTE
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.DOUBLE
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.FLOAT
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.INT
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.LIST
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.LONG
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.MAP
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.SHORT
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.SIMPLE_LIST
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.STRING1
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.STRING4
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.STRUCT_BEGIN
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.STRUCT_END
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.Tars_MAX_STRING_LENGTH
-import net.mamoe.mirai.utils.serialization.tars.Tars.Companion.ZERO_TYPE
-import net.mamoe.mirai.utils.serialization.tars.TarsId
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.BYTE
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.DOUBLE
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.FLOAT
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.INT
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.LIST
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.LONG
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.MAP
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.SHORT
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.SIMPLE_LIST
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.STRING1
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.STRING4
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.STRUCT_BEGIN
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.STRUCT_END
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.Tars_MAX_STRING_LENGTH
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars.Companion.ZERO_TYPE
+import net.mamoe.mirai.internal.utils.io.serialization.tars.TarsId
 
 @OptIn(ExperimentalSerializationApi::class)
 internal inline fun <reified A : Annotation> SerialDescriptor.findAnnotation(elementIndex: Int): A? {
diff --git a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsTag.kt b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsTag.kt
index 20088a8b4..1b487becf 100644
--- a/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsTag.kt
+++ b/mirai-core/src/commonMain/kotlin/utils/io/serialization/tars/internal/TarsTag.kt
@@ -7,12 +7,12 @@
  *  https://github.com/mamoe/mirai/blob/master/LICENSE
  */
 
-package net.mamoe.mirai.utils.serialization.tars.internal
+package net.mamoe.mirai.internal.utils.io.serialization.tars.internal
 
 import kotlinx.io.core.Output
 import kotlinx.serialization.ExperimentalSerializationApi
 import kotlinx.serialization.descriptors.SerialDescriptor
-import net.mamoe.mirai.utils.serialization.tars.Tars
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars
 
 
 internal abstract class TarsTag {
diff --git a/mirai-core/src/commonMain/kotlin/utils/io/serialization/utils.kt b/mirai-core/src/commonMain/kotlin/utils/io/serialization/utils.kt
index a2ae5c3ab..97fd94331 100644
--- a/mirai-core/src/commonMain/kotlin/utils/io/serialization/utils.kt
+++ b/mirai-core/src/commonMain/kotlin/utils/io/serialization/utils.kt
@@ -10,7 +10,7 @@
 @file:JvmName("SerializationUtils")
 @file:JvmMultifileClass
 
-package net.mamoe.mirai.utils.serialization
+package net.mamoe.mirai.internal.utils.io.serialization
 
 import kotlinx.io.core.*
 import kotlinx.serialization.DeserializationStrategy
@@ -19,11 +19,11 @@ import kotlinx.serialization.descriptors.SerialDescriptor
 import net.mamoe.mirai.internal.network.protocol.data.jce.RequestDataVersion2
 import net.mamoe.mirai.internal.network.protocol.data.jce.RequestDataVersion3
 import net.mamoe.mirai.internal.network.protocol.data.jce.RequestPacket
-import net.mamoe.mirai.utils.JceStruct
-import net.mamoe.mirai.utils.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.JceStruct
+import net.mamoe.mirai.internal.utils.io.ProtoBuf
+import net.mamoe.mirai.internal.utils.io.serialization.tars.Tars
 import net.mamoe.mirai.utils.read
 import net.mamoe.mirai.utils.readPacketExact
-import net.mamoe.mirai.utils.serialization.tars.Tars
 
 internal fun <T : JceStruct> ByteArray.loadWithUniPacket(
     deserializer: DeserializationStrategy<T>,