Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
7d5f6034
Commit
7d5f6034
authored
Mar 04, 2024
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: update compact view
parent
f0a521f5
Changes
21
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
328 additions
and
400 deletions
+328
-400
user_service.proto
proto/api/v2/user_service.proto
+0
-2
README.md
proto/gen/api/v2/README.md
+0
-1
user_service.pb.go
proto/gen/api/v2/user_service.pb.go
+168
-179
README.md
proto/gen/store/README.md
+0
-2
user_setting.pb.go
proto/gen/store/user_setting.pb.go
+39
-62
user_setting.proto
proto/store/user_setting.proto
+0
-3
apidocs.swagger.yaml
server/route/api/v2/apidocs.swagger.yaml
+0
-6
user_service.go
server/route/api/v2/user_service.go
+0
-13
user_setting.go
store/db/mysql/user_setting.go
+0
-11
user_setting.go
store/db/postgres/user_setting.go
+0
-11
user_setting.go
store/db/sqlite/user_setting.go
+0
-11
gomark.wasm
web/src/assets/gomark.wasm
+0
-0
wasm_exec.js
web/src/assets/wasm_exec.js
+1
-0
CodeBlock.tsx
web/src/components/MemoContent/CodeBlock.tsx
+7
-4
Renderer.tsx
web/src/components/MemoContent/Renderer.tsx
+30
-31
TaskList.tsx
web/src/components/MemoContent/TaskList.tsx
+2
-2
index.tsx
web/src/components/MemoContent/index.tsx
+69
-28
MemoView.tsx
web/src/components/MemoView.tsx
+1
-23
SystemSection.tsx
web/src/components/Settings/SystemSection.tsx
+6
-6
node.ts
web/src/types/node.ts
+1
-1
tag.ts
web/src/utils/tag.ts
+4
-4
No files found.
proto/api/v2/user_service.proto
View file @
7d5f6034
...
@@ -161,8 +161,6 @@ message UserSetting {
...
@@ -161,8 +161,6 @@ message UserSetting {
string
memo_visibility
=
4
;
string
memo_visibility
=
4
;
// The telegram user id of the user.
// The telegram user id of the user.
string
telegram_user_id
=
5
;
string
telegram_user_id
=
5
;
// The compact view for a memo.
bool
compact_view
=
6
;
}
}
message
GetUserSettingRequest
{
message
GetUserSettingRequest
{
...
...
proto/gen/api/v2/README.md
View file @
7d5f6034
...
@@ -718,7 +718,6 @@ Used internally for obfuscating the page token.
...
@@ -718,7 +718,6 @@ Used internally for obfuscating the page token.
| appearance |
[
string
](
#string
)
| | The preferred appearance of the user. |
| appearance |
[
string
](
#string
)
| | The preferred appearance of the user. |
| memo_visibility |
[
string
](
#string
)
| | The default visibility of the memo. |
| memo_visibility |
[
string
](
#string
)
| | The default visibility of the memo. |
| telegram_user_id |
[
string
](
#string
)
| | The telegram user id of the user. |
| telegram_user_id |
[
string
](
#string
)
| | The telegram user id of the user. |
| compact_view |
[
bool
](
#bool
)
| | The compact view for a memo. |
...
...
proto/gen/api/v2/user_service.pb.go
View file @
7d5f6034
...
@@ -684,8 +684,6 @@ type UserSetting struct {
...
@@ -684,8 +684,6 @@ type UserSetting struct {
MemoVisibility
string
`protobuf:"bytes,4,opt,name=memo_visibility,json=memoVisibility,proto3" json:"memo_visibility,omitempty"`
MemoVisibility
string
`protobuf:"bytes,4,opt,name=memo_visibility,json=memoVisibility,proto3" json:"memo_visibility,omitempty"`
// The telegram user id of the user.
// The telegram user id of the user.
TelegramUserId
string
`protobuf:"bytes,5,opt,name=telegram_user_id,json=telegramUserId,proto3" json:"telegram_user_id,omitempty"`
TelegramUserId
string
`protobuf:"bytes,5,opt,name=telegram_user_id,json=telegramUserId,proto3" json:"telegram_user_id,omitempty"`
// The compact view for a memo.
CompactView
bool
`protobuf:"varint,6,opt,name=compact_view,json=compactView,proto3" json:"compact_view,omitempty"`
}
}
func
(
x
*
UserSetting
)
Reset
()
{
func
(
x
*
UserSetting
)
Reset
()
{
...
@@ -755,13 +753,6 @@ func (x *UserSetting) GetTelegramUserId() string {
...
@@ -755,13 +753,6 @@ func (x *UserSetting) GetTelegramUserId() string {
return
""
return
""
}
}
func
(
x
*
UserSetting
)
GetCompactView
()
bool
{
if
x
!=
nil
{
return
x
.
CompactView
}
return
false
}
type
GetUserSettingRequest
struct
{
type
GetUserSettingRequest
struct
{
state
protoimpl
.
MessageState
state
protoimpl
.
MessageState
sizeCache
protoimpl
.
SizeCache
sizeCache
protoimpl
.
SizeCache
...
@@ -1415,7 +1406,7 @@ var file_api_v2_user_service_proto_rawDesc = []byte{
...
@@ -1415,7 +1406,7 @@ var file_api_v2_user_service_proto_rawDesc = []byte{
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x22
,
0x14
,
0x0a
,
0x12
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x22
,
0x14
,
0x0a
,
0x12
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x
cf
,
0x01
,
0x0a
,
0x0b
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x
ac
,
0x01
,
0x0a
,
0x0b
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x6c
,
0x6f
,
0x63
,
0x61
,
0x6c
,
0x65
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x16
,
0x0a
,
0x06
,
0x6c
,
0x6f
,
0x63
,
0x61
,
0x6c
,
0x65
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
...
@@ -1426,180 +1417,178 @@ var file_api_v2_user_service_proto_rawDesc = []byte{
...
@@ -1426,180 +1417,178 @@ var file_api_v2_user_service_proto_rawDesc = []byte{
0x52
,
0x0e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x56
,
0x69
,
0x73
,
0x69
,
0x62
,
0x69
,
0x6c
,
0x69
,
0x74
,
0x79
,
0x52
,
0x0e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x56
,
0x69
,
0x73
,
0x69
,
0x62
,
0x69
,
0x6c
,
0x69
,
0x74
,
0x79
,
0x12
,
0x28
,
0x0a
,
0x10
,
0x74
,
0x65
,
0x6c
,
0x65
,
0x67
,
0x72
,
0x61
,
0x6d
,
0x5f
,
0x75
,
0x73
,
0x65
,
0x12
,
0x28
,
0x0a
,
0x10
,
0x74
,
0x65
,
0x6c
,
0x65
,
0x67
,
0x72
,
0x61
,
0x6d
,
0x5f
,
0x75
,
0x73
,
0x65
,
0x72
,
0x5f
,
0x69
,
0x64
,
0x18
,
0x05
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0e
,
0x74
,
0x65
,
0x6c
,
0x65
,
0x72
,
0x5f
,
0x69
,
0x64
,
0x18
,
0x05
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0e
,
0x74
,
0x65
,
0x6c
,
0x65
,
0x67
,
0x72
,
0x61
,
0x6d
,
0x55
,
0x73
,
0x65
,
0x72
,
0x49
,
0x64
,
0x12
,
0x21
,
0x0a
,
0x0c
,
0x63
,
0x6f
,
0x67
,
0x72
,
0x61
,
0x6d
,
0x55
,
0x73
,
0x65
,
0x72
,
0x49
,
0x64
,
0x22
,
0x2b
,
0x0a
,
0x15
,
0x47
,
0x65
,
0x6d
,
0x70
,
0x61
,
0x63
,
0x74
,
0x5f
,
0x76
,
0x69
,
0x65
,
0x77
,
0x18
,
0x06
,
0x20
,
0x01
,
0x28
,
0x08
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x71
,
0x75
,
0x52
,
0x0b
,
0x63
,
0x6f
,
0x6d
,
0x70
,
0x61
,
0x63
,
0x74
,
0x56
,
0x69
,
0x65
,
0x77
,
0x22
,
0x2b
,
0x0a
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x15
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x22
,
0x4d
,
0x0a
,
0x16
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x22
,
0x4d
,
0x0a
,
0x16
,
0x47
,
0x65
,
0x65
,
0x12
,
0x33
,
0x0a
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x18
,
0x01
,
0x20
,
0x01
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x73
,
0x70
,
0x28
,
0x0b
,
0x32
,
0x19
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x33
,
0x0a
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x18
,
0x32
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x07
,
0x73
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x19
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x22
,
0x91
,
0x01
,
0x0a
,
0x18
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x71
,
0x75
,
0x52
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x22
,
0x91
,
0x01
,
0x0a
,
0x18
,
0x55
,
0x70
,
0x65
,
0x73
,
0x74
,
0x12
,
0x38
,
0x0a
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x19
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x42
,
0x03
,
0xe0
,
0x41
,
0x02
,
0x52
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x3b
,
0x0a
,
0x0b
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x46
,
0x69
,
0x65
,
0x6c
,
0x64
,
0x4d
,
0x61
,
0x73
,
0x6b
,
0x52
,
0x0a
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x4d
,
0x61
,
0x73
,
0x6b
,
0x22
,
0x50
,
0x0a
,
0x19
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x38
,
0x0a
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x33
,
0x0a
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x67
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x19
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x6e
,
0x67
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x19
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x6e
,
0x67
,
0x42
,
0x03
,
0xe0
,
0x41
,
0x02
,
0x52
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x22
,
0xca
,
0x01
,
0x0a
,
0x12
,
0x3b
,
0x0a
,
0x0b
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x18
,
0x0f
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x02
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x12
,
0x21
,
0x0a
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x46
,
0x69
,
0x65
,
0x6c
,
0x64
,
0x4d
,
0x61
,
0x73
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x52
,
0x0a
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x4d
,
0x61
,
0x73
,
0x6b
,
0x22
,
0x50
,
0x0a
,
0x6b
,
0x65
,
0x6e
,
0x12
,
0x20
,
0x0a
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x63
,
0x72
,
0x69
,
0x70
,
0x74
,
0x69
,
0x19
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x63
,
0x72
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x33
,
0x0a
,
0x07
,
0x73
,
0x65
,
0x70
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x37
,
0x0a
,
0x09
,
0x69
,
0x73
,
0x73
,
0x75
,
0x65
,
0x64
,
0x5f
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x19
,
0x2e
,
0x6d
,
0x65
,
0x61
,
0x74
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x54
,
0x69
,
0x6d
,
0x65
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x22
,
0x74
,
0x61
,
0x6d
,
0x70
,
0x52
,
0x08
,
0x69
,
0x73
,
0x73
,
0x75
,
0x65
,
0x64
,
0x41
,
0x74
,
0x12
,
0x39
,
0xca
,
0x01
,
0x0a
,
0x0f
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x0a
,
0x0a
,
0x65
,
0x78
,
0x70
,
0x69
,
0x72
,
0x65
,
0x73
,
0x5f
,
0x61
,
0x74
,
0x18
,
0x04
,
0x20
,
0x01
,
0x6b
,
0x65
,
0x6e
,
0x12
,
0x21
,
0x0a
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6b
,
0x65
,
0x6e
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x54
,
0x69
,
0x6d
,
0x65
,
0x73
,
0x74
,
0x61
,
0x6d
,
0x70
,
0x52
,
0x09
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x12
,
0x20
,
0x0a
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x63
,
0x72
,
0x69
,
0x65
,
0x78
,
0x70
,
0x69
,
0x72
,
0x65
,
0x73
,
0x41
,
0x74
,
0x22
,
0x31
,
0x0a
,
0x1b
,
0x4c
,
0x69
,
0x73
,
0x70
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x63
,
0x72
,
0x69
,
0x70
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x37
,
0x0a
,
0x09
,
0x69
,
0x73
,
0x73
,
0x75
,
0x73
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x65
,
0x64
,
0x5f
,
0x61
,
0x74
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x22
,
0x62
,
0x0a
,
0x1c
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x54
,
0x69
,
0x6d
,
0x65
,
0x73
,
0x74
,
0x61
,
0x6d
,
0x70
,
0x52
,
0x08
,
0x69
,
0x73
,
0x73
,
0x75
,
0x65
,
0x64
,
0x41
,
0x74
,
0x12
,
0x39
,
0x0a
,
0x0a
,
0x65
,
0x78
,
0x70
,
0x69
,
0x72
,
0x65
,
0x73
,
0x5f
,
0x61
,
0x74
,
0x18
,
0x04
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x54
,
0x69
,
0x6d
,
0x65
,
0x73
,
0x74
,
0x61
,
0x6d
,
0x70
,
0x52
,
0x09
,
0x65
,
0x78
,
0x70
,
0x69
,
0x72
,
0x65
,
0x73
,
0x41
,
0x74
,
0x22
,
0x31
,
0x0a
,
0x1b
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x42
,
0x0a
,
0x0d
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x22
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x18
,
0x01
,
0x20
,
0x62
,
0x0a
,
0x1c
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x1d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x42
,
0x0a
,
0x0d
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x65
,
0x6e
,
0x52
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x1d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x22
,
0xa3
,
0x01
,
0x0a
,
0x1c
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x65
,
0x6e
,
0x73
,
0x22
,
0xa3
,
0x01
,
0x0a
,
0x1c
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x20
,
0x0a
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x63
,
0x72
,
0x69
,
0x70
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x71
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x63
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x72
,
0x69
,
0x70
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x3e
,
0x0a
,
0x0a
,
0x65
,
0x78
,
0x70
,
0x69
,
0x72
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x20
,
0x0a
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x63
,
0x65
,
0x73
,
0x5f
,
0x61
,
0x74
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x67
,
0x6f
,
0x72
,
0x69
,
0x70
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x64
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x2e
,
0x54
,
0x69
,
0x65
,
0x73
,
0x63
,
0x72
,
0x69
,
0x70
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x12
,
0x3e
,
0x0a
,
0x0a
,
0x65
,
0x78
,
0x6d
,
0x65
,
0x73
,
0x74
,
0x61
,
0x6d
,
0x70
,
0x48
,
0x00
,
0x52
,
0x09
,
0x65
,
0x78
,
0x70
,
0x69
,
0x72
,
0x70
,
0x69
,
0x72
,
0x65
,
0x73
,
0x5f
,
0x61
,
0x74
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x65
,
0x73
,
0x41
,
0x74
,
0x88
,
0x01
,
0x01
,
0x42
,
0x0d
,
0x0a
,
0x0b
,
0x5f
,
0x65
,
0x78
,
0x70
,
0x69
,
0x2e
,
0x67
,
0x6f
,
0x6f
,
0x67
,
0x6c
,
0x65
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x62
,
0x75
,
0x66
,
0x72
,
0x65
,
0x73
,
0x5f
,
0x61
,
0x74
,
0x22
,
0x61
,
0x0a
,
0x1d
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x2e
,
0x54
,
0x69
,
0x6d
,
0x65
,
0x73
,
0x74
,
0x61
,
0x6d
,
0x70
,
0x48
,
0x00
,
0x52
,
0x09
,
0x65
,
0x78
,
0x70
,
0x69
,
0x72
,
0x65
,
0x73
,
0x41
,
0x74
,
0x88
,
0x01
,
0x01
,
0x42
,
0x0d
,
0x0a
,
0x0b
,
0x5f
,
0x65
,
0x78
,
0x70
,
0x69
,
0x72
,
0x65
,
0x73
,
0x5f
,
0x61
,
0x74
,
0x22
,
0x61
,
0x0a
,
0x1d
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x40
,
0x0a
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x0b
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x22
,
0x55
,
0x0a
,
0x1c
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x40
,
0x0a
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1d
,
0x2e
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x0b
,
0x61
,
0x63
,
0x12
,
0x21
,
0x0a
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x22
,
0x55
,
0x0a
,
0x1c
,
0x44
,
0x65
,
0x6c
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x6b
,
0x65
,
0x6e
,
0x22
,
0x1f
,
0x0a
,
0x1d
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x73
,
0x70
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x12
,
0x21
,
0x0a
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x32
,
0xb5
,
0x0b
,
0x0a
,
0x0b
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x72
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x76
,
0x69
,
0x63
,
0x65
,
0x12
,
0x63
,
0x0a
,
0x09
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x12
,
0x1e
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x22
,
0x1f
,
0x0a
,
0x1d
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x2e
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x73
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x74
,
0x1a
,
0x1f
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x65
,
0x32
,
0xb5
,
0x0b
,
0x0a
,
0x0b
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x72
,
0x76
,
0x69
,
0x63
,
0x2e
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x73
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x65
,
0x12
,
0x63
,
0x0a
,
0x09
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x73
,
0x12
,
0x1e
,
0x73
,
0x65
,
0x22
,
0x15
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x0f
,
0x12
,
0x0d
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4c
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x12
,
0x6d
,
0x0a
,
0x07
,
0x47
,
0x65
,
0x74
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x73
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x1f
,
0x55
,
0x73
,
0x65
,
0x72
,
0x12
,
0x1c
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4c
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x73
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x73
,
0x74
,
0x1a
,
0x1d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x15
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x0f
,
0x12
,
0x0d
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x32
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x12
,
0x6d
,
0x0a
,
0x07
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x65
,
0x22
,
0x25
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x18
,
0x72
,
0x12
,
0x1c
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x12
,
0x16
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x12
,
0x73
,
0x0a
,
0x0a
,
0x43
,
0x72
,
0x65
,
0x61
,
0x1d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x47
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x12
,
0x1f
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x25
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x18
,
0x12
,
0x16
,
0x2f
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x20
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x12
,
0x73
,
0x0a
,
0x0a
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x72
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x22
,
0xda
,
0x41
,
0x04
,
0x75
,
0x73
,
0x73
,
0x65
,
0x72
,
0x12
,
0x1f
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x65
,
0x72
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x15
,
0x3a
,
0x04
,
0x75
,
0x73
,
0x65
,
0x72
,
0x22
,
0x0d
,
0x76
,
0x32
,
0x2e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x71
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x12
,
0x8d
,
0x01
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x20
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x0a
,
0x0a
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x12
,
0x1f
,
0x2e
,
0x6d
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x22
,
0xda
,
0x41
,
0x04
,
0x75
,
0x73
,
0x65
,
0x72
,
0x82
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x20
,
0x2e
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x15
,
0x3a
,
0x04
,
0x75
,
0x73
,
0x65
,
0x72
,
0x22
,
0x0d
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x12
,
0x8d
,
0x01
,
0x0a
,
0x0a
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x12
,
0x1f
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x20
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x3c
,
0xda
,
0x41
,
0x10
,
0x75
,
0x73
,
0x65
,
0x72
,
0x2c
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x23
,
0x3a
,
0x04
,
0x75
,
0x73
,
0x65
,
0x72
,
0x32
,
0x1b
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x75
,
0x73
,
0x65
,
0x72
,
0x2e
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x12
,
0x76
,
0x0a
,
0x0a
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x12
,
0x1f
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x20
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x25
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x18
,
0x2a
,
0x16
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x12
,
0x8a
,
0x01
,
0x0a
,
0x0e
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x24
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x2d
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x20
,
0x12
,
0x1e
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x2f
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0xb3
,
0x01
,
0x0a
,
0x11
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x26
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x27
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x70
,
0x64
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x3c
,
0xda
,
0x41
,
0x10
,
0x75
,
0x73
,
0x65
,
0x72
,
0x2c
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x4d
,
0xda
,
0x41
,
0x13
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x23
,
0x3a
,
0x04
,
0x75
,
0x73
,
0x65
,
0x72
,
0x6e
,
0x67
,
0x2c
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x82
,
0xd3
,
0x32
,
0x1b
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x75
,
0x73
,
0x65
,
0x72
,
0x2e
,
0xe4
,
0x93
,
0x02
,
0x31
,
0x3a
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x32
,
0x26
,
0x2f
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x12
,
0x76
,
0x0a
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x2e
,
0x0a
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x12
,
0x1f
,
0x2e
,
0x6d
,
0x65
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x2f
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x7d
,
0x12
,
0xa2
,
0x01
,
0x0a
,
0x14
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x12
,
0x29
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x2a
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x33
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x26
,
0x12
,
0x24
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x2f
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x12
,
0xa8
,
0x01
,
0x0a
,
0x15
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x12
,
0x2a
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x2b
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x36
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x29
,
0x3a
,
0x01
,
0x2a
,
0x22
,
0x24
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x2f
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x12
,
0xc1
,
0x01
,
0x0a
,
0x15
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x12
,
0x2a
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x2b
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x20
,
0x2e
,
0x6d
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x4f
,
0xda
,
0x41
,
0x11
,
0x6e
,
0x61
,
0x6d
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x25
,
0x65
,
0x2c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x82
,
0xd3
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x18
,
0x2a
,
0x16
,
0x2f
,
0xe4
,
0x93
,
0x02
,
0x35
,
0x2a
,
0x33
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x2f
,
0x61
,
0x63
,
0x63
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x12
,
0x8a
,
0x01
,
0x0a
,
0x0e
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x2f
,
0x7b
,
0x61
,
0x63
,
0x63
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x7d
,
0x42
,
0xa8
,
0x01
,
0x0a
,
0x10
,
0x63
,
0x6f
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x6d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x42
,
0x10
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x24
,
0x2e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x72
,
0x76
,
0x69
,
0x63
,
0x65
,
0x50
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x47
,
0x65
,
0x74
,
0x50
,
0x01
,
0x5a
,
0x30
,
0x67
,
0x69
,
0x74
,
0x68
,
0x75
,
0x62
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x75
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x73
,
0x65
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x70
,
0x72
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x2d
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x6f
,
0x74
,
0x6f
,
0x2f
,
0x67
,
0x65
,
0x6e
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x3b
,
0x61
,
0x02
,
0x20
,
0x12
,
0x1e
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x70
,
0x69
,
0x76
,
0x32
,
0xa2
,
0x02
,
0x03
,
0x4d
,
0x41
,
0x58
,
0xaa
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x2f
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6f
,
0x73
,
0x2e
,
0x41
,
0x70
,
0x69
,
0x2e
,
0x56
,
0x32
,
0xca
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x6e
,
0x67
,
0x12
,
0xb3
,
0x01
,
0x0a
,
0x11
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x32
,
0xe2
,
0x02
,
0x18
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x26
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x32
,
0x5c
,
0x47
,
0x50
,
0x42
,
0x4d
,
0x65
,
0x74
,
0x61
,
0x64
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x61
,
0x74
,
0x61
,
0xea
,
0x02
,
0x0e
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x3a
,
0x3a
,
0x41
,
0x70
,
0x69
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x3a
,
0x3a
,
0x56
,
0x32
,
0x62
,
0x06
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x33
,
0x1a
,
0x27
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x55
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x4d
,
0xda
,
0x41
,
0x13
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x2c
,
0x75
,
0x70
,
0x64
,
0x61
,
0x74
,
0x65
,
0x5f
,
0x6d
,
0x61
,
0x73
,
0x6b
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x31
,
0x3a
,
0x07
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x32
,
0x26
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x2e
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x2f
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x7d
,
0x12
,
0xa2
,
0x01
,
0x0a
,
0x14
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x12
,
0x29
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x2a
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x33
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x26
,
0x12
,
0x24
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x2f
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x12
,
0xa8
,
0x01
,
0x0a
,
0x15
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x12
,
0x2a
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x2b
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x43
,
0x72
,
0x65
,
0x61
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x36
,
0xda
,
0x41
,
0x04
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x29
,
0x3a
,
0x01
,
0x2a
,
0x22
,
0x24
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x2f
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x12
,
0xc1
,
0x01
,
0x0a
,
0x15
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x12
,
0x2a
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x2b
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x44
,
0x65
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x55
,
0x73
,
0x65
,
0x72
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x4f
,
0xda
,
0x41
,
0x11
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x2c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x35
,
0x2a
,
0x33
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x7b
,
0x6e
,
0x61
,
0x6d
,
0x65
,
0x3d
,
0x75
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2f
,
0x2a
,
0x7d
,
0x2f
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x2f
,
0x7b
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x7d
,
0x42
,
0xa8
,
0x01
,
0x0a
,
0x10
,
0x63
,
0x6f
,
0x6d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x42
,
0x10
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x72
,
0x76
,
0x69
,
0x63
,
0x65
,
0x50
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x50
,
0x01
,
0x5a
,
0x30
,
0x67
,
0x69
,
0x74
,
0x68
,
0x75
,
0x62
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x2f
,
0x67
,
0x65
,
0x6e
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x3b
,
0x61
,
0x70
,
0x69
,
0x76
,
0x32
,
0xa2
,
0x02
,
0x03
,
0x4d
,
0x41
,
0x58
,
0xaa
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x41
,
0x70
,
0x69
,
0x2e
,
0x56
,
0x32
,
0xca
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x32
,
0xe2
,
0x02
,
0x18
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x32
,
0x5c
,
0x47
,
0x50
,
0x42
,
0x4d
,
0x65
,
0x74
,
0x61
,
0x64
,
0x61
,
0x74
,
0x61
,
0xea
,
0x02
,
0x0e
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x3a
,
0x3a
,
0x41
,
0x70
,
0x69
,
0x3a
,
0x3a
,
0x56
,
0x32
,
0x62
,
0x06
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x33
,
}
}
var
(
var
(
...
...
proto/gen/store/README.md
View file @
7d5f6034
...
@@ -289,7 +289,6 @@
...
@@ -289,7 +289,6 @@
| appearance |
[
string
](
#string
)
| | |
| appearance |
[
string
](
#string
)
| | |
| memo_visibility |
[
string
](
#string
)
| | |
| memo_visibility |
[
string
](
#string
)
| | |
| telegram_user_id |
[
string
](
#string
)
| | |
| telegram_user_id |
[
string
](
#string
)
| | |
| compact_view |
[
bool
](
#bool
)
| | |
...
@@ -311,7 +310,6 @@
...
@@ -311,7 +310,6 @@
| USER_SETTING_APPEARANCE | 3 | The appearance of the user. |
| USER_SETTING_APPEARANCE | 3 | The appearance of the user. |
| USER_SETTING_MEMO_VISIBILITY | 4 | The visibility of the memo. |
| USER_SETTING_MEMO_VISIBILITY | 4 | The visibility of the memo. |
| USER_SETTING_TELEGRAM_USER_ID | 5 | The telegram user id of the user. |
| USER_SETTING_TELEGRAM_USER_ID | 5 | The telegram user id of the user. |
| USER_SETTING_COMPACT_VIEW | 6 | The compact view for a memo. |
...
...
proto/gen/store/user_setting.pb.go
View file @
7d5f6034
...
@@ -34,8 +34,6 @@ const (
...
@@ -34,8 +34,6 @@ const (
UserSettingKey_USER_SETTING_MEMO_VISIBILITY
UserSettingKey
=
4
UserSettingKey_USER_SETTING_MEMO_VISIBILITY
UserSettingKey
=
4
// The telegram user id of the user.
// The telegram user id of the user.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
UserSettingKey
=
5
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
UserSettingKey
=
5
// The compact view for a memo.
UserSettingKey_USER_SETTING_COMPACT_VIEW
UserSettingKey
=
6
)
)
// Enum value maps for UserSettingKey.
// Enum value maps for UserSettingKey.
...
@@ -47,7 +45,6 @@ var (
...
@@ -47,7 +45,6 @@ var (
3
:
"USER_SETTING_APPEARANCE"
,
3
:
"USER_SETTING_APPEARANCE"
,
4
:
"USER_SETTING_MEMO_VISIBILITY"
,
4
:
"USER_SETTING_MEMO_VISIBILITY"
,
5
:
"USER_SETTING_TELEGRAM_USER_ID"
,
5
:
"USER_SETTING_TELEGRAM_USER_ID"
,
6
:
"USER_SETTING_COMPACT_VIEW"
,
}
}
UserSettingKey_value
=
map
[
string
]
int32
{
UserSettingKey_value
=
map
[
string
]
int32
{
"USER_SETTING_KEY_UNSPECIFIED"
:
0
,
"USER_SETTING_KEY_UNSPECIFIED"
:
0
,
...
@@ -56,7 +53,6 @@ var (
...
@@ -56,7 +53,6 @@ var (
"USER_SETTING_APPEARANCE"
:
3
,
"USER_SETTING_APPEARANCE"
:
3
,
"USER_SETTING_MEMO_VISIBILITY"
:
4
,
"USER_SETTING_MEMO_VISIBILITY"
:
4
,
"USER_SETTING_TELEGRAM_USER_ID"
:
5
,
"USER_SETTING_TELEGRAM_USER_ID"
:
5
,
"USER_SETTING_COMPACT_VIEW"
:
6
,
}
}
)
)
...
@@ -101,7 +97,6 @@ type UserSetting struct {
...
@@ -101,7 +97,6 @@ type UserSetting struct {
// *UserSetting_Appearance
// *UserSetting_Appearance
// *UserSetting_MemoVisibility
// *UserSetting_MemoVisibility
// *UserSetting_TelegramUserId
// *UserSetting_TelegramUserId
// *UserSetting_CompactView
Value
isUserSetting_Value
`protobuf_oneof:"value"`
Value
isUserSetting_Value
`protobuf_oneof:"value"`
}
}
...
@@ -193,13 +188,6 @@ func (x *UserSetting) GetTelegramUserId() string {
...
@@ -193,13 +188,6 @@ func (x *UserSetting) GetTelegramUserId() string {
return
""
return
""
}
}
func
(
x
*
UserSetting
)
GetCompactView
()
bool
{
if
x
,
ok
:=
x
.
GetValue
()
.
(
*
UserSetting_CompactView
);
ok
{
return
x
.
CompactView
}
return
false
}
type
isUserSetting_Value
interface
{
type
isUserSetting_Value
interface
{
isUserSetting_Value
()
isUserSetting_Value
()
}
}
...
@@ -224,10 +212,6 @@ type UserSetting_TelegramUserId struct {
...
@@ -224,10 +212,6 @@ type UserSetting_TelegramUserId struct {
TelegramUserId
string
`protobuf:"bytes,7,opt,name=telegram_user_id,json=telegramUserId,proto3,oneof"`
TelegramUserId
string
`protobuf:"bytes,7,opt,name=telegram_user_id,json=telegramUserId,proto3,oneof"`
}
}
type
UserSetting_CompactView
struct
{
CompactView
bool
`protobuf:"varint,8,opt,name=compact_view,json=compactView,proto3,oneof"`
}
func
(
*
UserSetting_AccessTokens
)
isUserSetting_Value
()
{}
func
(
*
UserSetting_AccessTokens
)
isUserSetting_Value
()
{}
func
(
*
UserSetting_Locale
)
isUserSetting_Value
()
{}
func
(
*
UserSetting_Locale
)
isUserSetting_Value
()
{}
...
@@ -238,8 +222,6 @@ func (*UserSetting_MemoVisibility) isUserSetting_Value() {}
...
@@ -238,8 +222,6 @@ func (*UserSetting_MemoVisibility) isUserSetting_Value() {}
func
(
*
UserSetting_TelegramUserId
)
isUserSetting_Value
()
{}
func
(
*
UserSetting_TelegramUserId
)
isUserSetting_Value
()
{}
func
(
*
UserSetting_CompactView
)
isUserSetting_Value
()
{}
type
AccessTokensUserSetting
struct
{
type
AccessTokensUserSetting
struct
{
state
protoimpl
.
MessageState
state
protoimpl
.
MessageState
sizeCache
protoimpl
.
SizeCache
sizeCache
protoimpl
.
SizeCache
...
@@ -350,7 +332,7 @@ var File_store_user_setting_proto protoreflect.FileDescriptor
...
@@ -350,7 +332,7 @@ var File_store_user_setting_proto protoreflect.FileDescriptor
var
file_store_user_setting_proto_rawDesc
=
[]
byte
{
var
file_store_user_setting_proto_rawDesc
=
[]
byte
{
0x0a
,
0x18
,
0x73
,
0x74
,
0x6f
,
0x72
,
0x65
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x72
,
0x5f
,
0x73
,
0x65
,
0x74
,
0x0a
,
0x18
,
0x73
,
0x74
,
0x6f
,
0x72
,
0x65
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x72
,
0x5f
,
0x73
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x12
,
0x0b
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x2e
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x12
,
0x0b
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x73
,
0x74
,
0x6f
,
0x72
,
0x65
,
0x22
,
0x
e3
,
0x02
,
0x0a
,
0x0b
,
0x55
,
0x73
,
0x65
,
0x72
,
0x73
,
0x2e
,
0x73
,
0x74
,
0x6f
,
0x72
,
0x65
,
0x22
,
0x
be
,
0x02
,
0x0a
,
0x0b
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x17
,
0x0a
,
0x07
,
0x75
,
0x73
,
0x65
,
0x72
,
0x5f
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x17
,
0x0a
,
0x07
,
0x75
,
0x73
,
0x65
,
0x72
,
0x5f
,
0x69
,
0x64
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x06
,
0x75
,
0x73
,
0x65
,
0x72
,
0x49
,
0x64
,
0x69
,
0x64
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x06
,
0x75
,
0x73
,
0x65
,
0x72
,
0x49
,
0x64
,
0x12
,
0x2d
,
0x0a
,
0x03
,
0x6b
,
0x65
,
0x79
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x0e
,
0x32
,
0x1b
,
0x2e
,
0x12
,
0x2d
,
0x0a
,
0x03
,
0x6b
,
0x65
,
0x79
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x0e
,
0x32
,
0x1b
,
0x2e
,
...
@@ -369,48 +351,44 @@ var file_store_user_setting_proto_rawDesc = []byte{
...
@@ -369,48 +351,44 @@ var file_store_user_setting_proto_rawDesc = []byte{
0x09
,
0x48
,
0x00
,
0x52
,
0x0e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x56
,
0x69
,
0x73
,
0x69
,
0x62
,
0x69
,
0x6c
,
0x09
,
0x48
,
0x00
,
0x52
,
0x0e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x56
,
0x69
,
0x73
,
0x69
,
0x62
,
0x69
,
0x6c
,
0x69
,
0x74
,
0x79
,
0x12
,
0x2a
,
0x0a
,
0x10
,
0x74
,
0x65
,
0x6c
,
0x65
,
0x67
,
0x72
,
0x61
,
0x6d
,
0x5f
,
0x69
,
0x74
,
0x79
,
0x12
,
0x2a
,
0x0a
,
0x10
,
0x74
,
0x65
,
0x6c
,
0x65
,
0x67
,
0x72
,
0x61
,
0x6d
,
0x5f
,
0x75
,
0x73
,
0x65
,
0x72
,
0x5f
,
0x69
,
0x64
,
0x18
,
0x07
,
0x20
,
0x01
,
0x28
,
0x09
,
0x48
,
0x00
,
0x52
,
0x75
,
0x73
,
0x65
,
0x72
,
0x5f
,
0x69
,
0x64
,
0x18
,
0x07
,
0x20
,
0x01
,
0x28
,
0x09
,
0x48
,
0x00
,
0x52
,
0x0e
,
0x74
,
0x65
,
0x6c
,
0x65
,
0x67
,
0x72
,
0x61
,
0x6d
,
0x55
,
0x73
,
0x65
,
0x72
,
0x49
,
0x64
,
0x12
,
0x0e
,
0x74
,
0x65
,
0x6c
,
0x65
,
0x67
,
0x72
,
0x61
,
0x6d
,
0x55
,
0x73
,
0x65
,
0x72
,
0x49
,
0x64
,
0x42
,
0x23
,
0x0a
,
0x0c
,
0x63
,
0x6f
,
0x6d
,
0x70
,
0x61
,
0x63
,
0x74
,
0x5f
,
0x76
,
0x69
,
0x65
,
0x77
,
0x18
,
0x07
,
0x0a
,
0x05
,
0x76
,
0x61
,
0x6c
,
0x75
,
0x65
,
0x22
,
0xc4
,
0x01
,
0x0a
,
0x17
,
0x41
,
0x63
,
0x63
,
0x08
,
0x20
,
0x01
,
0x28
,
0x08
,
0x48
,
0x00
,
0x52
,
0x0b
,
0x63
,
0x6f
,
0x6d
,
0x70
,
0x61
,
0x63
,
0x74
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x56
,
0x69
,
0x65
,
0x77
,
0x42
,
0x07
,
0x0a
,
0x05
,
0x76
,
0x61
,
0x6c
,
0x75
,
0x65
,
0x22
,
0xc4
,
0x01
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x55
,
0x0a
,
0x0d
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x0a
,
0x17
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x55
,
0x73
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x30
,
0x2e
,
0x6d
,
0x65
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x12
,
0x55
,
0x0a
,
0x0d
,
0x61
,
0x63
,
0x63
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x73
,
0x74
,
0x6f
,
0x72
,
0x65
,
0x2e
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x32
,
0x30
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x73
,
0x74
,
0x6f
,
0x72
,
0x65
,
0x2e
,
0x41
,
0x67
,
0x2e
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x52
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x1a
,
0x52
,
0x0a
,
0x0b
,
0x41
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x2e
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x12
,
0x21
,
0x0a
,
0x0c
,
0x61
,
0x63
,
0x65
,
0x6e
,
0x52
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x73
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x1a
,
0x52
,
0x0a
,
0x0b
,
0x41
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x12
,
0x52
,
0x0b
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x12
,
0x20
,
0x0a
,
0x21
,
0x0a
,
0x0c
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x5f
,
0x74
,
0x6f
,
0x6b
,
0x65
,
0x6e
,
0x18
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x63
,
0x72
,
0x69
,
0x70
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x61
,
0x63
,
0x63
,
0x65
,
0x73
,
0x73
,
0x54
,
0x6f
,
0x6b
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x63
,
0x72
,
0x69
,
0x70
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x2a
,
0x65
,
0x6e
,
0x12
,
0x20
,
0x0a
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x63
,
0x72
,
0x69
,
0x70
,
0x74
,
0x69
,
0x6f
,
0xcd
,
0x01
,
0x0a
,
0x0e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x4b
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0b
,
0x64
,
0x65
,
0x73
,
0x63
,
0x72
,
0x69
,
0x70
,
0x65
,
0x79
,
0x12
,
0x20
,
0x0a
,
0x1c
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x54
,
0x49
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x2a
,
0xec
,
0x01
,
0x0a
,
0x0e
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x4e
,
0x47
,
0x5f
,
0x4b
,
0x45
,
0x59
,
0x5f
,
0x55
,
0x4e
,
0x53
,
0x50
,
0x45
,
0x43
,
0x49
,
0x46
,
0x49
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x4b
,
0x65
,
0x79
,
0x12
,
0x20
,
0x0a
,
0x1c
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x45
,
0x44
,
0x10
,
0x00
,
0x12
,
0x1e
,
0x0a
,
0x1a
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x53
,
0x45
,
0x54
,
0x54
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x4b
,
0x45
,
0x59
,
0x5f
,
0x55
,
0x4e
,
0x53
,
0x50
,
0x54
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x41
,
0x43
,
0x43
,
0x45
,
0x53
,
0x53
,
0x5f
,
0x54
,
0x4f
,
0x4b
,
0x45
,
0x45
,
0x43
,
0x49
,
0x46
,
0x49
,
0x45
,
0x44
,
0x10
,
0x00
,
0x12
,
0x1e
,
0x0a
,
0x1a
,
0x55
,
0x53
,
0x45
,
0x4e
,
0x53
,
0x10
,
0x01
,
0x12
,
0x17
,
0x0a
,
0x13
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x54
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x41
,
0x43
,
0x43
,
0x45
,
0x53
,
0x53
,
0x54
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x4c
,
0x4f
,
0x43
,
0x41
,
0x4c
,
0x45
,
0x10
,
0x02
,
0x12
,
0x1b
,
0x0a
,
0x5f
,
0x54
,
0x4f
,
0x4b
,
0x45
,
0x4e
,
0x53
,
0x10
,
0x01
,
0x12
,
0x17
,
0x0a
,
0x13
,
0x55
,
0x53
,
0x45
,
0x17
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x54
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x41
,
0x50
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x54
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x4c
,
0x4f
,
0x43
,
0x41
,
0x4c
,
0x45
,
0x50
,
0x45
,
0x41
,
0x52
,
0x41
,
0x4e
,
0x43
,
0x45
,
0x10
,
0x03
,
0x12
,
0x20
,
0x0a
,
0x1c
,
0x55
,
0x53
,
0x10
,
0x02
,
0x12
,
0x1b
,
0x0a
,
0x17
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x54
,
0x49
,
0x45
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x54
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x4d
,
0x45
,
0x4d
,
0x4f
,
0x5f
,
0x4e
,
0x47
,
0x5f
,
0x41
,
0x50
,
0x50
,
0x45
,
0x41
,
0x52
,
0x41
,
0x4e
,
0x43
,
0x45
,
0x10
,
0x03
,
0x12
,
0x56
,
0x49
,
0x53
,
0x49
,
0x42
,
0x49
,
0x4c
,
0x49
,
0x54
,
0x59
,
0x10
,
0x04
,
0x12
,
0x21
,
0x0a
,
0x1d
,
0x20
,
0x0a
,
0x1c
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x54
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x54
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x54
,
0x45
,
0x4c
,
0x4d
,
0x45
,
0x4d
,
0x4f
,
0x5f
,
0x56
,
0x49
,
0x53
,
0x49
,
0x42
,
0x49
,
0x4c
,
0x49
,
0x54
,
0x59
,
0x10
,
0x45
,
0x47
,
0x52
,
0x41
,
0x4d
,
0x5f
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x49
,
0x44
,
0x10
,
0x05
,
0x42
,
0x04
,
0x12
,
0x21
,
0x0a
,
0x1d
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x54
,
0x49
,
0x4e
,
0x9b
,
0x01
,
0x0a
,
0x0f
,
0x63
,
0x6f
,
0x6d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x73
,
0x74
,
0x47
,
0x5f
,
0x54
,
0x45
,
0x4c
,
0x45
,
0x47
,
0x52
,
0x41
,
0x4d
,
0x5f
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x6f
,
0x72
,
0x65
,
0x42
,
0x10
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x49
,
0x44
,
0x10
,
0x05
,
0x12
,
0x1d
,
0x0a
,
0x19
,
0x55
,
0x53
,
0x45
,
0x52
,
0x5f
,
0x53
,
0x45
,
0x54
,
0x50
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x50
,
0x01
,
0x5a
,
0x29
,
0x67
,
0x69
,
0x74
,
0x68
,
0x75
,
0x62
,
0x2e
,
0x54
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x43
,
0x4f
,
0x4d
,
0x50
,
0x41
,
0x43
,
0x54
,
0x5f
,
0x56
,
0x49
,
0x45
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x6d
,
0x65
,
0x6d
,
0x57
,
0x10
,
0x06
,
0x42
,
0x9b
,
0x01
,
0x0a
,
0x0f
,
0x63
,
0x6f
,
0x6d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x6f
,
0x73
,
0x2f
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x2f
,
0x67
,
0x65
,
0x6e
,
0x2f
,
0x73
,
0x74
,
0x6f
,
0x73
,
0x2e
,
0x73
,
0x74
,
0x6f
,
0x72
,
0x65
,
0x42
,
0x10
,
0x55
,
0x73
,
0x65
,
0x72
,
0x53
,
0x65
,
0x74
,
0x72
,
0x65
,
0xa2
,
0x02
,
0x03
,
0x4d
,
0x53
,
0x58
,
0xaa
,
0x02
,
0x0b
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x74
,
0x69
,
0x6e
,
0x67
,
0x50
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x50
,
0x01
,
0x5a
,
0x29
,
0x67
,
0x69
,
0x74
,
0x2e
,
0x53
,
0x74
,
0x6f
,
0x72
,
0x65
,
0xca
,
0x02
,
0x0b
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x53
,
0x68
,
0x75
,
0x62
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x74
,
0x6f
,
0x72
,
0x65
,
0xe2
,
0x02
,
0x17
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x53
,
0x74
,
0x6f
,
0x2f
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x2f
,
0x67
,
0x65
,
0x6e
,
0x72
,
0x65
,
0x5c
,
0x47
,
0x50
,
0x42
,
0x4d
,
0x65
,
0x74
,
0x61
,
0x64
,
0x61
,
0x74
,
0x61
,
0xea
,
0x02
,
0x2f
,
0x73
,
0x74
,
0x6f
,
0x72
,
0x65
,
0xa2
,
0x02
,
0x03
,
0x4d
,
0x53
,
0x58
,
0xaa
,
0x02
,
0x0b
,
0x4d
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x3a
,
0x3a
,
0x53
,
0x74
,
0x6f
,
0x72
,
0x65
,
0x62
,
0x06
,
0x70
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x53
,
0x74
,
0x6f
,
0x72
,
0x65
,
0xca
,
0x02
,
0x0b
,
0x4d
,
0x65
,
0x6d
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x33
,
0x6f
,
0x73
,
0x5c
,
0x53
,
0x74
,
0x6f
,
0x72
,
0x65
,
0xe2
,
0x02
,
0x17
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x53
,
0x74
,
0x6f
,
0x72
,
0x65
,
0x5c
,
0x47
,
0x50
,
0x42
,
0x4d
,
0x65
,
0x74
,
0x61
,
0x64
,
0x61
,
0x74
,
0x61
,
0xea
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x3a
,
0x3a
,
0x53
,
0x74
,
0x6f
,
0x72
,
0x65
,
0x62
,
0x06
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x33
,
}
}
var
(
var
(
...
@@ -493,7 +471,6 @@ func file_store_user_setting_proto_init() {
...
@@ -493,7 +471,6 @@ func file_store_user_setting_proto_init() {
(
*
UserSetting_Appearance
)(
nil
),
(
*
UserSetting_Appearance
)(
nil
),
(
*
UserSetting_MemoVisibility
)(
nil
),
(
*
UserSetting_MemoVisibility
)(
nil
),
(
*
UserSetting_TelegramUserId
)(
nil
),
(
*
UserSetting_TelegramUserId
)(
nil
),
(
*
UserSetting_CompactView
)(
nil
),
}
}
type
x
struct
{}
type
x
struct
{}
out
:=
protoimpl
.
TypeBuilder
{
out
:=
protoimpl
.
TypeBuilder
{
...
...
proto/store/user_setting.proto
View file @
7d5f6034
...
@@ -16,8 +16,6 @@ enum UserSettingKey {
...
@@ -16,8 +16,6 @@ enum UserSettingKey {
USER_SETTING_MEMO_VISIBILITY
=
4
;
USER_SETTING_MEMO_VISIBILITY
=
4
;
// The telegram user id of the user.
// The telegram user id of the user.
USER_SETTING_TELEGRAM_USER_ID
=
5
;
USER_SETTING_TELEGRAM_USER_ID
=
5
;
// The compact view for a memo.
USER_SETTING_COMPACT_VIEW
=
6
;
}
}
message
UserSetting
{
message
UserSetting
{
...
@@ -29,7 +27,6 @@ message UserSetting {
...
@@ -29,7 +27,6 @@ message UserSetting {
string
appearance
=
5
;
string
appearance
=
5
;
string
memo_visibility
=
6
;
string
memo_visibility
=
6
;
string
telegram_user_id
=
7
;
string
telegram_user_id
=
7
;
bool
compact_view
=
8
;
}
}
}
}
...
...
server/route/api/v2/apidocs.swagger.yaml
View file @
7d5f6034
...
@@ -1437,9 +1437,6 @@ paths:
...
@@ -1437,9 +1437,6 @@ paths:
telegramUserId
:
telegramUserId
:
type
:
string
type
:
string
description
:
The telegram user id of the user.
description
:
The telegram user id of the user.
compactView
:
type
:
boolean
description
:
The compact view for a memo.
tags
:
tags
:
-
UserService
-
UserService
/api/v2/{user.name}
:
/api/v2/{user.name}
:
...
@@ -1626,9 +1623,6 @@ definitions:
...
@@ -1626,9 +1623,6 @@ definitions:
telegramUserId
:
telegramUserId
:
type
:
string
type
:
string
description
:
The telegram user id of the user.
description
:
The telegram user id of the user.
compactView
:
type
:
boolean
description
:
The compact view for a memo.
apiv2Webhook
:
apiv2Webhook
:
type
:
object
type
:
object
properties
:
properties
:
...
...
server/route/api/v2/user_service.go
View file @
7d5f6034
...
@@ -219,7 +219,6 @@ func getDefaultUserSetting() *apiv2pb.UserSetting {
...
@@ -219,7 +219,6 @@ func getDefaultUserSetting() *apiv2pb.UserSetting {
Locale
:
"en"
,
Locale
:
"en"
,
Appearance
:
"system"
,
Appearance
:
"system"
,
MemoVisibility
:
"PRIVATE"
,
MemoVisibility
:
"PRIVATE"
,
CompactView
:
false
,
}
}
}
}
...
@@ -245,8 +244,6 @@ func (s *APIV2Service) GetUserSetting(ctx context.Context, _ *apiv2pb.GetUserSet
...
@@ -245,8 +244,6 @@ func (s *APIV2Service) GetUserSetting(ctx context.Context, _ *apiv2pb.GetUserSet
userSettingMessage
.
MemoVisibility
=
setting
.
GetMemoVisibility
()
userSettingMessage
.
MemoVisibility
=
setting
.
GetMemoVisibility
()
}
else
if
setting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
}
else
if
setting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
userSettingMessage
.
TelegramUserId
=
setting
.
GetTelegramUserId
()
userSettingMessage
.
TelegramUserId
=
setting
.
GetTelegramUserId
()
}
else
if
setting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_COMPACT_VIEW
{
userSettingMessage
.
CompactView
=
setting
.
GetCompactView
()
}
}
}
}
return
&
apiv2pb
.
GetUserSettingResponse
{
return
&
apiv2pb
.
GetUserSettingResponse
{
...
@@ -305,16 +302,6 @@ func (s *APIV2Service) UpdateUserSetting(ctx context.Context, request *apiv2pb.U
...
@@ -305,16 +302,6 @@ func (s *APIV2Service) UpdateUserSetting(ctx context.Context, request *apiv2pb.U
});
err
!=
nil
{
});
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to upsert user setting: %v"
,
err
)
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to upsert user setting: %v"
,
err
)
}
}
}
else
if
field
==
"compact_view"
{
if
_
,
err
:=
s
.
Store
.
UpsertUserSetting
(
ctx
,
&
storepb
.
UserSetting
{
UserId
:
user
.
ID
,
Key
:
storepb
.
UserSettingKey_USER_SETTING_COMPACT_VIEW
,
Value
:
&
storepb
.
UserSetting_CompactView
{
CompactView
:
request
.
Setting
.
CompactView
,
},
});
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to upsert user setting: %v"
,
err
)
}
}
else
{
}
else
{
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid update path: %s"
,
field
)
return
nil
,
status
.
Errorf
(
codes
.
InvalidArgument
,
"invalid update path: %s"
,
field
)
}
}
...
...
store/db/mysql/user_setting.go
View file @
7d5f6034
...
@@ -3,7 +3,6 @@ package mysql
...
@@ -3,7 +3,6 @@ package mysql
import
(
import
(
"context"
"context"
"database/sql"
"database/sql"
"strconv"
"strings"
"strings"
"github.com/pkg/errors"
"github.com/pkg/errors"
...
@@ -30,8 +29,6 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
...
@@ -30,8 +29,6 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
valueString
=
upsert
.
GetMemoVisibility
()
valueString
=
upsert
.
GetMemoVisibility
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
valueString
=
upsert
.
GetTelegramUserId
()
valueString
=
upsert
.
GetTelegramUserId
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_COMPACT_VIEW
{
valueString
=
strconv
.
FormatBool
(
upsert
.
GetCompactView
())
}
else
{
}
else
{
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
upsert
.
Key
.
String
())
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
upsert
.
Key
.
String
())
}
}
...
@@ -96,14 +93,6 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
...
@@ -96,14 +93,6 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
userSetting
.
Value
=
&
storepb
.
UserSetting_TelegramUserId
{
userSetting
.
Value
=
&
storepb
.
UserSetting_TelegramUserId
{
TelegramUserId
:
valueString
,
TelegramUserId
:
valueString
,
}
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_COMPACT_VIEW
{
compactView
,
err
:=
strconv
.
ParseBool
(
valueString
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"failed to parse compact view value: %s"
,
valueString
)
}
userSetting
.
Value
=
&
storepb
.
UserSetting_CompactView
{
CompactView
:
compactView
,
}
}
else
{
}
else
{
// Skip unknown user setting key.
// Skip unknown user setting key.
continue
continue
...
...
store/db/postgres/user_setting.go
View file @
7d5f6034
...
@@ -3,7 +3,6 @@ package postgres
...
@@ -3,7 +3,6 @@ package postgres
import
(
import
(
"context"
"context"
"database/sql"
"database/sql"
"strconv"
"strings"
"strings"
"github.com/pkg/errors"
"github.com/pkg/errors"
...
@@ -37,8 +36,6 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
...
@@ -37,8 +36,6 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
valueString
=
upsert
.
GetMemoVisibility
()
valueString
=
upsert
.
GetMemoVisibility
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
valueString
=
upsert
.
GetTelegramUserId
()
valueString
=
upsert
.
GetTelegramUserId
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_COMPACT_VIEW
{
valueString
=
strconv
.
FormatBool
(
upsert
.
GetCompactView
())
}
else
{
}
else
{
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
upsert
.
Key
.
String
())
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
upsert
.
Key
.
String
())
}
}
...
@@ -109,14 +106,6 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
...
@@ -109,14 +106,6 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
userSetting
.
Value
=
&
storepb
.
UserSetting_TelegramUserId
{
userSetting
.
Value
=
&
storepb
.
UserSetting_TelegramUserId
{
TelegramUserId
:
valueString
,
TelegramUserId
:
valueString
,
}
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_COMPACT_VIEW
{
compactView
,
err
:=
strconv
.
ParseBool
(
valueString
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"failed to parse compact view value: %s"
,
valueString
)
}
userSetting
.
Value
=
&
storepb
.
UserSetting_CompactView
{
CompactView
:
compactView
,
}
}
else
{
}
else
{
// Skip unknown user setting key.
// Skip unknown user setting key.
continue
continue
...
...
store/db/sqlite/user_setting.go
View file @
7d5f6034
...
@@ -3,7 +3,6 @@ package sqlite
...
@@ -3,7 +3,6 @@ package sqlite
import
(
import
(
"context"
"context"
"database/sql"
"database/sql"
"strconv"
"strings"
"strings"
"github.com/pkg/errors"
"github.com/pkg/errors"
...
@@ -37,8 +36,6 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
...
@@ -37,8 +36,6 @@ func (d *DB) UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting)
valueString
=
upsert
.
GetMemoVisibility
()
valueString
=
upsert
.
GetMemoVisibility
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
valueString
=
upsert
.
GetTelegramUserId
()
valueString
=
upsert
.
GetTelegramUserId
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_COMPACT_VIEW
{
valueString
=
strconv
.
FormatBool
(
upsert
.
GetCompactView
())
}
else
{
}
else
{
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
upsert
.
Key
.
String
())
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
upsert
.
Key
.
String
())
}
}
...
@@ -109,14 +106,6 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
...
@@ -109,14 +106,6 @@ func (d *DB) ListUserSettings(ctx context.Context, find *store.FindUserSetting)
userSetting
.
Value
=
&
storepb
.
UserSetting_TelegramUserId
{
userSetting
.
Value
=
&
storepb
.
UserSetting_TelegramUserId
{
TelegramUserId
:
valueString
,
TelegramUserId
:
valueString
,
}
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_COMPACT_VIEW
{
compactView
,
err
:=
strconv
.
ParseBool
(
valueString
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"failed to parse compact view value: %s"
,
valueString
)
}
userSetting
.
Value
=
&
storepb
.
UserSetting_CompactView
{
CompactView
:
compactView
,
}
}
else
{
}
else
{
// Skip unknown user setting key.
// Skip unknown user setting key.
continue
continue
...
...
web/src/assets/gomark.wasm
View file @
7d5f6034
No preview for this file type
web/src/assets/wasm_exec.js
View file @
7d5f6034
...
@@ -363,6 +363,7 @@
...
@@ -363,6 +363,7 @@
"syscall/js.finalizeRef"
:
(
v_ref
)
=>
{
"syscall/js.finalizeRef"
:
(
v_ref
)
=>
{
// Note: TinyGo does not support finalizers so this should never be
// Note: TinyGo does not support finalizers so this should never be
// called.
// called.
console
.
warn
(
"syscall/js.finalizeRef not implemented"
);
},
},
// func stringVal(value string) ref
// func stringVal(value string) ref
...
...
web/src/components/MemoContent/CodeBlock.tsx
View file @
7d5f6034
...
@@ -28,10 +28,13 @@ const CodeBlock: React.FC<Props> = ({ language, content }: Props) => {
...
@@ -28,10 +28,13 @@ const CodeBlock: React.FC<Props> = ({ language, content }: Props) => {
let
highlightedCode
=
content
;
let
highlightedCode
=
content
;
try
{
try
{
const
lang
=
hljs
.
getLanguage
(
formatedLanguage
);
if
(
lang
)
{
const
temp
=
hljs
.
highlight
(
content
,
{
const
temp
=
hljs
.
highlight
(
content
,
{
language
:
formatedLanguage
,
language
:
formatedLanguage
,
}).
value
;
}).
value
;
highlightedCode
=
temp
;
highlightedCode
=
temp
;
}
}
catch
(
error
)
{
}
catch
(
error
)
{
// Skip error and use default highlighted code.
// Skip error and use default highlighted code.
}
}
...
...
web/src/components/MemoContent/Renderer.tsx
View file @
7d5f6034
...
@@ -62,67 +62,66 @@ interface Props {
...
@@ -62,67 +62,66 @@ interface Props {
node
:
Node
;
node
:
Node
;
}
}
const
Renderer
:
React
.
FC
<
Props
>
=
({
index
,
node
:
rawNode
}:
Props
)
=>
{
const
Renderer
:
React
.
FC
<
Props
>
=
({
index
,
node
}:
Props
)
=>
{
const
{
type
,
node
}
=
rawNode
;
switch
(
node
.
type
)
{
switch
(
type
)
{
case
NodeType
.
LINE_BREAK
:
case
NodeType
.
LINE_BREAK
:
return
<
LineBreak
index=
{
index
}
/>;
return
<
LineBreak
index=
{
index
}
/>;
case
NodeType
.
PARAGRAPH
:
case
NodeType
.
PARAGRAPH
:
return
<
Paragraph
index=
{
index
}
{
...
(
node
as
ParagraphNode
)}
/>;
return
<
Paragraph
index=
{
index
}
{
...
(
node
.
value
as
ParagraphNode
)}
/>;
case
NodeType
.
CODE_BLOCK
:
case
NodeType
.
CODE_BLOCK
:
return
<
CodeBlock
index=
{
index
}
{
...
(
node
as
CodeBlockNode
)}
/>;
return
<
CodeBlock
index=
{
index
}
{
...
(
node
.
value
as
CodeBlockNode
)}
/>;
case
NodeType
.
HEADING
:
case
NodeType
.
HEADING
:
return
<
Heading
index=
{
index
}
{
...
(
node
as
HeadingNode
)}
/>;
return
<
Heading
index=
{
index
}
{
...
(
node
.
value
as
HeadingNode
)}
/>;
case
NodeType
.
HORIZONTAL_RULE
:
case
NodeType
.
HORIZONTAL_RULE
:
return
<
HorizontalRule
index=
{
index
}
{
...
(
node
as
HorizontalRuleNode
)}
/>;
return
<
HorizontalRule
index=
{
index
}
{
...
(
node
.
value
as
HorizontalRuleNode
)}
/>;
case
NodeType
.
BLOCKQUOTE
:
case
NodeType
.
BLOCKQUOTE
:
return
<
Blockquote
index=
{
index
}
{
...
(
node
as
BlockquoteNode
)}
/>;
return
<
Blockquote
index=
{
index
}
{
...
(
node
.
value
as
BlockquoteNode
)}
/>;
case
NodeType
.
ORDERED_LIST
:
case
NodeType
.
ORDERED_LIST
:
return
<
OrderedList
index=
{
index
}
{
...
(
node
as
OrderedListNode
)}
/>;
return
<
OrderedList
index=
{
index
}
{
...
(
node
.
value
as
OrderedListNode
)}
/>;
case
NodeType
.
UNORDERED_LIST
:
case
NodeType
.
UNORDERED_LIST
:
return
<
UnorderedList
{
...
(
node
as
UnorderedListNode
)}
/>;
return
<
UnorderedList
{
...
(
node
.
value
as
UnorderedListNode
)}
/>;
case
NodeType
.
TASK_LIST
:
case
NodeType
.
TASK_LIST
:
return
<
TaskList
index=
{
index
}
{
...
(
node
as
TaskListNode
)}
/>;
return
<
TaskList
index=
{
index
}
{
...
(
node
.
value
as
TaskListNode
)}
/>;
case
NodeType
.
MATH_BLOCK
:
case
NodeType
.
MATH_BLOCK
:
return
<
Math
{
...
(
node
as
MathNode
)}
block=
{
true
}
/>;
return
<
Math
{
...
(
node
.
value
as
MathNode
)}
block=
{
true
}
/>;
case
NodeType
.
TABLE
:
case
NodeType
.
TABLE
:
return
<
Table
{
...
(
node
as
TableNode
)}
/>;
return
<
Table
{
...
(
node
.
value
as
TableNode
)}
/>;
case
NodeType
.
EMBEDDED_CONTENT
:
case
NodeType
.
EMBEDDED_CONTENT
:
return
<
EmbeddedContent
{
...
(
node
as
EmbeddedContentNode
)}
/>;
return
<
EmbeddedContent
{
...
(
node
.
value
as
EmbeddedContentNode
)}
/>;
case
NodeType
.
TEXT
:
case
NodeType
.
TEXT
:
return
<
Text
{
...
(
node
as
TextNode
)}
/>;
return
<
Text
{
...
(
node
.
value
as
TextNode
)}
/>;
case
NodeType
.
BOLD
:
case
NodeType
.
BOLD
:
return
<
Bold
{
...
(
node
as
BoldNode
)}
/>;
return
<
Bold
{
...
(
node
.
value
as
BoldNode
)}
/>;
case
NodeType
.
ITALIC
:
case
NodeType
.
ITALIC
:
return
<
Italic
{
...
(
node
as
ItalicNode
)}
/>;
return
<
Italic
{
...
(
node
.
value
as
ItalicNode
)}
/>;
case
NodeType
.
BOLD_ITALIC
:
case
NodeType
.
BOLD_ITALIC
:
return
<
BoldItalic
{
...
(
node
as
BoldItalicNode
)}
/>;
return
<
BoldItalic
{
...
(
node
.
value
as
BoldItalicNode
)}
/>;
case
NodeType
.
CODE
:
case
NodeType
.
CODE
:
return
<
Code
{
...
(
node
as
CodeNode
)}
/>;
return
<
Code
{
...
(
node
.
value
as
CodeNode
)}
/>;
case
NodeType
.
IMAGE
:
case
NodeType
.
IMAGE
:
return
<
Image
{
...
(
node
as
ImageNode
)}
/>;
return
<
Image
{
...
(
node
.
value
as
ImageNode
)}
/>;
case
NodeType
.
LINK
:
case
NodeType
.
LINK
:
return
<
Link
{
...
(
node
as
LinkNode
)}
/>;
return
<
Link
{
...
(
node
.
value
as
LinkNode
)}
/>;
case
NodeType
.
AUTO_LINK
:
case
NodeType
.
AUTO_LINK
:
return
<
Link
{
...
(
node
as
AutoLinkNode
)}
/>;
return
<
Link
{
...
(
node
.
value
as
AutoLinkNode
)}
/>;
case
NodeType
.
TAG
:
case
NodeType
.
TAG
:
return
<
Tag
{
...
(
node
as
TagNode
)}
/>;
return
<
Tag
{
...
(
node
.
value
as
TagNode
)}
/>;
case
NodeType
.
STRIKETHROUGH
:
case
NodeType
.
STRIKETHROUGH
:
return
<
Strikethrough
{
...
(
node
as
StrikethroughNode
)}
/>;
return
<
Strikethrough
{
...
(
node
.
value
as
StrikethroughNode
)}
/>;
case
NodeType
.
MATH
:
case
NodeType
.
MATH
:
return
<
Math
{
...
(
node
as
MathNode
)}
/>;
return
<
Math
{
...
(
node
.
value
as
MathNode
)}
/>;
case
NodeType
.
HIGHLIGHT
:
case
NodeType
.
HIGHLIGHT
:
return
<
Highlight
{
...
(
node
as
HighlightNode
)}
/>;
return
<
Highlight
{
...
(
node
.
value
as
HighlightNode
)}
/>;
case
NodeType
.
ESCAPING_CHARACTER
:
case
NodeType
.
ESCAPING_CHARACTER
:
return
<
EscapingCharacter
{
...
(
node
as
EscapingCharacterNode
)}
/>;
return
<
EscapingCharacter
{
...
(
node
.
value
as
EscapingCharacterNode
)}
/>;
case
NodeType
.
SUBSCRIPT
:
case
NodeType
.
SUBSCRIPT
:
return
<
Subscript
{
...
(
node
as
SubscriptNode
)}
/>;
return
<
Subscript
{
...
(
node
.
value
as
SubscriptNode
)}
/>;
case
NodeType
.
SUPERSCRIPT
:
case
NodeType
.
SUPERSCRIPT
:
return
<
Superscript
{
...
(
node
as
SuperscriptNode
)}
/>;
return
<
Superscript
{
...
(
node
.
value
as
SuperscriptNode
)}
/>;
case
NodeType
.
REFERENCED_CONTENT
:
case
NodeType
.
REFERENCED_CONTENT
:
return
<
ReferencedContent
{
...
(
node
as
ReferencedContentNode
)}
/>;
return
<
ReferencedContent
{
...
(
node
.
value
as
ReferencedContentNode
)}
/>;
case
NodeType
.
SPOILER
:
case
NodeType
.
SPOILER
:
return
<
Spoiler
{
...
(
node
as
SpoilerNode
)}
/>;
return
<
Spoiler
{
...
(
node
.
value
as
SpoilerNode
)}
/>;
default
:
default
:
return
null
;
return
null
;
}
}
...
...
web/src/components/MemoContent/TaskList.tsx
View file @
7d5f6034
...
@@ -31,11 +31,11 @@ const TaskList: React.FC<Props> = ({ index, indent, complete, children }: Props)
...
@@ -31,11 +31,11 @@ const TaskList: React.FC<Props> = ({ index, indent, complete, children }: Props)
}
}
const
node
=
context
.
nodes
[
nodeIndex
];
const
node
=
context
.
nodes
[
nodeIndex
];
if
(
node
.
type
!==
NodeType
.
TASK_LIST
||
!
node
.
nod
e
)
{
if
(
node
.
type
!==
NodeType
.
TASK_LIST
||
!
node
.
valu
e
)
{
return
;
return
;
}
}
(
node
.
nod
e
as
TaskListNode
)
!
.
complete
=
on
;
(
node
.
valu
e
as
TaskListNode
)
!
.
complete
=
on
;
const
content
=
window
.
restore
(
context
.
nodes
);
const
content
=
window
.
restore
(
context
.
nodes
);
await
memoStore
.
updateMemo
(
await
memoStore
.
updateMemo
(
{
{
...
...
web/src/components/MemoContent/index.tsx
View file @
7d5f6034
import
{
memo
,
useRef
}
from
"react"
;
import
classNames
from
"classnames"
;
import
{
memo
,
useEffect
,
useRef
,
useState
}
from
"react"
;
import
{
Link
}
from
"react-router-dom"
;
import
useCurrentUser
from
"@/hooks/useCurrentUser"
;
import
useCurrentUser
from
"@/hooks/useCurrentUser"
;
import
{
useMemoStore
}
from
"@/store/v1"
;
import
{
useMemoStore
}
from
"@/store/v1"
;
import
{
Node
,
NodeType
}
from
"@/types/node"
;
import
{
Node
,
NodeType
}
from
"@/types/node"
;
import
{
useTranslate
}
from
"@/utils/i18n"
;
import
Icon
from
"../Icon"
;
import
Renderer
from
"./Renderer"
;
import
Renderer
from
"./Renderer"
;
import
{
RendererContext
}
from
"./types"
;
import
{
RendererContext
}
from
"./types"
;
// MAX_DISPLAY_HEIGHT is the maximum height of the memo content to display in compact mode.
const
MAX_DISPLAY_HEIGHT
=
256
;
interface
Props
{
interface
Props
{
content
:
string
;
content
:
string
;
memoId
?:
number
;
memoId
?:
number
;
compact
?:
boolean
;
readonly
?:
boolean
;
readonly
?:
boolean
;
disableFilter
?:
boolean
;
disableFilter
?:
boolean
;
// embeddedMemos is a set of memo resource names that are embedded in the current memo.
// embeddedMemos is a set of memo resource names that are embedded in the current memo.
...
@@ -19,11 +27,28 @@ interface Props {
...
@@ -19,11 +27,28 @@ interface Props {
const
MemoContent
:
React
.
FC
<
Props
>
=
(
props
:
Props
)
=>
{
const
MemoContent
:
React
.
FC
<
Props
>
=
(
props
:
Props
)
=>
{
const
{
className
,
content
,
memoId
,
embeddedMemos
,
onClick
}
=
props
;
const
{
className
,
content
,
memoId
,
embeddedMemos
,
onClick
}
=
props
;
const
t
=
useTranslate
();
const
currentUser
=
useCurrentUser
();
const
currentUser
=
useCurrentUser
();
const
memoStore
=
useMemoStore
();
const
memoStore
=
useMemoStore
();
const
memoContentContainerRef
=
useRef
<
HTMLDivElement
>
(
null
);
const
memoContentContainerRef
=
useRef
<
HTMLDivElement
>
(
null
);
const
[
showCompactMode
,
setShowCompactMode
]
=
useState
<
boolean
>
(
false
);
const
memo
=
memoId
?
memoStore
.
getMemoById
(
memoId
)
:
null
;
const
nodes
=
window
.
parse
(
content
);
const
nodes
=
window
.
parse
(
content
);
const
allowEdit
=
!
props
.
readonly
&&
memoId
&&
currentUser
?.
id
===
memoStore
.
getMemoById
(
memoId
)?.
creatorId
;
const
allowEdit
=
!
props
.
readonly
&&
memo
&&
currentUser
?.
id
===
memo
.
creatorId
;
// Initial compact mode.
useEffect
(()
=>
{
if
(
!
props
.
compact
)
{
return
;
}
if
(
!
memoContentContainerRef
.
current
)
{
return
;
}
if
((
memoContentContainerRef
.
current
as
HTMLDivElement
).
getBoundingClientRect
().
height
>
MAX_DISPLAY_HEIGHT
)
{
setShowCompactMode
(
true
);
}
},
[]);
const
handleMemoContentClick
=
async
(
e
:
React
.
MouseEvent
)
=>
{
const
handleMemoContentClick
=
async
(
e
:
React
.
MouseEvent
)
=>
{
if
(
onClick
)
{
if
(
onClick
)
{
...
@@ -35,6 +60,7 @@ const MemoContent: React.FC<Props> = (props: Props) => {
...
@@ -35,6 +60,7 @@ const MemoContent: React.FC<Props> = (props: Props) => {
let
skipNextLineBreakFlag
=
false
;
let
skipNextLineBreakFlag
=
false
;
return
(
return
(
<>
<
RendererContext
.
Provider
<
RendererContext
.
Provider
value=
{
{
value=
{
{
nodes
,
nodes
,
...
@@ -47,7 +73,10 @@ const MemoContent: React.FC<Props> = (props: Props) => {
...
@@ -47,7 +73,10 @@ const MemoContent: React.FC<Props> = (props: Props) => {
<
div
className=
{
`w-full flex flex-col justify-start items-start text-gray-800 dark:text-gray-300 ${className || ""}`
}
>
<
div
className=
{
`w-full flex flex-col justify-start items-start text-gray-800 dark:text-gray-300 ${className || ""}`
}
>
<
div
<
div
ref=
{
memoContentContainerRef
}
ref=
{
memoContentContainerRef
}
className=
"w-full max-w-full word-break text-base leading-6 space-y-1 whitespace-pre-wrap"
className=
{
classNames
(
"w-full max-w-full word-break text-base leading-6 space-y-1 whitespace-pre-wrap"
,
showCompactMode
&&
"line-clamp-6"
,
)
}
onClick=
{
handleMemoContentClick
}
onClick=
{
handleMemoContentClick
}
>
>
{
nodes
.
map
((
node
,
index
)
=>
{
{
nodes
.
map
((
node
,
index
)
=>
{
...
@@ -63,6 +92,18 @@ const MemoContent: React.FC<Props> = (props: Props) => {
...
@@ -63,6 +92,18 @@ const MemoContent: React.FC<Props> = (props: Props) => {
</
div
>
</
div
>
</
div
>
</
div
>
</
RendererContext
.
Provider
>
</
RendererContext
.
Provider
>
{
memo
&&
showCompactMode
&&
(
<
div
className=
"w-full mt-2"
>
<
Link
className=
"w-auto inline-flex flex-row justify-start items-center text-sm text-blue-600 dark:text-blue-400 hover:underline"
to=
{
`/m/${memo.name}`
}
>
<
span
>
{
t
(
"memo.show-more"
)
}
</
span
>
<
Icon
.
ChevronRight
className=
"w-4 h-auto"
/>
</
Link
>
</
div
>
)
}
</>
);
);
};
};
...
...
web/src/components/MemoView.tsx
View file @
7d5f6034
...
@@ -42,7 +42,6 @@ const MemoView: React.FC<Props> = (props: Props) => {
...
@@ -42,7 +42,6 @@ const MemoView: React.FC<Props> = (props: Props) => {
const
[
displayTime
,
setDisplayTime
]
=
useState
<
string
>
(
getRelativeTimeString
(
getTimeStampByDate
(
memo
.
displayTime
)));
const
[
displayTime
,
setDisplayTime
]
=
useState
<
string
>
(
getRelativeTimeString
(
getTimeStampByDate
(
memo
.
displayTime
)));
const
[
creator
,
setCreator
]
=
useState
(
userStore
.
getUserByUsername
(
extractUsernameFromName
(
memo
.
creator
)));
const
[
creator
,
setCreator
]
=
useState
(
userStore
.
getUserByUsername
(
extractUsernameFromName
(
memo
.
creator
)));
const
memoContainerRef
=
useRef
<
HTMLDivElement
>
(
null
);
const
memoContainerRef
=
useRef
<
HTMLDivElement
>
(
null
);
const
[
showCompactMode
,
setShowCompactMode
]
=
useState
(
false
);
const
referencedMemos
=
memo
.
relations
.
filter
((
relation
)
=>
relation
.
type
===
MemoRelation_Type
.
REFERENCE
);
const
referencedMemos
=
memo
.
relations
.
filter
((
relation
)
=>
relation
.
type
===
MemoRelation_Type
.
REFERENCE
);
const
commentAmount
=
memo
.
relations
.
filter
((
relation
)
=>
relation
.
type
===
MemoRelation_Type
.
COMMENT
).
length
;
const
commentAmount
=
memo
.
relations
.
filter
((
relation
)
=>
relation
.
type
===
MemoRelation_Type
.
COMMENT
).
length
;
const
readonly
=
memo
.
creator
!==
user
?.
name
;
const
readonly
=
memo
.
creator
!==
user
?.
name
;
...
@@ -55,16 +54,6 @@ const MemoView: React.FC<Props> = (props: Props) => {
...
@@ -55,16 +54,6 @@ const MemoView: React.FC<Props> = (props: Props) => {
})();
})();
},
[]);
},
[]);
// Initial compact mode.
useEffect
(()
=>
{
if
(
!
memoContainerRef
.
current
)
{
return
;
}
if
((
memoContainerRef
.
current
as
HTMLDivElement
).
getBoundingClientRect
().
height
>
512
)
{
setShowCompactMode
(
true
);
}
},
[]);
// Update display time string.
// Update display time string.
useEffect
(()
=>
{
useEffect
(()
=>
{
let
intervalFlag
:
any
=
-
1
;
let
intervalFlag
:
any
=
-
1
;
...
@@ -163,24 +152,13 @@ const MemoView: React.FC<Props> = (props: Props) => {
...
@@ -163,24 +152,13 @@ const MemoView: React.FC<Props> = (props: Props) => {
</
div
>
</
div
>
</
div
>
</
div
>
<
MemoContent
<
MemoContent
className=
{
showCompactMode
?
"!line-clamp-6"
:
""
}
key=
{
`${memo.id}-${memo.updateTime}`
}
key=
{
`${memo.id}-${memo.updateTime}`
}
memoId=
{
memo
.
id
}
memoId=
{
memo
.
id
}
content=
{
memo
.
content
}
content=
{
memo
.
content
}
readonly=
{
readonly
}
readonly=
{
readonly
}
onClick=
{
handleMemoContentClick
}
onClick=
{
handleMemoContentClick
}
compact=
{
true
}
/>
/>
{
showCompactMode
&&
(
<
div
className=
"w-full mt-2"
>
<
Link
className=
"w-auto flex flex-row justify-start items-center text-sm text-blue-600 dark:text-blue-400 hover:underline"
to=
{
`/m/${memo.name}`
}
>
<
span
>
{
t
(
"memo.show-more"
)
}
</
span
>
<
Icon
.
ChevronRight
className=
"w-4 h-auto"
/>
</
Link
>
</
div
>
)
}
<
MemoResourceListView
resources=
{
memo
.
resources
}
/>
<
MemoResourceListView
resources=
{
memo
.
resources
}
/>
<
MemoRelationListView
memo=
{
memo
}
relations=
{
referencedMemos
}
/>
<
MemoRelationListView
memo=
{
memo
}
relations=
{
referencedMemos
}
/>
<
MemoReactionistView
memo=
{
memo
}
reactions=
{
memo
.
reactions
}
/>
<
MemoReactionistView
memo=
{
memo
}
reactions=
{
memo
.
reactions
}
/>
...
...
web/src/components/Settings/SystemSection.tsx
View file @
7d5f6034
...
@@ -216,7 +216,7 @@ const SystemSection = () => {
...
@@ -216,7 +216,7 @@ const SystemSection = () => {
<
div
className=
"w-full flex flex-col gap-2 pt-2 pb-4"
>
<
div
className=
"w-full flex flex-col gap-2 pt-2 pb-4"
>
<
p
className=
"font-medium text-gray-700 dark:text-gray-500"
>
{
t
(
"common.basic"
)
}
</
p
>
<
p
className=
"font-medium text-gray-700 dark:text-gray-500"
>
{
t
(
"common.basic"
)
}
</
p
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
div
className=
"normal-text"
>
<
div
>
{
t
(
"setting.system-section.server-name"
)
}
:
<
span
className=
"font-mono font-bold"
>
{
systemStatus
.
customizedProfile
.
name
}
</
span
>
{
t
(
"setting.system-section.server-name"
)
}
:
<
span
className=
"font-mono font-bold"
>
{
systemStatus
.
customizedProfile
.
name
}
</
span
>
</
div
>
</
div
>
<
Button
onClick=
{
handleUpdateCustomizedProfileButtonClick
}
>
{
t
(
"common.edit"
)
}
</
Button
>
<
Button
onClick=
{
handleUpdateCustomizedProfileButtonClick
}
>
{
t
(
"common.edit"
)
}
</
Button
>
...
@@ -267,7 +267,7 @@ const SystemSection = () => {
...
@@ -267,7 +267,7 @@ const SystemSection = () => {
</
div
>
</
div
>
<
div
className=
"space-y-2 border rounded-md py-2 px-3 dark:border-zinc-700"
>
<
div
className=
"space-y-2 border rounded-md py-2 px-3 dark:border-zinc-700"
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
span
className=
"normal-text"
>
{
t
(
"setting.system-section.additional-style"
)
}
</
span
>
<
span
>
{
t
(
"setting.system-section.additional-style"
)
}
</
span
>
<
Button
variant=
"outlined"
color=
"neutral"
onClick=
{
handleSaveAdditionalStyle
}
>
<
Button
variant=
"outlined"
color=
"neutral"
onClick=
{
handleSaveAdditionalStyle
}
>
{
t
(
"common.save"
)
}
{
t
(
"common.save"
)
}
</
Button
>
</
Button
>
...
@@ -285,7 +285,7 @@ const SystemSection = () => {
...
@@ -285,7 +285,7 @@ const SystemSection = () => {
onChange=
{
(
event
)
=>
handleAdditionalStyleChanged
(
event
.
target
.
value
)
}
onChange=
{
(
event
)
=>
handleAdditionalStyleChanged
(
event
.
target
.
value
)
}
/>
/>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
span
className=
"normal-text"
>
{
t
(
"setting.system-section.additional-script"
)
}
</
span
>
<
span
>
{
t
(
"setting.system-section.additional-script"
)
}
</
span
>
<
Button
variant=
"outlined"
color=
"neutral"
onClick=
{
handleSaveAdditionalScript
}
>
<
Button
variant=
"outlined"
color=
"neutral"
onClick=
{
handleSaveAdditionalScript
}
>
{
t
(
"common.save"
)
}
{
t
(
"common.save"
)
}
</
Button
>
</
Button
>
...
@@ -317,16 +317,16 @@ const SystemSection = () => {
...
@@ -317,16 +317,16 @@ const SystemSection = () => {
<
Divider
className=
"!my-3"
/>
<
Divider
className=
"!my-3"
/>
<
p
className=
"font-medium text-gray-700 dark:text-gray-500"
>
Others
</
p
>
<
p
className=
"font-medium text-gray-700 dark:text-gray-500"
>
Others
</
p
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
span
className=
"normal-text"
>
{
t
(
"setting.system-section.disable-public-memos"
)
}
</
span
>
<
span
>
{
t
(
"setting.system-section.disable-public-memos"
)
}
</
span
>
<
Switch
checked=
{
state
.
disablePublicMemos
}
onChange=
{
(
event
)
=>
handleDisablePublicMemosChanged
(
event
.
target
.
checked
)
}
/>
<
Switch
checked=
{
state
.
disablePublicMemos
}
onChange=
{
(
event
)
=>
handleDisablePublicMemosChanged
(
event
.
target
.
checked
)
}
/>
</
div
>
</
div
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
span
className=
"normal-text"
>
{
t
(
"setting.system-section.display-with-updated-time"
)
}
</
span
>
<
span
>
{
t
(
"setting.system-section.display-with-updated-time"
)
}
</
span
>
<
Switch
checked=
{
state
.
memoDisplayWithUpdatedTs
}
onChange=
{
(
event
)
=>
handleMemoDisplayWithUpdatedTs
(
event
.
target
.
checked
)
}
/>
<
Switch
checked=
{
state
.
memoDisplayWithUpdatedTs
}
onChange=
{
(
event
)
=>
handleMemoDisplayWithUpdatedTs
(
event
.
target
.
checked
)
}
/>
</
div
>
</
div
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
div
className=
"w-full flex flex-row justify-between items-center"
>
<
div
className=
"flex flex-row items-center"
>
<
div
className=
"flex flex-row items-center"
>
<
span
className=
"
text-sm
mr-1"
>
{
t
(
"setting.system-section.max-upload-size"
)
}
</
span
>
<
span
className=
"mr-1"
>
{
t
(
"setting.system-section.max-upload-size"
)
}
</
span
>
<
Tooltip
title=
{
t
(
"setting.system-section.max-upload-size-hint"
)
}
placement=
"top"
>
<
Tooltip
title=
{
t
(
"setting.system-section.max-upload-size-hint"
)
}
placement=
"top"
>
<
Icon
.
HelpCircle
className=
"w-4 h-auto"
/>
<
Icon
.
HelpCircle
className=
"w-4 h-auto"
/>
</
Tooltip
>
</
Tooltip
>
...
...
web/src/types/node.ts
View file @
7d5f6034
...
@@ -32,7 +32,7 @@ export enum NodeType {
...
@@ -32,7 +32,7 @@ export enum NodeType {
export
interface
Node
{
export
interface
Node
{
type
:
NodeType
;
type
:
NodeType
;
nod
e
:
valu
e
:
|
LineBreakNode
|
LineBreakNode
|
ParagraphNode
|
ParagraphNode
|
CodeBlockNode
|
CodeBlockNode
...
...
web/src/utils/tag.ts
View file @
7d5f6034
import
{
Node
}
from
"@/types/node"
;
import
{
Node
,
TagNode
}
from
"@/types/node"
;
export
const
TAG_REG
=
/#
([^\s
#,
]
+
)
/
;
export
const
TAG_REG
=
/#
([^\s
#,
]
+
)
/
;
...
@@ -15,7 +15,7 @@ export const extractTagsFromContent = (content: string) => {
...
@@ -15,7 +15,7 @@ export const extractTagsFromContent = (content: string) => {
handle
(
node
);
handle
(
node
);
if
(
node
.
type
===
"PARAGRAPH"
||
node
.
type
===
"ORDERED_LIST"
||
node
.
type
===
"UNORDERED_LIST"
)
{
if
(
node
.
type
===
"PARAGRAPH"
||
node
.
type
===
"ORDERED_LIST"
||
node
.
type
===
"UNORDERED_LIST"
)
{
const
children
=
(
node
.
nod
e
as
any
).
children
;
const
children
=
(
node
.
valu
e
as
any
).
children
;
if
(
Array
.
isArray
(
children
))
{
if
(
Array
.
isArray
(
children
))
{
traverse
(
children
,
handle
);
traverse
(
children
,
handle
);
}
}
...
@@ -24,8 +24,8 @@ export const extractTagsFromContent = (content: string) => {
...
@@ -24,8 +24,8 @@ export const extractTagsFromContent = (content: string) => {
};
};
traverse
(
nodes
,
(
node
)
=>
{
traverse
(
nodes
,
(
node
)
=>
{
if
(
node
.
type
===
"TAG"
&&
node
.
nod
e
)
{
if
(
node
.
type
===
"TAG"
&&
node
.
valu
e
)
{
tags
.
add
((
node
.
node
as
any
).
content
);
tags
.
add
((
node
.
value
as
TagNode
).
content
);
}
}
});
});
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment