--------------------------------------------------------------------------------
file_24-07-15_17-03-34.mkv
--------------------------------------------------------------------------------
NVEncC 7.69 (x64)
OS Windows 11 x64 (22631) [UTF-8]
CPU Info AMD Ryzen 7 5700X3D 8-Core Processor [4.05GHz] (8C/16T)
Locale LC_COLLATE=C;LC_CTYPE=English_United States.utf8;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=C
InitCuda: device #-1.
Checking Environment Info...
NVEncC (x64) 7.69 (r3010) by rigaya, Sep 23 2024 12:06:57 (VC 1929/Win)
OS Version Windows 11 x64 (22631)
CPU AMD Ryzen 7 5700X3D 8-Core Processor [4.05GHz] (8C/16T)
cuInit: Success.
cuvidInit: Success.
InitCuda: Success.
gpuinfo: checking for DX11 device #0.
devDX11: EnumAdapters 0...
devDX11: InitDX11() success.
gpuinfo: Init DX11 device -1119794672.
gpuinfo: cuDeviceGet:DX11(0): success: 0
gpuinfo: cuDeviceGetName(0): NVIDIA GeForce RTX 4070 SUPER
gpuinfo: cudaDeviceGetAttribute: CUDA 8.9
gpuinfo: PCIBusId: 0000:05:00.0
gpuinfo: Got GPU Info from NVML.
gpuinfo: NV Driver version: 560810.
gpuinfo: CUDA Driver version: 12060.
gpuinfo: using cuda schedule mode: auto.
gpuinfo: cuCtxCreate: Success.
gpuinfo: cuCtxPopCurrent: Success.
gpuinfo: cuvidCtxLockCreate: Success.
nvenc : Loaded nvEncodeAPI64.dll.
nvenc : nvEncodeAPICreateInstance(APIVer=0x200000c: 12.2): Success.
nvenc : Opened Encode Session (API ver 12.2)
nvenc : NvEncOpenEncodeSessionEx(device_type=NV_ENC_DEVICE_TYPE_CUDA): Success.
nvenc : m_pEncodeAPI->nvEncGetEncodeGUIDCount: 3.
nvenc : Found codec H.264/AVC.
nvenc : Found codec H.265/HEVC.
nvenc : Found codec AV1.
nvenc : m_pEncodeAPI->nvEncGetEncodeProfileGUIDCount: 6.
nvenc : Found H.264/AVC baseline profile.
nvenc : Found H.264/AVC main profile.
nvenc : Found H.264/AVC high profile.
nvenc : Found H.264/AVC Unknown profile.
nvenc : Found H.264/AVC high444 profile.
nvenc : Found H.264/AVC auto profile.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetCount: 17.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetGUIDs: Success.
nvenc : m_pEncodeAPI->nvEncGetInputFormatCount: 9.
nvenc : Found input fmt:
nvenc : nv12
nvenc : yv12
nvenc : Invalid
nvenc : yuv444
nvenc : rgb32
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : m_pEncodeAPI->nvEncGetEncodeProfileGUIDCount: 4.
nvenc : Found H.265/HEVC Unknown profile.
nvenc : Found H.265/HEVC main profile.
nvenc : Found H.265/HEVC main10 profile.
nvenc : Found H.265/HEVC main444 profile.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetCount: 17.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetGUIDs: Success.
nvenc : m_pEncodeAPI->nvEncGetInputFormatCount: 11.
nvenc : Found input fmt:
nvenc : nv12
nvenc : yv12
nvenc : Invalid
nvenc : yuv444
nvenc : yv12(10bit)
nvenc : yuv444(10bit)
nvenc : rgb32
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : m_pEncodeAPI->nvEncGetEncodeProfileGUIDCount: 2.
nvenc : Found AV1 Unknown profile.
nvenc : Found AV1 main profile.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetCount: 7.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetGUIDs: Success.
nvenc : m_pEncodeAPI->nvEncGetInputFormatCount: 9.
nvenc : Found input fmt:
nvenc : nv12
nvenc : yv12
nvenc : Invalid
nvenc : yv12(10bit)
nvenc : rgb32
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
gpuinfo: createDeviceFeatureList
nvenc : nvEncDestroyEncoder...
nvenc : nvEncDestroyEncoder: success.
InitDeviceList: Success.
GPU #0 (NVIDIA GeForce RTX 4070 SUPER) available for encode.
CheckGPUListByEncoder: Success.
GPUAutoSelect: Success.
Set csp thread param: all (0x0xffff), priority=normal, throttling=auto.
avhw/sw reader selected.
InitInput: input selected : 7.
avcuvid: select audio track all, codec copy
[AVFormatContext @ 0000022bd08379c0] Opening 'file_24-07-15_17-03-34.mp4' for reading
[file @ 0000022bd07e6ec0] Setting default whitelist 'file,crypto,data'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000022bd08379c0] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000022bd08379c0] ISO: File Type Major Brand: mp42
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000022bd08379c0] Unknown dref type 0x206c7275 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000022bd08379c0] Unknown dref type 0x206c7275 size 12
avcuvid: opened file "file_24-07-15_17-03-34.mp4".
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000022bd08379c0] Before avformat_find_stream_info() pos: 79125702 bytes read:47087 seeks:1 nb_streams:2
[h264 @ 0000022bd0807c00] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0000022bd0807c00] Decoding VUI
[h264 @ 0000022bd0807c00] nal_unit_type: 8(PPS), nal_ref_idc: 3
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 64, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 64, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_pfa_3xM_inv_float_c - type: mdct_float, len: 96, factors[2]: [3, any], flags: [unaligned, out_of_place, inv_only]
fft16_ns_float_fma3 - type: fft_float, len: 16, factor: 2, flags: [aligned, inplace, out_of_place, preshuf]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 120, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 60, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
fft4_fwd_asm_float_sse2 - type: fft_float, len: 4, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 128, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_sr_asm_float_fma3 - type: fft_float, len: 64, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 480, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 240, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
fft16_asm_float_fma3 - type: fft_float, len: 16, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 512, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_sr_asm_float_fma3 - type: fft_float, len: 256, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_pfa_3xM_inv_float_c - type: mdct_float, len: 768, factors[2]: [3, any], flags: [unaligned, out_of_place, inv_only]
fft_sr_ns_float_fma3 - type: fft_float, len: 128, factor: 2, flags: [aligned, inplace, out_of_place, preshuf]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 960, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_pfa_15xM_asm_float_avx2 - type: fft_float, len: 480, factors[2]: [15, 2], flags: [aligned, inplace, out_of_place, preshuf, asm_call]
fft32_asm_float_fma3 - type: fft_float, len: 32, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_inv_float_avx2 - type: mdct_float, len: 1024, factors[2]: [2, any], flags: [aligned, out_of_place, inv_only]
fft_sr_asm_float_fma3 - type: fft_float, len: 512, factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call]
Transform tree:
mdct_fwd_float_c - type: mdct_float, len: 1024, factors[2]: [2, any], flags: [unaligned, out_of_place, fwd_only]
fft_sr_ns_float_fma3 - type: fft_float, len: 512, factor: 2, flags: [aligned, inplace, out_of_place, preshuf]
[h264 @ 0000022bd0807c00] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0000022bd0807c00] Decoding VUI
[h264 @ 0000022bd0807c00] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 0000022bd0807c00] nal_unit_type: 9(AUD), nal_ref_idc: 0
[h264 @ 0000022bd0807c00] nal_unit_type: 5(IDR), nal_ref_idc: 3
[h264 @ 0000022bd0807c00] Format yuv420p chosen by get_format().
[h264 @ 0000022bd0807c00] Reinit context to 1920x1088, pix_fmt: yuv420p
[h264 @ 0000022bd0807c00] nal_unit_type: 9(AUD), nal_ref_idc: 0
[h264 @ 0000022bd0807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[h264 @ 0000022bd0807c00] nal_unit_type: 9(AUD), nal_ref_idc: 0
[h264 @ 0000022bd0807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[h264 @ 0000022bd0807c00] nal_unit_type: 9(AUD), nal_ref_idc: 0
[h264 @ 0000022bd0807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[h264 @ 0000022bd0807c00] nal_unit_type: 9(AUD), nal_ref_idc: 0
[h264 @ 0000022bd0807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[h264 @ 0000022bd0807c00] nal_unit_type: 9(AUD), nal_ref_idc: 0
[h264 @ 0000022bd0807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[h264 @ 0000022bd0807c00] nal_unit_type: 9(AUD), nal_ref_idc: 0
[h264 @ 0000022bd0807c00] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 3
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000022bd08379c0] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000022bd08379c0] After avformat_find_stream_info() pos: 1136005 bytes read:1215107 seeks:2 frames:20
avcuvid: got stream information.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file_24-07-15_17-03-34.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp41isom
creation_time : 2024-07-15T10:03:35.000000Z
Duration: 00:00:26.71, start: 0.000000, bitrate: 23699 kb/s
Stream #0:0[0x1](und), 19, 1/60000: Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709/reserved/reserved, progressive, left), 1920x1080 [SAR 1:1 DAR 16:9], 0/1, 23511 kb/s, 60 fps, 60 tbr, 60k tbn (default)
Metadata:
creation_time : 2024-07-15T10:03:35.000000Z
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : AVC Coding
Stream #0:1[0x2](und), 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)
Metadata:
creation_time : 2024-07-15T10:03:35.000000Z
handler_name : SoundHandler
vendor_id : [0][0][0][0]
avcuvid: found video stream, stream idx 0
avcuvid: found audio stream, stream idx 1, trackID 1.0, aac, frame_size 1024, timebase 1/48000, delay 0.000 ms
avcuvid: use video stream #0 for input, codec h264, stream time_base 1/60000, codec_timebase 0/1.
avcuvid: hdr10plusMetadataCopy: off
avcuvid: doviRpuMetadataCopy: off
avcuvid: can be decoded by cuvid.
avcuvid: initialized h264_mp4toannexb filter.
avcuvid: start predecode.
avcuvid: GetHeader extradata(43): 01 64 00 2a ff e1 00 1c 67 64 00 2a ac 2b 40 3c 01 13 f2 e0 2d 40 00 00 50 00 00 3e 80 00 1d 4c 00 f1 c2 aa 01 00 04 68 ee 3c b0
avcuvid: GetHeader: changed 43 bytes -> 40 bytes by h264_mp4toannexb.
avcuvid: GetHeader: 40 bytes.
avcuvid: GetHeader(40): 00 00 00 01 67 64 00 2a ac 2b 40 3c 01 13 f2 e0 2d 40 00 00 50 00 00 3e 80 00 1d 4c 00 f1 c2 aa 00 00 00 01 68 ee 3c b0
avcuvid: initialized h264 codec context for parser: time_base: 0/1, pkt_timebase: 1/60000.
avcuvid: fps decoder 16020000/266999, invalid: false
avcuvid: maxCheckFrames 48, maxCheckSec: 1.000e+99
[h264 @ 0000022bd0852800] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0000022bd0852800] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 0000022bd0852800] Decoding VUI
[h264 @ 0000022bd0852800] Decoding VUI
avcuvid: found first key frame: timestamp 0 (0), offset 0
avcuvid: read 48 packets.
avcuvid: checking 31 frame samples.
avcuvid: stream timebase 0/1
avcuvid: decoder fps 16020000/266999
avcuvid: duration histgram of 1 frames
avcuvid: 1000 [ 31 frames]
avcuvid: using popular duration...
avcuvid: fps mul: 1001
avcuvid: raw avgDuration: 1000.000000
avcuvid: estimatedAvgFps: 60060/1001
avcuvid: use decoder fps...
avcuvid: final AvgFps (raw64): 60060/1001
avcuvid: final AvgFps (gcd): 16020000/266999
avcuvid: final AvgFps (round): 60/1
avcuvid: checking for stream #1
avcuvid: avcuvid: H.264/AVC, 1920x1080, 60/1 fps
avcuvid: streamFirstKeyPts: 0
avcuvid: matrix:bt709,colorprim:unknown,transfer:unknown,range:limited,chromaloc:left
avcuvid: sar 1:1, bitdepth 8
vfr mode automatically enabled with timebase 1/480
avcuvid: Set input thread param: all (0x0xffff), priority=normal, throttling=auto.
InitInput: Success.
InitDevice: device #0 (NVIDIA GeForce RTX 4070 SUPER) selected.
[h264 @ 0000022bd0852800] Decoding VUI
nvenc : Loaded nvEncodeAPI64.dll.
nvenc : nvEncodeAPICreateInstance(APIVer=0x200000c: 12.2): Success.
[h264 @ 0000022bd0852800] Decoding VUI
[h264 @ 0000022bd0852800] Decoding VUI
nvenc : Opened Encode Session (API ver 12.2)
nvenc : NvEncOpenEncodeSessionEx(device_type=NV_ENC_DEVICE_TYPE_CUDA): Success.
nvenc : m_pEncodeAPI->nvEncGetEncodeGUIDCount: 3.
nvenc : Found codec H.264/AVC.
[h264 @ 0000022bd0852800] Decoding VUI
nvenc : Found codec H.265/HEVC.
nvenc : Found codec AV1.
nvenc : m_pEncodeAPI->nvEncGetEncodeProfileGUIDCount: 6.
nvenc : Found H.264/AVC baseline profile.
nvenc : Found H.264/AVC main profile.
nvenc : Found H.264/AVC high profile.
nvenc : Found H.264/AVC Unknown profile.
nvenc : Found H.264/AVC high444 profile.
nvenc : Found H.264/AVC auto profile.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetCount: 17.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetGUIDs: Success.
nvenc : m_pEncodeAPI->nvEncGetInputFormatCount: 9.
nvenc : Found input fmt:
nvenc : nv12
nvenc : yv12
nvenc : Invalid
nvenc : yuv444
nvenc : rgb32
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : m_pEncodeAPI->nvEncGetEncodeProfileGUIDCount: 4.
nvenc : Found H.265/HEVC Unknown profile.
nvenc : Found H.265/HEVC main profile.
nvenc : Found H.265/HEVC main10 profile.
nvenc : Found H.265/HEVC main444 profile.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetCount: 17.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetGUIDs: Success.
nvenc : m_pEncodeAPI->nvEncGetInputFormatCount: 11.
nvenc : Found input fmt:
nvenc : nv12
nvenc : yv12
nvenc : Invalid
nvenc : yuv444
nvenc : yv12(10bit)
nvenc : yuv444(10bit)
nvenc : rgb32
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : m_pEncodeAPI->nvEncGetEncodeProfileGUIDCount: 2.
nvenc : Found AV1 Unknown profile.
nvenc : Found AV1 main profile.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetCount: 7.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetGUIDs: Success.
nvenc : m_pEncodeAPI->nvEncGetInputFormatCount: 9.
nvenc : Found input fmt:
nvenc : nv12
nvenc : yv12
nvenc : Invalid
nvenc : yv12(10bit)
nvenc : rgb32
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
InitNVEncInstance: Success.
cuvid: nvcuvid.dll available
cuvid: created frame queue
cuvid: created video parser
cuvid: DecodePacket: success
InitDecoder: Success.
cspconv: cspconv(nv12 -> yv12(16bit))
ngx-truehdr: GPU CC: 8.9.
ngx-truehdr: Loaded dll NVEncNVSDKNGX.dll.
ngx-truehdr: Created NVSDK NGX handle.
ngx-truehdr: Initialized NVSDK NGX library.
ngx-truehdr: Create input csp conversion filter.
colorspace: nvrtc64_101_0.dll available.
cspconv: cspconv(yv12(16bit) -> yuv444(16bit))
ColorspaceOpCtrl: Search path from matrix:bt709,colorprim:unknown,transfer:unknown -> matrix:GBR,colorprim:unknown,transfer:unknown
ColorspaceOpCtrl: Set path...
ColorspaceOpCtrl: node: matrix:bt709,colorprim:unknown,transfer:unknown
ColorspaceOpCtrl: node: matrix:GBR,colorprim:unknown,transfer:unknown
colorspace: additional param size: 8.
colorspace: transfer additional param to device.
colorspace_conv: nvrtc64_101_0.dll available.
colorspace_conv: program source...
colorspace_conv: 椣æ¦æ¥å¼ äääå½åå½àµâæ¤æ¥¦æ®ä ä±ååäå½
åäå¼ æç¥æ©å½¥âå½æ¹©æ¥¬æ®å½à¨æ£ç¬àµ¥âæ¤æ¥¦æ®ä ä±ååäå½
åäç æ
´æ¥´àµ£âç°æ¡æ
æ¼ æ®àµ¥â湩汣æµâ¥æ¼æ
æ¡´à´¾â湩汣æµâ¥æ¼æ±¦æ
¯ã¹´à¨ç£æ
²æµ§â¡æ
·æ¹²æ¹©â§ç¨çµâ¥¨à¨ç£æ
²æµ§â¡æ
·æ¹²æ¹©â§æ¨ç©æ¡æ¬âºã ´ã¤±à´©â湩汣æµâ¥æ¼æµå½¡ç²ç®æµ©â¹¥ã¹¨à¨ç£æ
²æµ§â¡æ
·æ¹²æ¹©â§ç¨ç¯à´©â湥楤൦à´çç¹æ¥æ¥æ 潬ç¡â´ååä
à´»à´âæ©æ®æ¥æ æ
¬çà¨æ£æ¥æ¹©â¥æ±£æµ¡â¡°â±¸æ° ç¯â¬æ¥¨æ¡§â©â ¨ç ¨â©ã´¼â 楨桧⤩㼠â ⠨⥸㸠â½æ°¨ç¯â¤©ã¼ â ⥸㨠â 潬⥷â©âºæ ¨æ©â¥¨à´©â湥楤൦à´â¼î¯ê»ë£¤çªæµ©î§êºç³å±£æ¥ºææ汯ç¯ç³æ¡å±¥æ
§æµâ¹¡ç£î°è¢è£îé¶è¥îè룤î¦ê¢é¦î¹è¦¤à¨à¨æ½£ç®â´æ±¦æ
¯â´äã㤰ä
åä
ã´ ã ã®ã¤¹ã¤²ã ¶ã²ã¸ã¹æ´à´»æ湯ç³æ 潬ç¡å ä
ã·å¼¹ää
ã´ ã ã®ã ±ã°ã¤³ã ¶ãµã °ã°ã¦à¨à¨æ½£ç®â´æ±¦æ
¯â´äµåå½
ã²ä´°ä
åä
ã´ ã ã®ã±ãµã²ã¹ã¹ã±ã³ã¦à¨æ½£ç®â´æ±¦æ
¯â´äµåå½
ã²ä´°äå
âã´ ã ã®ã²ã¸ã±ã¸ãµã¹ã´ã¦à¨à¨â¼¯ä 橤çµæ´â¤æ½¦â²æ½£ç®æ¹©æ¥µç¥´æ¼ â¦æ¥¦ç²â´æ¤æ¥²æ
¶æ¥´æ¶à´®æ湯ç³æ 潬ç¡å äå½ä±ä¡ââ½â¸±ã°ãµã±ã·ã¤¸ã´ã µæ·à´»æ湯ç³æ 潬ç¡å äå½ää
ã´ ã ã®ã°ã°ã±ã¸ãµã°ã ²ã¦à¨à¨æ½£ç®â´æ±¦æ
¯â´åã²ã¸äµâ±â½â¸°ã±ã¹ã°ã·ã ·ã±æµà´»æ湯ç³æ 潬ç¡å ãã °å¼´ãã´ ã ⸸ã¸ã³æµà´»æ湯ç³æ 潬ç¡å ãã °å¼´ã
ã´ ã ã ®ã³ã¹ã·ã¦à¨æ½£ç®â´æ±¦æ
¯â´åã²ã¸äâ²â½ã ±ã ®ãµãµã²ã¦à¨æ½£ç®â´æ±¦æ
¯â´åã²ã¸äâ³â½ã ±ã®ã¸æµà´»à´æ湯ç³æ 潬ç¡ä ä¥å½ãå¼·ââ½â¸°ã±ã ¸ã³ã·ã¦à¨æ½£ç®â´æ±¦æ
¯â´åääã¶äã´ ã ã®ã¸ã¶ã¤¸æ²à´»æ湯ç³æ 潬ç¡ä ä¥å½ãå¼·ââ½â¸°ãµã¤¹ã±ã·ã¦à¨à¨æ½£ç®â´æ±¦æ
¯â´ä±ä
å½å
ââ½â¸±ã±ãµã¹ã³æ±ãæ¸à´»à´æ湯ç³æ 潬ç¡ä´ å½äå½ä¡åâ
â½ã²â¸³æ°à´»æ湯ç³æ 潬ç¡ä´ å½äå½ä¡åå½
ä±ââ½â¸³ã±ã¹æµà´»à´â¼â¯æ½æµæ¹¯æ 湯ç³æ¹¡ç´æ ç¯å åäå â¹ã²ã¸â äâ¥à¨æ½£ç®â´æ±¦æ
¯â´å
äµâ±â½ã²ã±ã®â¦â¯ã´ã¹ã®â¦âªâ¸±æ°â¼ ã ã®ã¦à¨æ½£ç®â´æ±¦æ
¯â´å
äµâ²â½ã²ã²ã®â¦â¯ã´ã¹ã®â¦âªã±â¸¸æ°à´»æ湯ç³æ 潬ç¡å å½ã
ã´ ã ã´â¸´æ°â¼ ã 㤰⸶æ°à´»æ湯ç³æ 潬ç¡å å½ãã´ ã ã´â¸³æ°â¼ ã 㤰⸶æ°â¨ ã ⸲æ°à´»æ湯ç³æ 潬ç¡å å½ãã´ ã 㤳⸲æ°â¼ ã 㤰⸶æ°â¨ ã ⸲æ°à´»à´â¼â¯æ¡ç¯æ¹¥æ ç¯æ 浯æ
°æ¥´æ¥¢æ¥¬ç¥´ç ç©â¨æ¥¨æ¡§ç¥ç æ²æ¥£æ¥³æ¹¯å ä
ã·å¼¹ä±ä¡â½äã㤰äå
â¹à¨â¼¯å æ¥âºåâµâåã®ã¤³â´°â²â¸µâ¸³à´±æ湯ç³æ 潬ç¡å ãã °å¼´ä½äåä
äã´ ã ⸹㤴㠰ã°ã ³ã·ãµã¸ã¦à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ²å½£ã·å¼¹æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ æ¤ â¦ç ¨ã° å ä
ã·å¼¹ää
à´©ââ â â ç ã´ ç ⨠ã ã®ã¦à¨â â æ±¥æ³à¨â â â â â¸â½äã㤰ä
åä
⨠ç ç¯â¡¦â±¸ã ã®æµâ©âå¨ä
ã·å¼¹ä±ä¡ââ⸱æ°ã¬©à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ²å½£ã·å¼¹æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ æ¤ â¦ç ¨ã° ã ã®â¦âªäã㤰äå
â¥à¨â â â â â¸â½â¸â¯â¸´æµà´»ââ æ ç¬àµ¥ââ â â ç ã´ ç ç¯â¡¦ç ¨â¬ â äã㤰ä
åä
â´ ã ã®â¥¦â©â¯äã㤰ä
åä
â¬â¸±æ°â¼ ã ã®æµã¬©à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨â¼¯ä¤ 湧ç¯â¥æ¡´â¥åã®ã ¸â¶ç°ç¯ç©æ½©ç®æ ç¯æ° 浩ç©æ¥æ 湯ç´ç¡â´æ¹¡â¤ç¡ç³ææ â®æ©æ
¥â¬åâ¹à¨ä½ä½åä
äää¹â汦æ
¯â´æ²å½£ã ±ã¸æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° ã ã®â¦â¿â¸°æ°ã¨ ç ç¯â¡¦â±¸ã ã®â¥¦à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ²å½£ã ±ã¸æ¥ç®ç¥æ³æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° ã ã®â¦â¿â¸°æ°ã¨ ç ç¯â¡¦â±¸ã ã®â¦â¯â¸²æ´ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ¼ ç¯å½¦å¼±â ²æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° ã ã®â¦â¿â¸âºæ½°æ·ç ¨â¬â¸±æ²ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ¤ ç®ç¥æ³æ½ç¯å½¦å¼±â ²æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° ã ã®â¦â¿â¸âºæ½°æ·ç ¨â¬â¸±æ°â¼ ã ã®â¥¦à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ½¯æ´çã´ã °â ´æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç æ¥ã
㠸弶潥æ´ç¨æ¥ã㤰æ½ç¥â¡¦â¸âªåã²ã¸ä½åå½ää±â¥
â©â¯ã±â¸°æ°à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ¹©æ¶ç²å½¥æ½¯æ´çã´ã °â ´æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç æ¥ã㤰æ¥ç®ç¥æ³æ½ç¥â¡¦æ²å½£ã ±ã¸æ¥ç®ç¥æ³æç¯â¡¦â¸âªã±â¸°æ°â¤©â¼ å ãã °å¼´ä½äåä
äà´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ½¬ã
§ã°æ½ç¥â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° â½â¸°ã°â¦â¿â¸°æ°ã¨ ã ã®â¦â«æ½¬ã
§æ°ç ¨â©âªã¨ã®â¦â¯â¸²æ°ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° æ¯ã±å¼°æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸ã´¼ã ã®â¦â¿â¸°ã°â¦âºæ½°æ·ã¨â¸°æ°â¬â²âªç ¨â´ ã ã®â¥¦ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° æ¯ã³å¼¶æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸ã´¼ã ã®ã°ã±ã²ã·ã¶â¦â¿â¸°æ°ã¨ ã ã®â¦â«æ½¬ã
§æ°ç ¨â©âªã¨ã®â¦â¯â¸²æµã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° æ¯ã³å¼¶æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸ã´¼ã ã®â¦â¿â¸°ã°ã³ã¶ã²ã·æ¶ã¨ ç ç¯â¡¦ã±ã®â±¦ã ã®â¦âªç ¨â´ ã ã®â¥¦ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç æ¥ãã·å½æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸â¼â¸°æ°ã¼ ã ã®â¦âºæ½°æ·ç ¨â¬â¸²æ²ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç æ¥ãã·å½æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸â¼â¸°æ°ã¼ ã ã®â¦âºæ½°æ·ç ¨â¬â¸±æ°â¼ ã ã®â¥¦à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ²å½£ã´æ°å½§æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸â¼â¸°æ°ã¼ ã ã®â¦âºæ½°æ·ç ¨â¬â¸²æ¸ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç æ¥ãã·æ¢æ¥ç®ç¥æ³æ½ç¥â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° ã ã®â¦â¿â¸°æ°ã¨ ç ç¯â¡¦â±¸ã ã®â¦â¯â¸²æ¸ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç çæ´ãã´å½æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ æ¤ â¦ç ¨ã° ã ã®â¦âªäµåå½
ã²ä´°äå
â¥à¨â â â â â¸â½â¸âªã¨ã®â¦â¯â¸´æ°ã¬©à¨â â æ±¥æ³à¨â â â â â¸â½æ½°æ·â ¨â¸â«å¨åäãã´å½ä±ä¡ââ⸱æ°â¤©â¼ å åäãã´å½ä±ä¡â±ã ã®â¦â¯â¸°ã´â¥¦à´»à´ââ ç ç¥çµâ®ã¸à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç çæ´ãã´å½æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ æ¤ â¦ç ¨ã° å åäãã´å½ää
à´©ââ â â ç ã´ ç ⨠ã ã®ã¦à¨â â æ±¥æ³à¨â â â â â¸â½äµåå½
ã²ä´°ä
åä
⨠ç ç¯â¡¦â±¸ã ã®æµâ©âå¨åäãã´å½ä±ä¡ââ⸱æ°ã¬©à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç¸æ¹å½£æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã·å¼¹æ¯æ´æ¨æ¡æ³ç ¨â¤©â¬â¥¸à´»ç´à¨à¨æ±¦æ
¯â´ç¸æ¹å½£æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã·å¼¹æ¹©æ¶ç²å½¥æ¯æ´æ¨æ¡æ³ç ¨â¤©â¬â¥¸à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç¡æ©æã¶æ½ç¥â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â ⼯å æ²æ¶ç®æ¸ æ¥ç¡ç©â¥æ¥°æ¸ç¬æ æ½²â楹汥楤æ®ä¸ ä¹à´®ââ ç ã´ æ æ
æ¸ç ¨â¬â¸°æ°ã¬©à¨à¨â â æ©â â¸ã´¼â ⸱æ°â¼ ã ⸲æ°â¤©à¨â â â â â¸â½ç
³ç²â¡¦â¸³æ°â¨ ç 㬩à¨â â æ±¥æ³à¨â â â â â¸â½åääã¶ä
â¨ æ° æ¯â¡¦ã±ã®â¦âªâ¸âåääã¶äâ©â«åääã¶äà´»à´ââ ç ç¥çµâ®ã¸à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ 楲形ã¢å¼·æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ â¼ â¯çç¥æ¹¥â´æ®æ
§æ¥´æ¶ç ç¡©æ±¥â³ç¡¥æ
°æ®æ¹©â§æ¹©æ½´ç ç¯ç©ç©â¥æ
¶ç¬ç¥à´®ââ ç ã´ æ æ
æ¸ç ¨â¬â¸°æ°ã¬©à¨à¨â â æ©â â¸ã´¼ã ã®â¥¦à¨â â â â â¸â½ç ¨â¨ ç â©âªã¨ã®â¦â¯â¸³æ°ã¬©à¨â â æ±¥æ³à¨â â â â â¸â½æ¨ç¸â¡¦ç ¨â´ ä ä¥å½ãå¼·â¥â¼ ä ä¥å½ãå¼·â¥â¬ ä ä¥å½ãå¼·â¥â¨ â ⸱æ°â¼ ã ⸲æ°ã¬©à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç³æ§æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ©â â¸â¼ã±ã¤®æ²â¨ å äå½ää
à´©ââ â â ç ⨠â½ã¨ã®â¦â¯ã±ã¤®æ²ã¬©à¨â â æ±¥æ³à¨â â â â â¸â½æ½°æ·â ¨â¸â«å¨äå½ä±ä¡ââ⸱æ°â¤©â¨ â ⸱æ°â¼ å äå½ä±ä¡â¥â¬â¸²æ´ã¬©à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç³æ§æ¥ç®ç¥æ³æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ©â â¸â¼åääå
â¥à¨â â â â â¸â½â¸âªã±ã¤®æ²à´»ââ æ ç¬àµ¥ââ â â ç ã´ å äå½ä±ä¡ââªæ½°æ·ç ¨â¬â¸±æ°â¼ ã ã®â¥¦â´ â åää
åä
â´ ã ã®â¥¦à´»à´ââ ç ç¥çµâ®ã¸à¨àµ½à´â¼â¯æ
æ®æ¬ç 污æµâ³æ¹©ç æ¨ç 湡æ§å¬ ⸰ⴰ⸱崰ç æµâ¨æ¡´ç¡ç æ¨â¹æ
æ´â¨â¡æ¬æ
§ç¥£ä åà´®ää±ååäå½
åäæ 潬ç¡ç 祶æ£æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ©â â¸â¼â¸°æ°ç° â¼â¸â¾â¸±æ°à´©ââ â â ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã·å¼¹æ¹©æ¶ç²å½¥æ¯æ´æ¨æ¡æ³ç ¨â¤©â¬â¥¸à´»ââ æ ç¬àµ¥ââ â â ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã ±ã¸æç¯â¡¦æ
¦ç¢â¡¦â¥¸â°©ç 㬩à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç 祶æ£æ¥ç®ç¥æ³æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ©â â¸â¼â¸°æ°ç° â¼â¸â¾â¸±æ°à´©ââ â â ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã·å¼¹æ¯æ´æ¨æ¡æ³ç ¨â¤©â¬â¥¸à´»ââ æ ç¬àµ¥ââ â â ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã ±ã¸æ¥ç®ç¥æ³æç¯â¡¦æ
¦ç¢â¡¦â¥¸â°©ç 㬩à¨àµ½à´â¼ç¯å½±ç³æ¡å½¥æ½´æ±æ¹©æ
¥àµ²ää±ååäå½
åäæ 潬ç¡ç å½´ã²ã¸æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â ⼯ä 汩æ´â²æ®æ
§æ¥´æ¶ç 污æµâ³æ½´æ 潶æ©ä¸ ä¹à´®ââ æ¤ â¦ç ¨ã¸ ã ã®â¥¦ç¬ à¨â â â â 汦æ
¯â´ç¸ç¯ã´ ç ç¯â¡¦â±¸ã ã®â¦â¯åã²ã¸äµâ¤²à´»ââ â â æ 潬ç¡æ¸ 浵㴠æ æ
æ¸ç ¨æ½°â·âåã²ã¸äâ°±ã ã®â¥¦à´»ââ â â æ 潬ç¡æ 湥㴠æ æ
æ¸å¨ãã °å¼´ãâ´ å ãã °å¼´ã⨠ç æ½°â±·ä ä½åäå㬩à¨â â â â â¸â½æ½°æ·æ¸¨æµµâ¼ æ æ¹¥â¬â¸±æ°â¼ å ãã °å¼´ã
㬩à¨â â â½æ±¥æ³ç¬ à¨â â â â â¸â½â¸°æ°à´»ââ ç´ à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨â¼¯æ¥¬æ®ç¡ç彯ç
°çæ
°æ£à¨ä½ä½åä
äää¹â汦æ
¯â´ç³ã㠰弴湩æ¶ç²å½¥æ½¥æ´æ¨æ½¬ç¡ç â©àµ»ââ â¼ â¯æ¥ç¬ç¥æ¸ æ¥ç¡ç©â¥æ
¶ç¬ç¥ç â¯ç¡æ¥¯â¤ä
â±æ æ®æ ç¬â¯ç³æ¥æ
©âµ¬æ
£æ³ã ç â¯æ¡´ç¡â ⡦⡧⤰â©ã´½ã ⸩à¨â â æ©â â¸â¾â¸°æ°â©àµ»ââ â â æ 潬ç¡ç æ½°â·â½æ½°æ·ç ¨â¬åã²ã¸äµâ¤±à´»âæ©ã à¨â â â â â¼¯ä¼ æ¥²æ¥§æ
®â¬æ½¦æµ²æ±µç¡æ½©â®ç¦æµ¯å åäå âã²ã¸ãºã°â´ç°æ±¢æ©ç¡æ½©â¹®à¨â â â â 汦æ
¯â´ç®ââ½åã²ã¸äâ±â«åã²ã¸äâ²âªç¸ç¯à´»ââ â â æ 潬ç¡æ 湥㴠ã ã®â¦â«åã²ã¸äâ³âªç¸ç¯à´»ââ â â ç ã´ ç ç¯â¡¦ç®ââ¯æ¤â±®å ãã °å¼´ã㬩à¨æ£ç¬àµ¥ââ â â â¼ â¯æ½æ²ç æ
´æ±¢â¥ç¡æ
²æ®æµ¥æ¹¥â´æ¡´ç¡æ 潶æ©â³æ½³ææ 湡æ£æ±¬ç¡æ½©â®ç¥æ½²â¹²à¨â â â â 汦æ
¯â´ç®ââ½å¨ãã °å¼´ã
â´ ã ã®â¥¦â¬ â åã²ã¸äâ²âåã²ã¸ä⤳⨠ç æ½°ã·à¨â â â â 汦æ
¯â´æ¤â®â½â¸±æ°â¬ å ãã °å¼´ã⨠ç æ½°ã·à¨â â â â â¸â½æ½°æ·ã¨ã®â¦â«ç®ââ¯æ¤â±®å ãã °å¼´ã㬩à¨æ£æ®æ©à¨â â â½æ±¥æ³ç¬ à¨â â â â â¸â½â¸°æ°à´»ââ ç´ à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨â¼¯ä ç°æ¥¬ç¥æ ç ç¥ææ
¨æ¹®æ±¥æ ç¯æ²ç£æ½©â®æ¹©ç³æ
¥â¤æ¯ç æ¨æ¤ æ´æ
²æ¥´æ¶æ´ ç¥æ½¨â¤ç³æ¥æ©æ©â¤æ¹©å æ¥ã®ã±â¸°à¨ä½ä½åä
äää¹â汦æ
¯â´ç¡æ©æã¶æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²æ¼ ç¯å½¦å¼±â ²ç¡æ©æã¶æ¥ç®ç¥æ³æ½ç¥â¡¦â¥¸ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ 楲形ã¢å¼·æ¹©æ¶ç²å½¥æ½¥æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®ç¡æ©æã¶æ½ç¥â¡¦æ¹©æ¶ç²å½¥æ½¯æ´ã
ãç ¨â¤©à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç³ãã °å¼´æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®ç³ã㠰弴湩æ¶ç²å½¥æ½¥æ´æ¼¨ç¯å½¦ç³ã²ã¸ç ¨â¤©à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç³ã㠰弴湩æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®æ¹©æ¶ç²å½¥æ½¯æ´çã´ã °â ´ç³ãã °å¼´æ½¥æ´ç ¨â¤©à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯ã´æ 楲ä¢ã¶ç⡳汦æ
¯ã´ç â¬æ±¦æ
¯â´ç«â¬æ±¦æ
¯â´æ«â¬æ±¦æ
¯â´æ«â¬æ±¦æ
¯â´æ³æ±¡â¥¥ç¬ à¨â â æ½£ç®â´æ±¦æ
¯â´æ
§æµâ¡â½â¸±æ²à´»ââ æ 潬ç¡ç ã´ ç ç ®â¨ ç æ
£æ¬à´»ââ æ 潬ç¡æ ã´ ç 礮⨠ç æ
£æ¬à´»ââ æ 潬ç¡æ ã´ ç 種⨠ç æ
£æ¬à´»à´ââ æ 潬ç¡ç¤ â¤â½æµ¦ç¡¡â¡¦ç«â¨ ç â¬ æ¬ â§âªâ§â«æ«â¨ æ â¬ä±ä
å½å
â¥à´»ââ æ 潬ç¡ç¤ 彳湩â¶â½æ½°æ·ç¤¨â±¤â ⸱æ°â´ æ 浡æ
â©â¯æ
§æµâ¥¡à´»à´ââ ç ç ®ã´ æ 楲形ã¢å¼·æ¯æ´ç¨â¨ ç¤ å½³æ¹©â¥¶à´»ââ ç 礮㴠æ 楲形ã¢å¼·æ¯æ´æ¨â¨ ç¤ å½³æ¹©â¥¶à´»ââ ç 種㴠æ 楲形ã¢å¼·æ¯æ´æ¨â¨ ç¤ å½³æ¹©â¥¶à´»ââ ç ç¥çµâ®ã¶à¨àµ½à´ää±ååäå½
åäæ 潬ç¡â³ç¡æ©ã䤷ç®ç⡳汦æ
¯ã´ç â¬æ±¦æ
¯â´ç«â¬æ±¦æ
¯â´æ«â¬æ±¦æ
¯â´æ«â¬æ±¦æ
¯â´æ³æ±¡â¥¥ç¬ à¨â â æ½£ç®â´æ±¦æ
¯â´æ
§æµâ¡â½â¸±æ²à´»ââ æ 潬ç¡ç ã´ ç ç ®à´»ââ æ 潬ç¡æ ã´ ç 礮഻ââ æ 潬ç¡æ ã´ ç 種഻à´ââ æ 潬ç¡ç¤ â³â½æµ¦ç¡¡â¡¦ç«â¨ ç â¬ æ¬ â§âªâ§â«æ«â¨ æ â¬ä±ä
å½å
â¥à´»ââ ç¤ â³â½æ½°æ·ç¤¨â±³æ 浡æ
â´ ã ã®â¥¦à´»à´ââ ç ç ®ã´ æ 楲形ã¢å¼·æ¹©æ¶ç²å½¥æ¯æ´ç¨â¨ ç¤ â¥³â¨ ç æ
£æ¬à´»ââ ç 礮㴠æ 楲形ã¢å¼·æ¹©æ¶ç²å½¥æ¯æ´æ¨â¨ ç¤ â¥³â¨ ç æ
£æ¬à´»ââ ç 種㴠æ 楲形ã¢å¼·æ¹©æ¶ç²å½¥æ¯æ´æ¨â¨ ç¤ â¥³â¨ ç æ
£æ¬à´»ââ ç ç¥çµâ®ã¶à¨àµ½à´ää±ååäå½
åäæ 潬ç¡â³æ
ç´ç¡©æµæ±µæ¨æ½¬ç¡æ´ ãåå´³â¬æ±¦æ
¯ã´ç â©àµ»ââ æ 潬ç¡â³æ²ã´à¨â â æ²â¹´â¸â½åå´°ãââªâ¹¶â¸â«åå´°ã
ââªâ¹¶â¹â«åå´°ãââªâ¹¶ãºà¨â â æ²â¹´â¹â½åå´±ãââªâ¹¶â¸â«åå´±ã
ââªâ¹¶â¹â«åå´±ãââªâ¹¶ãºà¨â â æ²â¹´âºâ½åå´²ãââªâ¹¶â¸â«åå´²ã
ââªâ¹¶â¹â«åå´²ãââªâ¹¶ãºà¨â â æ²ç´æ¹²ç ç¥à´»ç´à¨à¨â¼¯è¿¥î¢èâºç¨ç´ã©³â¼¯æ¥§ç³æ®ç©ç¨â¹¢æ½£â½ç´â½¥ã³æ£æ¢ã¹ã·æ²æ±æ¥ã´ã£ã¤ã¹æµã£ã²ã¹à¨ä½ä½åä
äää¹â汦æ
¯â´æ
¨æ±¢â¡¥æ±¦æ
¯â´â±¸æ 潬ç¡ä â¬æ±¦æ
¯â´â±æ 潬ç¡ä â¬æ±¦æ
¯â´â±æ 潬ç¡ä â¬æ±¦æ
¯â´â¥ç¬ à¨â â æ²ç´æ¹²â ç ¨â ªâ©â¸â©â¥ä«äªâ©â¯ç ¨â ªâ©â¸â¥ä«äªâ¤©â´ ä ä¯à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ¨ã²æ³å½²æ
¨æ±¢â¡¥æ±¦æ
¯â´â±¸æ 潬ç¡ç ç¯æ²å½¥æ°æ¡â¬æ±¦æ
¯â´æ¬å½²æ¥®ç´â¬æ±¦æ
¯â´â±æ 潬ç¡ä â¬æ±¦æ
¯â´â±æ 潬ç¡ä â¬æ±¦æ
¯â´â±
æ 潬ç¡ä â©àµ»ââ æ 湯ç³æ 潬ç¡æ â¢â½æ½³çµæ£çæ
¥â«â¯æ¬å½²æ¥®ç´à´»ââ æ 湯ç³æ 潬ç¡ç â°â½æ
¨æ±¢â¡¥â±¸ä â¬â±ä â¬â±ä â¬â¥à´»ââ æ 湯ç³æ 潬ç¡ç â±â½æ
¨æ±¢â¡¥æ¥â¬â±ä â¬â±ä â¬â±
ä 㬩à¨â â æ²ç´æ¹²ç â°â¯ã
´à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ¨ã²æ³å½²æ½æ¥¢çµæ¨æ½¬ç¡ç â¬æ±¦æ
¯â´æ½³çµæ£çæ
¥â±«æ 潬ç¡æ° ç¤æ¹ç©â±³æ 潬ç¡ç â¬æ±¦æ
¯â´æ°æ¡â©àµ»ââ æ 湯ç³æ 潬ç¡æ â¢â½æ½³çµæ£çæ
¥â«â¯æ¬å½²æ¥®ç´à´»ââ ç æ
¥â«ã´ªæ ã¢à¨â â æ©â â¸ã´¼ç â©àµ»ââ â â ç ç¥çµâ®ã¸à¨â â ൽà´ââ æ 潬ç¡æ ã´ â´ â´âªâ´âªç¨æ
¥â«â⸱æ°â©â¯ç¨â¨ ç â´ ã ã®â¦âªâ´â«æ°æ¡ã¬©à¨â â 汦æ
¯â´â¢â½ç¨â¨ ç â´ ã ã®â¦âªâ´âªæ°æ¡â¬ ç æ
¥â¥«â¼ æ æ
æ¸ç¨æ
¥â«â⸱æ°â¬æ±ã⥦഻ââ ç ç¥çµâ®æ¨â¨ æ ⬠ã ã®â¦âªâ¢âªâ´â«â´âªâ¥´â¼ â â¢â⥡⨠â â¸â«â¥¡â¼ â â¸â«â¥¢à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ¨ã²æ³å½²æ²æ¹©æ
¨æ²æ¨æ½¬ç¡ç â¬æ±¦æ
¯â´æ½³çµæ£çæ
¥â±«æ 潬ç¡æ° ç¤æ¹ç©â±³æ 潬ç¡æ¼ æ¦æ³â±´æ 潬ç¡ç æ
¥â¥«ç¬ à¨â â æ½£ç®â´æ±¦æ
¯â´æ¥ã´ ç ç¯æ²å½¥æ°æ¡â¼ æ° ç¤æ¹ç©ã³à¨â â æ°æ¡â¨ â½æ¥à´»ââ ç ç¥çµâ®â¸â¯ç ¨â¬ æ¼ æ¦æ³â¥´â¨ â æ°æ¡â¬ æ¼ æ¦æ³â¥´â¼ ç æ
¥ã«à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° 湩æ
¥å½²æ½´çå½±ç³æ¡â¡¥æ±¦æ
¯â´â¥¸ç¬ à¨â â æ©â â¸â¾â¸°æ°â©àµ»ââ â â ç ⨠â½ååä
åä¥äâ¼ ã ã°ã°ã®ã¦à¨â â â â â¸â½æ½°æ·ç ¨â¬å
äµâ¤±à´»ââ â â ç ã´ â å
äâ±â«å
äâ²âªâ¥¸â¼ â ⸱æ°â¬ å å½ã⨠ç 㬩à¨â â â â â¸â½æ½°æ·ç ¨â¬å
äµâ¤²à´»ââ â â ç ç¥çµâ®ã¸à¨â â â½æ±¥æ³ç¬ à¨â â â â æ²ç´æ¹²ã ã®ã¦à¨â â ൽç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç
°çæ
°æ£ç彯楬æ®ç¡æ¨æ½¬ç¡ç â©àµ»ââ æ¤ â¦ç ¨ã¸ ã ã®â¥¦ç¬ à¨â â â â â¸â½æ½°æ·ç ¨â¬â¸±æ°â¼ å å½ã㬩à¨â â â â â¸â½æµ¦ç¡¡â¡¦â¸âå
äâ°±ã ã®â¥¦â¼ â å
äâ²âå
äâ³âªâ¥¸à´»ââ â â ç ã´ ç ç¯â¡¦â±¸ã ã®â¦â¯å
äµâ¤±à´»ââ â â ç ⨠â½ã±ã°â¸°æ°â¼ ä´ å½äå½ä¡åã
à¨â â â â æ²ç´æ¹²ç à´»ââ ç´ æ ç¬â¥àµ»ââ â â ç ç¥çµâ®â¸°æ°à´»ââ ç´ à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ ç°ç¥¬æã´ã¤³â °æ±¦æ
¯â´â±¸æ 湯ç³æ 潬ç¡æ´ ç¡¡çâ¥ç¬ à¨â â æ½£ç®â´æ±¦æ
¯â´ç«ã´ ã ã®â¦âªæ
䱸浵ⴠã ã®ã¦à¨â â 汦æ
¯â´æ´ã´ â â¸âç«â©â¯ã¨ã®â¦âç«ã¬©à¨â â 汦æ
¯â´æ´â²â½æ´â¨ ç ã¢à¨â â 汦æ
¯â´æ´â³â½æ´â²âªæ´à´»ââ æ 潬ç¡ç â¢â½ã¨ã®â¦âªæ´â³â⸳æ°â¨ ç ã¢â¬ ã ã®â¥¦â¨ æ¬ â³à´«ââ â â â æ´â³â⸲æ°â¨ ç ã¢â¬ ç ⥢⨠â ⸱æ°â´ æ¬ â¥³â¬ à¨â â â â ⴨⸲æ°â¨ ç ã¢â¬ ã ã®â¦âªæ´â¤²â¨ æ´ ç¡¡çãà¨â â ⼯â¸â½æ¥â¡¸æ°â¬â±¸æ° ç¥å³æ
¨â¡®â±¸æ¬ ⥳㬩à¨â â â¸â½ç ¨ã° æ¬ â¥³ã¼ ç 㨠ç ã¢à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ¥â¡¸æ±¦æ
¯â´â±¸æ 潬ç¡ç¤ â¬æ±¦æ
¯â´â¥¡ç¬ à¨â â â¡â½æ¨ã° ã ã®â¥¦ã¼ ã ã®â¦âºã¡à¨â â â¡â½æ¨ã¸ ã ã®â¥¦ã¼ ã ã®â¦âºã¡à¨â â æ²ç´æ¹²â ⥸⨠â ⸱æ°â´ â ⥡â©â«ç¤¨â©âªæ¨ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨æ½¬ç¡ç â°°æ 潬ç¡ç â°±æ 潬ç¡æ â©àµ»ââ ç ç¥çµâ®ã¶â¬ â ã
¶â´ ç ⤰⨠æ à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯ã´æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨æ½¬ç¡â³ã¶â¬æ±¦æ
¯ã´ç â°±æ 潬ç¡æ â©àµ»ââ æ 潬ç¡â³ã²à¨â â â¹²â¸â½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã¶ç ®â¬ã
¶ç ®â¬â¥¡à´»ââ ç ç¤®ã´ æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²ç¨â¸°â±¹ç ⸱ⱹæ 㬩à¨â â â¹²âºâ½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã¶ç¨®â¬ã
¶ç¨®â¬â¥¡à´»ââ ç ç¥çµâ®ã²à¨àµ½à´ää±ååäå½
åäæ¤ ç®æ° çµæ³çæ²å½¶æ©â¡¸æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²â 湩⥴ã¸à¨àµ½à´ää±ååäå½
åäæ¤ ç®æ° çµæ³æ¹æ
¥å½²æ©â¡¸æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²â æ¹©â¥´ç ¨â¬ ã ã®â¥¦à´»ç´à¨à¨ä½ä½åä
äää¹â湩â´ç¬ã´å½¤æ®ç¸æ¥ç¡¤æ¨æ½¬ç¡ç â¬æ¹©â´æ¥³æºâ©àµ»ââ æ¤ ç®æ¸ ç¡¥â´â½ç¬ã´å½¤ç°ç¥æ¥ç¡¤ç ¨â©â«ã¬±à¨â â æ²ç´æ¹²â æ®ç¸ã¸ â½æ¥³æºâ©â¿æ¥³æºâ´ ã ã¨ æ¸ ç¡¥ã´à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° çµæ³çæ²ç¬â¡´æ½£ç®â´æ±¦æ
¯â´â±³æ 湯ç³æ¤ ç®æ¤ 硤â¬æ½£ç®â´æ¹©â´æ¥³æºà´¬ââ æ 湯ç³æ 潬ç¡ç æ²ç¬æµ´æ¹©ãâ±æ 湯ç³æ 潬ç¡ç æ²ç¬ç´æ
£æ¬ãâ±æ 湯ç³æ 潬ç¡â¨ å½æ²ç³æ¥²ç£å½ç æ²ç¬â¥´ç¬ à¨â â æ½£ç®â´æ±¦æ
¯â´â¸â½æ±£æµ¡â¡°ç¨â´ ç æ²ç¬æµ´æ¹©æ¥ç¡¤â¥â¨ ç æ²ç¬ç´æ
£æ¬æ¥ç¡¤â±ã ã®â±¦â 汦æ
¯â¥´ç¨ç©©â¥â⤱㬩à¨â â æ½£ç®â´æ±¦æ
¯â´ã£ã´ ç æ²ç¬å´æ©â¸âªæ¥³æºâ¬ æ° çµæ³çæ²å½¶æ©â¡¸â¥¸ãà¨â â æ½£ç®â´æ±¦æ
¯â´ã
£ã´ ç æ²ç¬å´æ©â¸âªæ¥³æºâ¬ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸â±¸ç 穩⥥ãà¨â â æ²ç´æ¹²æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨â°°æ â°±ç â´ æ° çµæ³çæ²å½¶æ©â¡¸â¥¸ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡â³ç¬ã´å½¤ç°æ±¥çµæ¨æ¹¯ç³æ 潬ç¡â³æ¹©â¬æ½£ç®â´æ¹©â´æ¥³æºà´¬ââ æ 湯ç³æ 潬ç¡ç æ²ç¬æµ´æ¹©ãâ±æ 湯ç³æ 潬ç¡ç æ²ç¬ç´æ
£æ¬ãâ±æ 湯ç³æ 潬ç¡â¨ å½æ²ç³æ¥²ç£å½ç æ²ç¬â¥´ç¬ à¨â â 汦æ
¯ã´æ¼ çµà´»ââ æ¼ çµç ®ã´ æ° çµæ³çæ²ç¬â¡´æ¹©ç ®â¬â°°ç ç©©â±¥ç æ²ç¬æµ´æ¹©â¬ç°æ±¥çµæ³æ±¡â±¥ç æ²ç¬â¥´à´»ââ æ¼ çµç¤®ã´ æ° çµæ³çæ²ç¬â¡´æ¹©ç¤®â¬â°±ç ç©©â±¥ç æ²ç¬æµ´æ¹©â¬ç°æ±¥çµæ³æ±¡â±¥ç æ²ç¬â¥´à´»ââ æ¼ çµç¨®ã´ æ° çµæ³çæ²ç¬â¡´æ¹©ç¨®â¬â°²ç ç©©â±¥ç æ²ç¬æµ´æ¹©â¬ç°æ±¥çµæ³æ±¡â±¥ç æ²ç¬â¥´à´»ââ ç ç¥çµâ®ç¯ã´à¨àµ½à´ää±ååäå½
åäæ 潬ç¡â³ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥æ½£ç®â´ååä
⨠å½æ²ç³æ¥²ç£å½æ° çµâ¬æ½£ç®â´æ¹©â´â±¸æ 湯ç³æ¤ ç®ç¤ â¬æ½£ç®â´æ¹©â´â±ºæ 湯ç³æ¤ ç®æ° çµæ¥æºâ°°æ 湯ç³æ¤ ç®æ° çµæ¥æºã°â©àµ»ââ ä° åäâæ
¶â¬â½ç¬å´â¸âªç¬å´ç©©ã¥â±â«â¹âªç¬å´ç©©ã¥â¬ ç¨ ãà¨â â 汦æ
¯ã´æ¼ çµà´»ââ æ¼ çµç ®ã´ ç æ±¡ç ®à´»ââ æ¼ çµç¤®ã´ ç 污礮഻ââ æ¼ çµç¨®ã´ ç 污種഻ââ ç ç¥çµâ®ç¯ã´à¨àµ½à´ää±ååäå½
åäæ 潬ç¡â³ç¬ã´å½¤æ¹©æ´ç²æ¹æ
¥æ²ç³æ¨æ½¬ç¡â³æ¹©â¬æ½£ç®â´ååä
⨠å½æ²ç³æ¥²ç£å½æ° çµâ¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¤±ç¬ à¨â â æ²ç´æ¹²æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ç¬ã´å½¤æ®ç¡æ¥ç¡¤æ¤¨â¹®â¥¸â¬ç¬ã´å½¤æ®ç¡æ¥ç¡¤æ¤¨â¹®â¥¹â¬ç¬ã´å½¤æ®ç¡æ¥ç¡¤æ¤¨â¹®â¥ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ç´à¨à¨â¼¯è¿¥î¢èâºç¨ç´ã©³â¼¯æ¹¥ç®æ©ç©æ¥æ
©æ¼®æ²ç¯æ©â½©ç汩湩æ
¥å½²æ¹©æ´ç²æ±¯ç¡æ½©àµ®ää±ååäå½
åäæ 潬ç¡â³ç¬ã´å½¤æ¹©æ´ç²ç楲楬æ®ç¡æ¨æ½¬ç¡â³æ¹©â¬æ½£ç®â´ååä
⨠å½æ²ç³æ¥²ç£å½æ° çµâ¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¤±ç¬ à¨â â æ½£ç®â´æ¹©â´ã¸ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç ®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¸ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç ®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ã¹ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¤®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¹ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¤®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ãºã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¨®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
ºã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¨®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç¡¥ã´ æ¤ â¹®â¸âã¸à´»ââ æ 湯ç³æ 潬ç¡ç æ
£æ¬â¹â½æ¹©ç¤®â´ ç¤ ã¬°à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç©¥ã´ æ¤ â¹®âºâãºà´»ââ æ 湯ç³æ 潬ç¡â³ã£ã°â â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°°ç¤ â°°ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã°â±ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã¸â¬ã¹â¬ã
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ã£ã±â â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°°ç¤ â°±ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã°â±ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã¸â¬ã
¹â¬ã
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ã
£ã°â â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°±ç¤ â°°ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â±ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã
¸â¬ã¹â¬ã
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ã
£ã±â â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°±ç¤ â°±ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â±ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã
¸â¬ã
¹â¬ã
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ã£â°â â½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã£ã°â¬ã
£ã°â¬æ³æ±¡ç¡¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â ã´ æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨ã°â°°æ ã±â°°ç æ
£æ¬â¥¸à´»ââ æ 湯ç³æ 潬ç¡â³ã£â±â â½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã£ã°â¬ã
£ã°â¬æ³æ±¡ç¡¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â ã´ æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨ã°â°±æ ã±â°±ç æ
£æ¬â¥¸à´»ââ æ 湯ç³æ 潬ç¡â³ã£â â â½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã£â°°â ã
£â°°â æ³æ±¡ç¥¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ â±â ã´ æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨ã°â¬æ ã±â¬ç æ
£æ¬â¥¹à´»ââ æ 湯ç³æ 潬ç¡â³â£â â â½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã£â¬â ã
£â¬â æ³æ±¡ç©¥ã¬©à¨â â æ²ç´æ¹²æ à´»ç´à¨à¨â¼¯è¿¥î¢èâºç¨ç´â¼ºç¯ç·æ®æ±©æ±æ©ç¨æ°®æ´ç®â½«æ°â½¦æ¡·ç©ç¥ç¡ç¥â½³ä±åâµä¹ãã°â´·æ½ç¦æ
·æ²æ¥â¹¢æ°àµ¦ää±ååäå½
åäæ 潬ç¡â³ç¬ã´å½¤æ¹©æ´ç²çç¥æ
²æ¨ç¤æ±¡æ¨æ½¬ç¡â³æ¹©â¬æ½£ç®â´ååä
⨠å½æ²ç³æ¥²ç£å½æ° çµâ¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¤±ç¬ à¨â â æ½£ç®â´æ¹©â´ã¸ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç ®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¸ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç ®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ã¹ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¤®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¹ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¤®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ãºã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¨®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
ºã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¨®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç¡¥ã´ æ¤ â¹®â¸âã¸à´»ââ æ 湯ç³æ 潬ç¡ç æ
£æ¬â¹â½æ¹©ç¤®â´ ç¤ ã¬°à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç©¥ã´ æ¤ â¹®âºâãºà´»ââ æ 潬ç¡ç æ
£æ¬â°°ç æ
£æ¬â°±ç æ
£æ¬ã¬²à¨â â 湩â´ä
¸â¬ä
¹â¬ä
ºâ¬ä¸â¬ä¹â¬äºà´»ââ æ¤ â¦ç¨æ
£æ¬â¸â¾æ³æ±¡ç¥¥â©àµ»ââ â â æ¤ â¦ç¨æ
£æ¬â¹â¾æ³æ±¡ç©¥â©àµ»ââ â â â â ç æ
£æ¬â°â½æ³æ±¡ç¡¥à´»ââ â â â â ç æ
£æ¬â±â½æ³æ±¡ç¥¥à´»ââ â â â â ç æ
£æ¬â²â½æ³æ±¡ç©¥à´»ââ â â â â ç ââ½ã
¸â»ä
¹ã´ ç¤ ã¬°ç¨ ââ½ãºà´»ââ â â â â ç ââ½ã
¸â»ä¹ã´ ç¤ ã¬±ç¨ ââ½ãºà´»ââ â â ç´ æ ç¬â¥æ©â æ³æ±¡ç¡¥ã¸ ç æ
£æ¬â¥ºç¬ à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¸à¨â â â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ãºà¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â â â â ä
¸ã´ ç ã¬±ç¤ ââ½ã¹â»ä
ºã´ ç¨ ã¬°à¨â â â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã¹â»äºã´ ç¨ ã¬±à¨â â â â â½æ±¥æ³ç¬ à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ãºà¨â â â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ã¸à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã¹â»ä
ºã´ ç¨ ã¬±à¨â â â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã¹â»äºã´ ç¨ ã¬±à¨â â â â ൽââ ç´ æ ç¬â¥àµ»ââ â â æ¤ â¦ç¨æ
£æ¬âºâ¾æ³æ±¡ç¥¥â©àµ»ââ â â â â ç æ
£æ¬â°â½æ³æ±¡ç©¥à´»ââ â â â â ç æ
£æ¬â±â½æ³æ±¡ç¥¥à´»ââ â â â â ç æ
£æ¬â²â½æ³æ±¡ç¡¥à´»ââ â â â â ç ââ½ã¸â»ä
¹ã´ ç¤ ã¬°ç¨ ââ½ã
ºà´»ââ â â â â ç ââ½ã¸â»ä¹ã´ ç¤ ã¬±ç¨ ââ½ã
ºà´»ââ â â ç´ æ ç¬â¥æ©â æ³æ±¡ç©¥ã¸ ç æ
£æ¬â¥¸ç¬ à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ãºà¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¸à¨â â â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã
¹â»ä
ºã´ ç¨ ã¬°à¨â â â â â â ä¸ã´ ç ã¬°ç¤ ââ½ã
¹â»äºã´ ç¨ ã¬±à¨â â â â â½æ±¥æ³ç¬ à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ã¸à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ãºà¨â â â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã
¹â»ä
ºã´ ç¨ ã¬°à¨â â â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã
¹â»äºã´ ç¨ ã¬°à¨â â â â ൽââ ç´ à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã°â°â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°°ç¤ â°°ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â±â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°±ç¤ â°±ç¨ â°±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ââ â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â±ç¤ â±ç¨ â±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ââ â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â±ç¤ â±ç¨ â±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯â´ç â°â â½â¸±æ°â â´ ç æ
£æ¬ã¬°à¨â â æ½£ç®â´æ±¦æ
¯â´ç â±â â½æ³æ±¡ã¥â´ ç æ
£æ¬ã¬±à¨â â æ½£ç®â´æ±¦æ
¯â´ç â²â â½æ³æ±¡ã
¥â´ ç æ
£æ¬ã¬²à¨â â æ½£ç®â´æ±¦æ
¯â´ç â³â â½æ³æ±¡ã¥à´»ââ æ 潬ç¡â³ã£à¨â â â¹£â¸â½ã³â¨ æ ã°â¸°â¸â«ã
³â¨ æ â¹â¸â«ã³â¨ æ â¹â¸â«ã³â¨ æ ã±â¸±ã¸à¨â â â¹£â¹â½ã³â¨ æ ã°â¸°â¹â«ã
³â¨ æ â¹â¹â«ã³â¨ æ â¹â¹â«ã³â¨ æ ã±â¸±ã¹à¨â â â¹£âºâ½ã³â¨ æ ã°â¸°âºâ«ã
³â¨ æ â¹âºâ«ã³â¨ æ â¹âºâ«ã³â¨ æ ã±â¸±ãºà¨â â æ²ç´æ¹²æ à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯ã´æ° çµæ³æ¥ç®ç¥å½°ç¥°æ
²æ¥â¡¤æ±¦æ
¯ã´æ¤ â±®æ 湯ç³ä° åäâæ°ªçµâ¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¤±ç¬ à¨â â æ½£ç®â´æ¹©â´ã¸ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç ®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¸ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç ®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ã¹ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¤®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¹ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¤®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ãºã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¨®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
ºã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¨®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç¡¥ã´ æ¤ â¹®â¸âã¸à´»ââ æ 湯ç³æ 潬ç¡ç æ
£æ¬â¹â½æ¹©ç¤®â´ ç¤ ã¬°à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç©¥ã´ æ¤ â¹®âºâãºà´»à´ââ æ 潬ç¡ç æ
£æ¬â°°ç æ
£æ¬â°±ç æ
£æ¬ã¬²à¨â â 湩â´ä
¸â¬ä
¹â¬ä
ºâ¬ä¸â¬ä¹â¬äºâ¬ä¸â¬ä¹â¬äºà´»à´ââ æ¤ â¦ç¨æ
£æ¬â¹â¾æ³æ±¡ç¡¥â â¦æ³æ±¡ç©¥ã¸ ç æ
£æ¬â¥¸ç¬ à¨â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã¹â»ä
ºã´ ç¨ ã¬±à¨â â â â ä¸ã´ ç ã¬°ç¤ ââ½ã
¹â»äºã´ ç¨ ã¬°à¨â â â â ä¸ã´ ç ã¬°ç¤ ââ½ã
¹â»äºã´ ç¨ ã¬±à¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ãºà¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¸à¨â â â½æ±¥æ³æ¤ â¦ç¨æ
£æ¬â¸â¾æ³æ±¡ç¥¥â â¦æ³æ±¡ç©¥ã¸ ç æ
£æ¬â¥¹ç¬ à¨â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã¹â»ä
ºã´ ç¨ ã¬±à¨â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã¹â»äºã´ ç¨ ã¬°à¨â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã¹â»äºã´ ç¨ ã¬±à¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¸à¨â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ãºà¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â½æ±¥æ³ç¬ à¨â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã
¹â»ä
ºã´ ç¨ ã¬°à¨â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã¹â»äºã´ ç¨ ã¬°à¨â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã
¹â»äºã´ ç¨ ã¬°à¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¸à¨â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ã¹à¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ãºà¨â â ൽââ æ 湯ç³æ 潬ç¡â³ã£ã°ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã¸â¬ã¹â¬ãºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ã
£ã±ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã
¸â¬ã
¹â¬ã
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ä
£â ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ä
¸â¬ä
¹â¬ä
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ä£â ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ä¸â¬ä¹â¬äºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ä£â ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ä¸â¬ä¹â¬äºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 潬ç¡â³ã£à¨â â â¹£â¸â½ã£ã°ç ®â¬ â ä£ç ®â´ æ ã°â¸°â¥¸â¨ ç æ
£æ¬â°â«æ¨ã±â¸±â¸âä£ç ®â©âªæ³æ±¡ã¥â¬ â ä
£ç ®â´ æ ã°â¸°â¥¸â¨ ç æ
£æ¬â±â«æ¨â¹â¸âä
£ç ®â´ æ â¹â¸â«ã£ã°ç ®â©âªæ³æ±¡ã¥â¨ ç æ
£æ¬ã¬±à¨â â â¹£â¹â½ã£ã°ç¤®â¬ â ä£ç¤®â´ æ ã°â¸°â¥¹â¨ ç æ
£æ¬â°â«æ¨ã±â¸±â¹âä£ç¤®â©âªæ³æ±¡ã¥â¬ â ä
£ç¤®â´ æ ã°â¸°â¥¹â¨ ç æ
£æ¬â±â«æ¨â¹â¹âä
£ç¤®â´ æ â¹â¹â«ã£ã°ç¤®â©âªæ³æ±¡ã¥â¨ ç æ
£æ¬ã¬±à¨â â â¹£âºâ½ã£ã°ç¨®â¬ â ä£ç¨®â´ æ ã°â¸°â¥ºâ¨ ç æ
£æ¬â°â«æ¨ã±â¸±âºâä£ç¨®â©âªæ³æ±¡ã¥â¬ â ä
£ç¨®â´ æ ã°â¸°â¥ºâ¨ ç æ
£æ¬â±â«æ¨â¹âºâä
£ç¨®â´ æ â¹âºâ«ã£ã°ç¨®â©âªæ³æ±¡ã¥â¨ ç æ
£æ¬ã¬±à¨â â æ²ç´æ¹²æ à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯ã´æ° çµæ³æ¥ç®ç¥å½°ç°ç©â¡æ±¦æ
¯ã´æ¤ â±®æ 湯ç³ä° åäâæ°ªçµâ¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¤±ç¬ à¨â â æ½£ç®â´æ¹©â´ã¸ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç ®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¸ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç ®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ã¹ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¤®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¹ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¤®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ãºã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¨®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
ºã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¨®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç¡¥ã´ æ¤ â¹®â¸âã¸à´»ââ æ 湯ç³æ 潬ç¡ç æ
£æ¬â¹â½æ¹©ç¤®â´ ç¤ ã¬°à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç©¥ã´ æ¤ â¹®âºâãºà´»ââ æ 潬ç¡ç æ
£æ¬â°°ç æ
£æ¬ã¬²à¨â â 湩â´ä
¸â¬ä
¹â¬ä
ºâ¬ä¸â¬ä¹â¬äºà´»à´ââ æ¤ â¦ç¨æ
£æ¬âºâ¾æ³æ±¡ç¡¥â©àµ»ââ â â ç æ
£æ¬â°â½æ³æ±¡ç©¥à´»ââ â â ç æ
£æ¬â²â½æ³æ±¡ç¡¥à´»ââ â â ç ââ½ã¸â»ä
¹ã´ ç¤ ã¬±ç¨ ââ½ã
ºà´»ââ â â ç ââ½ã¸â»ä¹ã´ ç¤ ã¬°ç¨ ââ½ã
ºà´»ââ ç´ æ ç¬â¥àµ»ââ â â ç æ
£æ¬â°â½æ³æ±¡ç¡¥à´»ââ â â ç æ
£æ¬â²â½æ³æ±¡ç©¥à´»ââ â â ç ââ½ã
¸â»ä
¹ã´ ç¤ ã¬±ç¨ ââ½ãºà´»ââ â â ç ââ½ã
¸â»ä¹ã´ ç¤ ã¬°ç¨ ââ½ãºà´»ââ ç´ à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã°â°â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°°ç¤ â°°ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã°â°â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°°ç¤ â°±ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â±â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°±ç¤ â°°ç¨ â°±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â±â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°±ç¤ â°±ç¨ â°±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ââ â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â±ç¤ â±ç¨ â±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ââ â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â±ç¤ â±ç¨ â±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â 汦æ
¯ã´æ à´»ââ æ ç ®ã´ æ ã°â¸°â¸â«æ¨â¹â¸âã£ã°ç ®â©âªæ³æ±¡ã¥â¬ â ã
£ã°ç ®â´ æ â¹â¥¸â¨ ç æ
£æ¬â²â«æ¨ã°â¸°â¸âã£ã°ç ®â©âªæ³æ±¡ç¥¥â¬ â ã£ã°ç ®â´ æ ã°â¸°â¸âä£ç ®â¬ æ â¹â¥¸â¨ ç æ
£æ¬â°âªæ³æ±¡ç¥¥â¬ â ä£ç ®â´ æ â¹â¸âã
£ã°ç ®â¬ æ ã±â¸±â¥¸â¨ ç æ
£æ¬â²âªæ³æ±¡ç¥¥à´»ââ æ 礮㴠æ ã°â¸°â¹â«æ¨â¹â¹âã£ã°ç¤®â©âªæ³æ±¡ã¥â¬ â ã
£ã°ç¤®â´ æ â¹â¥¹â¨ ç æ
£æ¬â²â«æ¨ã°â¸°â¹âã£ã°ç¤®â©âªæ³æ±¡ç¥¥â¬ â ã£ã°ç¤®â´ æ ã°â¸°â¹âä£ç¤®â¬ æ â¹â¥¹â¨ ç æ
£æ¬â°âªæ³æ±¡ç¥¥â¬ â ä£ç¤®â´ æ â¹â¹âã
£ã°ç¤®â¬ æ ã±â¸±â¥¹â¨ ç æ
£æ¬â²âªæ³æ±¡ç¥¥à´»ââ æ 種㴠æ ã°â¸°âºâ«æ¨â¹âºâã£ã°ç¨®â©âªæ³æ±¡ã¥â¬ â ã
£ã°ç¨®â´ æ â¹â¥ºâ¨ ç æ
£æ¬â²â«æ¨ã°â¸°âºâã£ã°ç¨®â©âªæ³æ±¡ç¥¥â¬ â ã£ã°ç¨®â´ æ ã°â¸°âºâä£ç¨®â¬ æ â¹â¥ºâ¨ ç æ
£æ¬â°âªæ³æ±¡ç¥¥â¬ â ä£ç¨®â´ æ â¹âºâã
£ã°ç¨®â¬ æ ã±â¸±â¥ºâ¨ ç æ
£æ¬â²âªæ³æ±¡ç¥¥à´»ââ ç ç¥çµâ®ã£à¨àµ½à´çç´æµâ´ää汯ç¯ç³æ¡ä¥ç¥æ
æ
²çç¬ à¨â â 湩â´ç¬å½´æ¯ç¦ç¥à´»ââ æ¤ ç®ç æ²ç¬å½´æ¯ç¦ç¥à´»ââ â¼ â¯ë¯¤î¦¥è¶è£æ¾¯æ¦æ³î´êºê§îºé¦ë·¤î꺽è£î«èè£î¼ë¾à¨â â ⼯î èè£î¼ë¾è£î®éè£îëªè£îë¦ë¦îê¾ë£¤î¢é¢¨è£î¦®êé¦î°éè¿¥îê
à¨ã½à¨à¨æ±¦æ
¯â´æªç¥æå¶ç¡æµ¡å³æ²ç¬â¡´æ½¶æ©â¨ å½æ²ç³æ¥²ç£å½ç ç´â©àµ»ââ ç ç¥çµâ®æ¨æ½¬ç¡â¨ â ©æ¨æ
¨â²â¤ªç°â²â«â ¨ää汯ç¯ç³æ¡ä¥ç¥æ
æ
²ç⨠ç©ç´â´©ç¾æ²ç¬å½´æ¯ç¦ç¥ã¬©à¨àµ½à´æ湯ç³æ 潬ç¡â¨ æ§ä´ç¥æ
æ
²ççæ±¥çµæ¨æ¹¯ç³ç 楯â¤å¼ªçç¥ç´æ©å½´âç°â¥²ç¬ à¨â â æ²ç´æ¹²â æ½£ç®â´æ±¦æ
¯â´â¤ªâ ¨æ½£ç®â´æ¡£ç¡â¨ ç©ç´â¬ â å¨å¥æ½æ½¬ç²æ
°æ£æå¶ç¡æµ¡â³â¤ªç°â¥²ã¸ç°æ±¥çµæ½æ¦æ³â¥´à´»ç´à¨à¨ååä
⨠æ§ä´ç¥æ
æ
²çç⡴潶æ©â¨ å½æ²ç³æ¥²ç£å½ç ç´â©àµ»ââ ç ç¥çµâ®ä°¨åäâ⤪⠨档ç¡â¨ ç©ç´â¬ â å¨å¥æ½æ½¬ç²æ
°æ£æå¶ç¡æµ¡â³â¤ªç°â¥²ã¸ç¬å½´æ¯ç¦ç¥ã¬©à¨àµ½à´æ湯ç³ä° åäâæªç¥æå¶ç¡æµ¡ä±³çµæ¨æ¹¯ç³ç 楯â¤å¼ªçç¥ç´æ©å½´âç°â¥²ç¬ à¨â â æ²ç´æ¹²â æ½£ç®â´ååä
⨠⠩æ¨æ¹¯ç³æ æ
¨â²â¤ªç°â²â«â ¨ää汯ç¯ç³æ¡ä¥ç¥æ
æ
²ç⨠ç©ç´â´©æ°¾çµæ½æ¦æ³â¥´à´»ç´à¨à¨æ¤£æ®ç¬æ¤ã° ç³æ¥¤ç®æ ®à¨¾å¼æç¥æ©å½¥âå½æ¹©æ¥¬æ®å½æ潬ç¡â³æ½£ç®ç¥å½´æ½£æ½¬ç²æ
°æ£æçµæ½´â¡æ±¦æ
¯ã´ç â¬æ½£ç®â´ää汯ç¯ç³æ¡ä¥ç¥æ
æ
²ç⨠å½æ²ç³æ¥²ç£å½ç ç¡æµ¡â¥³ç¬ à¨â â â»â¼¯æ
²æ®â¥æ¹©âµ´æ¾æ½¬ç¡ââ â â æ 湯ç³æ 潬ç¡ç 湡æ§ç¥â ã´ ã ã®ã¸ã¶ãµã¤¹ã °ã¶ãµæ¹ãæµà¨»â â â â æ½£ç®â´æ±¦æ
¯â´æ¯ç¦ç¥ç¥â â½ãã®ã°ã¹ã¶ã·ã°ã¹ã¶æ³ãæ²à¨»â â â â æ½£ç®â´æ±¦æ
¯â´æ
²æ®å½¥çµâ â½â¸±ã·ã ³ã¶ã¶ã·ã´ã¸ã·âµ¥ã°ã¦ââ â â æ 湯ç³æ 潬ç¡æ¼ æ¦æ³å½´çµã´ ⴠ⸵ã·ã´ã¸ã·ã´ã¸ã·ã´âµ¥ã°ã¦ââ â â ç ç ®ã´ ç ç ®â¨ ç 湡æ§ç¥â â«æ¯ç¦ç¥ç¥à¨»â â â â ⹸â¹â½â¹¸â¹âªæ
²æ®å½¥çµâ¬ æ¼ æ¦æ³å½´çµà¨»â â â â ⹸âºâ½â¹¸âºâªæ
²æ®å½¥çµâ¬ æ¼ æ¦æ³å½´çµà¨»â â ੽ââ ç¬ ââ â â æ 潬ç¡æ´ ãåå´³ã´ ç¬ ââ â â â â ç¬ ã¤ ã¤®ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã ¹æ¹ãæ±â¬â¸°ã°ã°ã°ã°ã°ã°ã°ã°â¥ã°â±¦ã ã®ã·ã¤·ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹æ¸ã«æ°ç´ ਬâ â â â â â â»â¸¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã¶âµ¥ã°â±¦â´ ⸱ã¸ã³ã´ã·ã¹ã°ã ´ã·âµ¥ã°â±¦â´ ⸴㠶ã±ã´ã·ã¹ã°ã ´ã ¶âµ¥ã°â¦â±½ââ â â â â ç¬ ã¤ ã¤®ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã ¹æ¹ãæ±â¬â¸±ã¸ãµã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹â¥ã°â±¦ã ã®ã°ã°ã°ã°ã°ã°ã°æ°ã«æ°ç´ ââ â â ç´ à¨»â â â â â¸â½æ
ç´ç¡©æµæ±µæ´¨â¬â¥¸à¨»â â ੽ââ ç ç¥çµâ®ã¸ç´à¨ç³ç¡æ©æ 湯ç³æ¤ ç®å å¡åå
ååä
ââ½ã¬´à¨æ´çæ
¬æ´ç¼ç¹æ¹¥æµ¡â¥ã¹å¼ æç¥æ©å½¥âå½æ¹©æ¥¬æ®å½å ç å¯ç¡©æ¨æ½¬ç¡ç â©â»æ²ç´æ¹²â â¥æ±£æµ¡â¡°ç ¨â©â«â¸°æµâ¬â¸°æ°â¬ã¨ã°¼ç¨ç©©æ½¥â¡¦â¥ã ªâ¤©â´ ã ã®â¥¦â»à©½æ´çæ
¬æ´ã¸¼å¼ æç¥æ©å½¥âå½æ¹©æ¥¬æ®å½æ 潬ç¡â æ½´æ¥ã±¸æ±¦æ
¯ã¹´â 汦æ
¯â´â¥¸ç¬ ç ç¥çµâ®ã¸ç´ à¨æ´çæ
¬æ´ç¼ç¹æ¹¥æµ¡â¥ç¥æ°çâ±´ç ç¹æ¹¥æµ¡â¥ç¥æ°æ¹à¨¾å½æ±§æ¯æ±¡å½ç 楯â¤æ«æ¹²æ±¥æ汩æ´â¡²ââ ç 湩㡴ç⨠å½æ²ç³æ¥²ç£å½ç ç奴â¬æ¥µç®å¼¸â´å¼ªçç¥ç´æ©å½´âä°ç³â±ç 湩㡴ç⨠å½æ²ç³æ¥²ç£å½ç çå´à¨¬â â æ½£ç®â´æ¹©â´ç¤å´ç©æ¡£â¬æ½£ç®â´æ¹©â´ç¤å´æ©æ¡´â¬æ½£ç®â´æ¹©â´ç¤ä¡´æ¥¥æ¡§â±´ââ æ 湯ç³ç 湩㡴ç⨠å½æ²ç³æ¥²ç£å½ç ç奣â¬æ½£ç®â´æ¥µç®å¼¸â´å¼ªçç¥ç´æ©å½´âå°æ²â±æ 湯ç³ç 湩㡴ç⨠å½æ²ç³æ¥²ç£å½ç çå£à¨¬â â æ½£ç®â´æ¹©â´ç³å£ç©æ¡£â¬æ½£ç®â´æ¹©â´ç³å£æ©æ¡´â¬æ½£ç®â´æ¹©â´ç³ä¡£æ¥¥æ¡§â±´æ 潯â¬ç³ä¥£ç®ç¥æ
¬æ£â±¤ââ æ 湯ç³å å¥æ½æ½¬ç²æ
°æ£æå¶ç¡æµ¡â³å¼ªçç¥ç´æ©å½´âæ
°æ
²çâ©à©»â â æ½£ç®â´æ¹©â´ç¡©ã´ â æ±¢æ¯ä¥«ç¡¤ç ®â¨ æ 潬æ£æ¥â¹â¸â«æ¡´æ²æ¡æ⹸⥸⨠å å¡åå
ååä
ãââ æ 湯ç³æ¤ ç®æ¤ â¹â½æ 潬æ£æ⹸â¹âªæ±¢æ¯ä«æµ©ç¤®â¬ ç ç¨æ
¥ä¥¤ç¡¤ç¤®à¨»ââ ç ç´æµâ´å½æ±¡æ©å½®â¡æ¥³æºæ¯å¨ç¹ä¥¥â¥®â¨ ã â©ç¥æ°æ¹â´à©»â â â â ç¥æ°æ¹ç â¬â±¹ç¨ â¬ã·ââ ç´ à¨»ââ ç ç´æµâ´å½æ±¡æ©å½®â¡æ¥³æºæ¯å¨ç¹ä½¥çµâ©âªâ¤´å ç¹ä½¥çµâ´à©»â â â â ç¥æ°çâ´â±¸ç¤ â¬â±ºç ਻â â ã½à¨â â æ©â ç¡©ã° æ ç³æ¥ç¤â¨â¦æ¤ â¹â¼ç¤ä¡´æ¥¥æ¡§â¥´ç¬ à¨â â â â ç¥æ°æ¹â´ç³å¥£ã´ ⨠å¨ç¹ä¥¥ã®â¨ â ©å°æ²ââ«ç¥©â¨ ç æ²æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°æ¹â¤©à¨»â â â â ç¥æ°æ¹â´ç³å£ã´ ⨠å¨ç¹ä¥¥ã®â¨ â ©å°æ²ââ«ç¥©â¨ ç æ²æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°æ¹â¤©à¨»â â â â ç¥æ°æ¹â´ç³å£ã´ ⨠å¨ç¹ä¥¥ã®â¨ â ©å°æ²ââ«ç¥©â¨ ç æ²æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°æ¹â¤©à¨»ââ â â æ 潬ç¡â³æ¥°ã¸ã´ æ´ æ¡å½¥æ±¦æ
¯ã´â ¨æ±¦æ
¯â¥´ç³å¥£ç ®â¬æ¨æ½¬ç¡ç©æ²â¹â±¸â 汦æ
¯â¥´ç³å£ç ®ã¬©ââ â â æ 潬ç¡â³æ¥°ã
¸ã´ æ´ æ¡å½¥æ±¦æ
¯ã´â ¨æ±¦æ
¯â¥´ç³å¥£ç¤®â¬æ¨æ½¬ç¡ç©æ²â¹â±¹â 汦æ
¯â¥´ç³å£ç¤®ã¬©ââ â â æ 潬ç¡â³æ¥°ã¸ã´ æ´ æ¡å½¥æ±¦æ
¯ã´â ¨æ±¦æ
¯â¥´ç³å¥£ç¨®â¬æ¨æ½¬ç¡ç©æ²â¹â±ºâ 汦æ
¯â¥´ç³å£ç¨®ã¬©ââ â â æ 潬ç¡â³æ¥°ã¸ã´ æ´ æ¡å½¥æ±¦æ
¯ã´â ¨æ±¦æ
¯â¥´ç³å¥£ç®â¬æ¨æ½¬ç¡ç©æ²â¹â±·â 汦æ
¯â¥´ç³å£ç®ã¬©à¨â â â â 楰ã¸ã´ æ 湯æ¶ç²æ汯ç¯ç³æ¡å½¥ç£ç³æµ¯ç¨ç¡©â°°ç ç¡æµ¡â¥³à¨»â â â â 楰ã
¸ã´ æ 湯æ¶ç²æ汯ç¯ç³æ¡å½¥ç£ç³æµ¯ç¨ç¡©â°±ç ç¡æµ¡â¥³à¨»â â â â 楰ã¸ã´ æ 湯æ¶ç²æ汯ç¯ç³æ¡å½¥ç£ç³æµ¯ç¨ç¡©â°²ç ç¡æµ¡â¥³à¨»â â â â 楰ã¸ã´ æ 湯æ¶ç²æ汯ç¯ç³æ¡å½¥ç£ç³æµ¯ç¨ç¡©â°³ç ç¡æµ¡â¥³à¨»ââ â â å ç¹ä½¥çµâ´ç¤å¥´â¬ç¤å´â¬ç¤å´à¨»â â â â ç¤å¥´ç ®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã¸ç ®ã¬©æ ç³â¹â¸â½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸°â¥¹â»ç¤å´ç ®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã¸ç¨®ã¬©ââ â â æ ç³â¹â¹â½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸±â¥¸â»ç¤å´ç¤®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã
¸ç¤®ã¬©æ ç³â¹â¹â½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸±â¥ºà¨»â â â â ç¤å¥´ç¨®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã¸ç ®ã¬©æ ç³â¹âºâ½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸²â¥¹â»ç¤å´ç¨®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã¸ç¨®ã¬©ââ â â æ ç³â¹â·â½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸³â¥¸â»ç¤å´ç®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã¸ç¤®ã¬©æ ç³â¹â·â½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸³â¥ºà¨»ââ â â å ç¹ä½¥çµâ´çªç´ç奴㴠â ç¥æ°çã´â¨ â ©ä°ç³ââ«ç¥©â¨ æ ç³æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°ç⥴㬩ââ â â å ç¹ä½¥çµâ´çªç´çå´ã´ â ç¥æ°çã´â¨ â ©ä°ç³ââ«ç¥©â¨ æ ç³æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°ç⥴㬩ââ â â å ç¹ä½¥çµâ´çªç´çå´ã´ â ç¥æ°çã´â¨ â ©ä°ç³ââ«ç¥©â¨ æ ç³æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°ç⥴㬩à¨â â â â ç°ä²ç³åå´°ã´ æ ç³ãââ â â ç ç´çå´ãââ½ç¤å´à¨»â â â â ç°ä²ç³åå´°ã´ æ ç³ãââ ç´ ç´à¨»å¼æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸â¼â¸°ï¿½â©½ì¥à¤ÅëÈ«
---------------------------------------
--- Source of colorspace_conv ---
---------------------------------------
1 #ifndef _JITIFY_INCLUDE_GUARD_F0A087E65B9A1EB9
2 #define _JITIFY_INCLUDE_GUARD_F0A087E65B9A1EB9
3 #ifdef __CUDACC_RTC__
4 #define COLORSPACE_FUNC __device__ __inline__
5 #else
6 #define COLORSPACE_FUNC static
7 #include
8 #include
9 _Pragma("warning") (push)
10 _Pragma("warning") (disable: 4819)
11 #include
12 _Pragma("warning") (pop)
13 #endif
14
15 typedef float4 LUTVEC;
16
17 #ifndef clamp
18 #define clamp(x, low, high) (((x) <= (high)) ? (((x) >= (low)) ? (x) : (low)) : (high))
19 #endif
20
21
22 const float REC709_ALPHA = 1.09929682680944f;
23 const float REC709_BETA = 0.018053968510807f;
24
25 const float SMPTE_240M_ALPHA = 1.111572195921731f;
26 const float SMPTE_240M_BETA = 0.022821585529445f;
27
28 // Adjusted for continuity of first derivative.
29 const float SRGB_ALPHA = 1.055010718947587f;
30 const float SRGB_BETA = 0.003041282560128f;
31
32 const float ST2084_M1 = 0.1593017578125f;
33 const float ST2084_M2 = 78.84375f;
34 const float ST2084_C1 = 0.8359375f;
35 const float ST2084_C2 = 18.8515625f;
36 const float ST2084_C3 = 18.6875f;
37
38 const float ARIB_B67_A = 0.17883277f;
39 const float ARIB_B67_B = 0.28466892f;
40 const float ARIB_B67_C = 0.55991073f;
41
42 const float FLOAT_EPS = 1.175494351e-38f;
43
44 const float MP_REF_WHITE = 203.0f;
45 const float MP_REF_WHITE_HLG = 3.17955f;
46
47 // Common constants for SMPTE ST.2084 (HDR)
48 const float PQ_M1 = 2610.0f / 4096.0f * 1.0f / 4.0f;
49 const float PQ_M2 = 2523.0f / 4096.0f * 128.0f;
50 const float PQ_C1 = 3424.0f / 4096.0f;
51 const float PQ_C2 = 2413.0f / 4096.0f * 32.0f;
52 const float PQ_C3 = 2392.0f / 4096.0f * 32.0f;
53
54 // Chosen for compatibility with higher precision REC709_ALPHA/REC709_BETA.
55 // See: ITU-R BT.2390-2 5.3.1
56 const float ST2084_OOTF_SCALE = 59.49080238715383f;
57
58 COLORSPACE_FUNC float rec_709_oetf(float x) {
59 if (x < REC709_BETA)
60 x = x * 4.5f;
61 else
62 x = REC709_ALPHA * powf(x, 0.45f) - (REC709_ALPHA - 1.0f);
63
64 return x;
65 }
66
67 COLORSPACE_FUNC float rec_709_inverse_oetf(float x) {
68 if (x < 4.5f * REC709_BETA)
69 x = x / 4.5f;
70 else
71 x = powf((x + (REC709_ALPHA - 1.0f)) / REC709_ALPHA, 1.0f / 0.45f);
72
73 return x;
74 }
75
76 // Ignore the BT.1886 provisions for limited contrast and assume an ideal CRT.
77 COLORSPACE_FUNC float rec_1886_eotf(float x) {
78 return x < 0.0f ? 0.0f : powf(x, 2.4f);
79 }
80
81 COLORSPACE_FUNC float rec_1886_inverse_eotf(float x) {
82 return x < 0.0f ? 0.0f : powf(x, 1.0f / 2.4f);
83 }
84
85 COLORSPACE_FUNC float ootf_1_2(float x) {
86 return x < 0.0f ? x : powf(x, 1.2f);
87 }
88
89 COLORSPACE_FUNC float inverse_ootf_1_2(float x) {
90 return x < 0.0f ? x : powf(x, 1.0f / 1.2f);
91 }
92
93 COLORSPACE_FUNC float ootf_st2084(float x) {
94 return rec_1886_eotf(rec_709_oetf(x * ST2084_OOTF_SCALE)) / 100.0f;
95 }
96
97 COLORSPACE_FUNC float inverse_ootf_st2084(float x) {
98 return rec_709_inverse_oetf(rec_1886_inverse_eotf(x * 100.0f)) / ST2084_OOTF_SCALE;
99 }
100
101 COLORSPACE_FUNC float log100_oetf(float x) {
102 return x <= 0.01f ? 0.0f : 1.0f + log10f(x) * (1.0f / 2.0f);
103 }
104
105 COLORSPACE_FUNC float log100_inverse_oetf(float x) {
106 return x <= 0.0f ? 0.01f : powf(10.0f, 2 * (x - 1.0f));
107 }
108
109 COLORSPACE_FUNC float log316_oetf(float x) {
110 return x <= 0.00316227766f ? 0.0f : 1.0f + log10f(x) * (1.0f / 2.5f);
111 }
112
113 COLORSPACE_FUNC float log316_inverse_oetf(float x) {
114 return x <= 0.0f ? 0.00316227766f : powf(10.0f, 2.5f * (x - 1.0f));
115 }
116
117 COLORSPACE_FUNC float rec_470m_oetf(float x) {
118 return x < 0.0f ? 0.0f : powf(x, 2.2f);
119 }
120
121 COLORSPACE_FUNC float rec_470m_inverse_oetf(float x) {
122 return x < 0.0f ? 0.0f : powf(x, 1.0f / 2.2f);
123 }
124
125 COLORSPACE_FUNC float rec_470bg_oetf(float x) {
126 return x < 0.0f ? 0.0f : powf(x, 2.8f);
127 }
128
129 COLORSPACE_FUNC float rec_470bg_inverse_oetf(float x) {
130 return x < 0.0f ? 0.0f : powf(x, 1.0f / 2.8f);
131 }
132
133 COLORSPACE_FUNC float smpte_240m_oetf(float x) {
134 if (x < 4.0f * SMPTE_240M_BETA)
135 x = x * (1.0f / 4.0f);
136 else
137 x = powf((x + (SMPTE_240M_ALPHA - 1.0f)) / SMPTE_240M_ALPHA, 1.0f / 0.45f);
138
139 return x;
140 }
141
142 COLORSPACE_FUNC float smpte_240m_inverse_oetf(float x) {
143 if (x < SMPTE_240M_BETA)
144 x = x * 4.0f;
145 else
146 x = SMPTE_240M_ALPHA * powf(x, 0.45f) - (SMPTE_240M_ALPHA - 1.0f);
147
148 return x;
149 }
150
151 COLORSPACE_FUNC float xvycc_oetf(float x) {
152 return copysignf(rec_709_oetf(fabsf(x)), x);
153 }
154
155 float xvycc_inverse_oetf(float x) {
156 return copysignf(rec_709_inverse_oetf(fabsf(x)), x);
157 }
158
159 COLORSPACE_FUNC float arib_b67_oetf(float x) {
160 // Prevent negative pixels from yielding NAN.
161 x = fmaxf(x, 0.0f);
162
163 if (x <= (1.0f / 12.0f))
164 x = sqrtf(3.0f * x);
165 else
166 x = ARIB_B67_A * logf(12.0f * x - ARIB_B67_B) + ARIB_B67_C;
167
168 return x;
169 }
170
171 COLORSPACE_FUNC float arib_b67_inverse_oetf(float x) {
172 // Prevent negative pixels expanding into positive values.
173 x = fmaxf(x, 0.0f);
174
175 if (x <= 0.5f)
176 x = (x * x) * (1.0f / 3.0f);
177 else
178 x = (expf((x - ARIB_B67_C) / ARIB_B67_A) + ARIB_B67_B) * (1.0f / 12.0f);
179
180 return x;
181 }
182
183 COLORSPACE_FUNC float srgb_eotf(float x) {
184 if (x < 12.92f * SRGB_BETA)
185 x *= (1.0f / 12.92f);
186 else
187 x = powf((x + (SRGB_ALPHA - 1.0f)) * (1.0f / SRGB_ALPHA), 2.4f);
188
189 return x;
190 }
191
192 COLORSPACE_FUNC float srgb_inverse_eotf(float x) {
193 if (x < SRGB_BETA)
194 x = x * 12.92f;
195 else
196 x = SRGB_ALPHA * powf(x, 1.0f / 2.4f) - (SRGB_ALPHA - 1.0f);
197
198 return x;
199 }
200
201 // Handle values in the range [0.0-1.0] such that they match a legacy CRT.
202 COLORSPACE_FUNC float xvycc_eotf(float x) {
203 if (x < 0.0f || x > 1.0f)
204 return copysignf(rec_709_inverse_oetf(fabsf(x)), x);
205 else
206 return copysignf(rec_1886_eotf(fabsf(x)), x);
207 }
208
209 COLORSPACE_FUNC float xvycc_inverse_eotf(float x) {
210 if (x < 0.0f || x > 1.0f)
211 return copysignf(rec_709_oetf(fabsf(x)), x);
212 else
213 return copysignf(rec_1886_inverse_eotf(fabsf(x)), x);
214 }
215
216 //pq_space_to_linear
217 COLORSPACE_FUNC float st_2084_eotf(float x) {
218 // Filter negative values to avoid NAN.
219 if (x > 0.0f) {
220 float xpow = powf(x, 1.0f / ST2084_M2);
221 float num = fmaxf(xpow - ST2084_C1, 0.0f);
222 float den = fmaxf(ST2084_C2 - ST2084_C3 * xpow, FLOAT_EPS);
223 x = powf(num / den, 1.0f / ST2084_M1);
224 } else {
225 x = 0.0f;
226 }
227
228 return x;
229 }
230
231 //linear_to_pq_space
232 COLORSPACE_FUNC float st_2084_inverse_eotf(float x) {
233 // Filter negative values to avoid NAN, and also special-case 0 so that (f(g(0)) == 0).
234 if (x > 0.0f) {
235 float xpow = powf(x, ST2084_M1);
236 #if 0
237 // Original formulation from SMPTE ST 2084:2014 publication.
238 float num = ST2084_C1 + ST2084_C2 * xpow;
239 float den = 1.0f + ST2084_C3 * xpow;
240 x = powf(num / den, ST2084_M2);
241 #else
242 // More stable arrangement that avoids some cancellation error.
243 float num = (ST2084_C1 - 1.0f) + (ST2084_C2 - ST2084_C3) * xpow;
244 float den = 1.0f + ST2084_C3 * xpow;
245 x = powf(1.0f + num / den, ST2084_M2);
246 #endif
247 } else {
248 x = 0.0f;
249 }
250
251 return x;
252 }
253
254 // Applies a per-channel correction instead of the iterative method specified in Rec.2100.
255 COLORSPACE_FUNC float arib_b67_eotf(float x) {
256 return ootf_1_2(arib_b67_inverse_oetf(x));
257 }
258
259 COLORSPACE_FUNC float arib_b67_inverse_eotf(float x) {
260 return arib_b67_oetf(inverse_ootf_1_2(x));
261 }
262
263 COLORSPACE_FUNC float st_2084_oetf(float x) {
264 return st_2084_inverse_eotf(ootf_st2084(x));
265 }
266
267 COLORSPACE_FUNC float st_2084_inverse_oetf(float x) {
268 return inverse_ootf_st2084(st_2084_eotf(x));
269 }
270
271 COLORSPACE_FUNC float3 aribB67Ops(float3 v, float kr, float kg, float kb, float scale) {
272 const float gamma = 1.2f;
273 float r = v.x * scale;
274 float g = v.y * scale;
275 float b = v.z * scale;
276
277 float yd = fmaxf(kr * r + kg * g + kb * b, FLOAT_EPS);
278 float ys_inv = powf(yd, (1.0f - gamma) / gamma);
279
280 v.x = arib_b67_oetf(r * ys_inv);
281 v.y = arib_b67_oetf(g * ys_inv);
282 v.z = arib_b67_oetf(b * ys_inv);
283 return v;
284 }
285
286 COLORSPACE_FUNC float3 aribB67InvOps(float3 v, float kr, float kg, float kb, float scale) {
287 const float gamma = 1.2f;
288 float r = v.x;
289 float g = v.y;
290 float b = v.z;
291
292 float ys = fmaxf(kr * r + kg * g + kb * b, FLOAT_EPS);
293 ys = powf(ys, gamma - 1.0f);
294
295 v.x = arib_b67_inverse_oetf(r * ys) * scale;
296 v.y = arib_b67_inverse_oetf(g * ys) * scale;
297 v.z = arib_b67_inverse_oetf(b * ys) * scale;
298 return v;
299 }
300
301 COLORSPACE_FUNC float3 matrix_mul(float m[3][3], float3 v) {
302 float3 ret;
303 ret.x = m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z;
304 ret.y = m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z;
305 ret.z = m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z;
306 return ret;
307 }
308
309 //åè: https://gist.github.com/4re/34ccbb95732c1bef47c3d2975ac62395
310 COLORSPACE_FUNC float hable(float x, float A, float B, float C, float D, float E, float F) {
311 return ((x*(A*x+C*B)+D*E) / (x*(A*x+B)+D*F)) - E/F;
312 }
313
314 COLORSPACE_FUNC float hdr2sdr_hable(float x, float source_peak, float ldr_nits, float A, float B, float C, float D, float E, float F) {
315 const float eb = source_peak / ldr_nits;
316 const float t0 = hable(x, A, B, C, D, E, F);
317 const float t1 = hable(eb, A, B, C, D, E, F);
318 return t0 / t1;
319 }
320
321 COLORSPACE_FUNC float hdr2sdr_mobius(float x, float source_peak, float ldr_nits, float t, float peak) {
322 const float eb = source_peak / ldr_nits;
323 peak *= eb;
324 if (x <= t) {
325 return x;
326 }
327
328 float a = -t * t * (peak - 1.0f) / (t * t - 2.0f * t + peak);
329 float b = (t * t - 2.0f * t * peak + peak) / fmaxf(peak - 1.0f, 1e-6f);
330 return (b * b + 2.0f * b * t + t * t) / (b - a) * (x + a) / (x + b);
331 }
332
333 COLORSPACE_FUNC float hdr2sdr_reinhard(float x, float source_peak, float ldr_nits, float offset, float peak) {
334 const float eb = source_peak / ldr_nits;
335 peak *= eb;
336 return x / (x + offset) * (peak + offset) / peak;
337 }
338
339 COLORSPACE_FUNC float linear_to_pq_space(float x) {
340 if (x > 0.0f) {
341 x *= MP_REF_WHITE / 10000.0f;
342 x = powf(x, PQ_M1);
343 x = (PQ_C1 + PQ_C2 * x) / (1.0f + PQ_C3 * x);
344 x = powf(x, PQ_M2);
345 return x;
346 } else {
347 return 0.0f;
348 }
349 }
350
351 COLORSPACE_FUNC float pq_space_to_linear(float x) {
352 if (x > 0.0f) {
353 x = powf(x, 1.0f / PQ_M2);
354 x = fmaxf(x - PQ_C1, 0.0f) / (PQ_C2 - PQ_C3 * x);
355 x = powf(x, 1.0f / PQ_M1);
356 x *= 10000.0f / MP_REF_WHITE;
357 return x;
358 } else {
359 return 0.0f;
360 }
361 }
362
363 COLORSPACE_FUNC float apply_bt2390(float x, const float maxLum) {
364 const float ks = 1.5f * maxLum - 0.5f;
365 float tb = (x - ks) / (1.0f - ks);
366 float tb2 = tb * tb;
367 float tb3 = tb2 * tb;
368 float pb = (2.0f * tb3 - 3.0f * tb2 + 1.0f) * ks +
369 (tb3 - 2.0f * tb2 + tb) * (1.0f - ks) +
370 (-2.0f * tb3 + 3.0f * tb2) * maxLum;
371 //x = mix(pb, x, lessThan(x, ks));
372 x = (x < ks) ? x : pb;
373 return x;
374 }
375
376 COLORSPACE_FUNC float mix(float x, float y, float a) {
377 a = (a < 0.0f) ? 0.0f : a;
378 a = (a > 1.0f) ? 1.0f : a;
379 return (x) * (1.0f - (a)) + (y) * (a);
380 }
381
382 COLORSPACE_FUNC float lut3d_linear_interp(float v0, float v1, float a) {
383 return v0 + (v1 - v0) * a;
384 }
385
386 COLORSPACE_FUNC float3 lut3d_linear_interp(float3 v0, float3 v1, float a) {
387 float3 r;
388 r.x = lut3d_linear_interp(v0.x, v1.x, a);
389 r.y = lut3d_linear_interp(v0.y, v1.y, a);
390 r.z = lut3d_linear_interp(v0.z, v1.z, a);
391 return r;
392 }
393
394 COLORSPACE_FUNC int lut3d_prev_idx(float x) {
395 return (int)x;
396 }
397
398 COLORSPACE_FUNC int lut3d_near_idx(float x) {
399 return (int)(x + 0.5f);
400 }
401
402 COLORSPACE_FUNC int lut3d_next_idx(float x, int size) {
403 int next = lut3d_prev_idx(x) + 1;
404 return (next >= size) ? size - 1 : next;
405 }
406
407 COLORSPACE_FUNC float lut3d_prelut(const float s, const int idx, const int size,
408 const float prelutmin[3], const float prelutscale[3], const float *__restrict__ prelut) {
409 const float x = clamp((s - prelutmin[idx]) * prelutscale[idx], 0.0f, (float)(size - 1));
410 const float c0 = prelut[idx * size + lut3d_prev_idx(x)];
411 const float c1 = prelut[idx * size + lut3d_next_idx(x, size)];
412 return lut3d_linear_interp(c0, c1, x - lut3d_prev_idx(x));
413 }
414
415 COLORSPACE_FUNC float3 lut3d_prelut(const float3 in, const int size,
416 const float prelutmin[3], const float prelutscale[3], const float *__restrict__ prelut) {
417 float3 out;
418 out.x = lut3d_prelut(in.x, 0, size, prelutmin, prelutscale, prelut);
419 out.y = lut3d_prelut(in.y, 1, size, prelutmin, prelutscale, prelut);
420 out.z = lut3d_prelut(in.z, 2, size, prelutmin, prelutscale, prelut);
421 return out;
422 }
423
424 COLORSPACE_FUNC float3 lut3d_get_table(const LUTVEC *__restrict__ lut, const int x, const int y, const int z, const int lutSize0, const int lutSize01) {
425 LUTVEC val = lut[x * lutSize01 + y * lutSize0 + z];
426 float3 out;
427 out.x = val.x;
428 out.y = val.y;
429 out.z = val.z;
430 return out;
431 }
432
433 COLORSPACE_FUNC float3 lut3d_interp_nearest(float3 in, const LUTVEC *__restrict__ lut, const int lutSize0, const int lutSize01) {
434 return lut3d_get_table(lut, lut3d_near_idx(in.x), lut3d_near_idx(in.y), lut3d_near_idx(in.z), lutSize0, lutSize01);
435 }
436
437 //åè: https://en.wikipedia.org/wiki/Trilinear_interpolation
438 COLORSPACE_FUNC float3 lut3d_interp_trilinear(float3 in, const LUTVEC *__restrict__ lut, const int lutSize0, const int lutSize01) {
439 const int x0 = lut3d_prev_idx(in.x);
440 const int x1 = lut3d_next_idx(in.x, lutSize0);
441 const int y0 = lut3d_prev_idx(in.y);
442 const int y1 = lut3d_next_idx(in.y, lutSize0);
443 const int z0 = lut3d_prev_idx(in.z);
444 const int z1 = lut3d_next_idx(in.z, lutSize0);
445 const float scalex = in.x - x0;
446 const float scaley = in.y - y0;
447 const float scalez = in.z - z0;
448 const float3 c000 = lut3d_get_table(lut, x0, y0, z0, lutSize0, lutSize01);
449 const float3 c001 = lut3d_get_table(lut, x0, y0, z1, lutSize0, lutSize01);
450 const float3 c010 = lut3d_get_table(lut, x0, y1, z0, lutSize0, lutSize01);
451 const float3 c011 = lut3d_get_table(lut, x0, y1, z1, lutSize0, lutSize01);
452 const float3 c100 = lut3d_get_table(lut, x1, y0, z0, lutSize0, lutSize01);
453 const float3 c101 = lut3d_get_table(lut, x1, y0, z1, lutSize0, lutSize01);
454 const float3 c110 = lut3d_get_table(lut, x1, y1, z0, lutSize0, lutSize01);
455 const float3 c111 = lut3d_get_table(lut, x1, y1, z1, lutSize0, lutSize01);
456 const float3 c00 = lut3d_linear_interp(c000, c100, scalex);
457 const float3 c10 = lut3d_linear_interp(c010, c110, scalex);
458 const float3 c01 = lut3d_linear_interp(c001, c101, scalex);
459 const float3 c11 = lut3d_linear_interp(c011, c111, scalex);
460 const float3 c0 = lut3d_linear_interp(c00, c10, scaley);
461 const float3 c1 = lut3d_linear_interp(c01, c11, scaley);
462 const float3 c = lut3d_linear_interp(c0, c1, scalez);
463 return c;
464 }
465
466 //åè: http://www.filmlight.ltd.uk/pdf/whitepapers/FL-TL-TN-0057-SoftwareLib.pdf
467 COLORSPACE_FUNC float3 lut3d_interp_tetrahedral(float3 in, const LUTVEC *__restrict__ lut, const int lutSize0, const int lutSize01) {
468 const int x0 = lut3d_prev_idx(in.x);
469 const int x1 = lut3d_next_idx(in.x, lutSize0);
470 const int y0 = lut3d_prev_idx(in.y);
471 const int y1 = lut3d_next_idx(in.y, lutSize0);
472 const int z0 = lut3d_prev_idx(in.z);
473 const int z1 = lut3d_next_idx(in.z, lutSize0);
474 const float scalex = in.x - x0;
475 const float scaley = in.y - y0;
476 const float scalez = in.z - z0;
477 float scale0, scale1, scale2;
478 int xA, yA, zA, xB, yB, zB;
479 if (scalex > scaley) {
480 if (scaley > scalez) {
481 scale0 = scalex;
482 scale1 = scaley;
483 scale2 = scalez;
484 xA = x1; yA = y0; zA = z0;
485 xB = x1; yB = y1; zB = z0;
486 } else if (scalex > scalez) {
487 scale0 = scalex;
488 scale1 = scalez;
489 scale2 = scaley;
490 xA = x1; yA = y0; zA = z0;
491 xB = x1; yB = y0; zB = z1;
492 } else {
493 scale0 = scalez;
494 scale1 = scalex;
495 scale2 = scaley;
496 xA = x0; yA = y0; zA = z1;
497 xB = x1; yB = y0; zB = z1;
498 }
499 } else {
500 if (scalez > scaley) {
501 scale0 = scalez;
502 scale1 = scaley;
503 scale2 = scalex;
504 xA = x0; yA = y0; zA = z1;
505 xB = x0; yB = y1; zB = z1;
506 } else if (scalez > scalex) {
507 scale0 = scaley;
508 scale1 = scalez;
509 scale2 = scalex;
510 xA = x0; yA = y1; zA = z0;
511 xB = x0; yB = y1; zB = z1;
512 } else {
513 scale0 = scaley;
514 scale1 = scalex;
515 scale2 = scalez;
516 xA = x0; yA = y1; zA = z0;
517 xB = x1; yB = y1; zB = z0;
518 }
519 }
520 const float3 c000 = lut3d_get_table(lut, x0, y0, z0, lutSize0, lutSize01);
521 const float3 c111 = lut3d_get_table(lut, x1, y1, z1, lutSize0, lutSize01);
522 const float3 cA = lut3d_get_table(lut, xA, yA, zA, lutSize0, lutSize01);
523 const float3 cB = lut3d_get_table(lut, xB, yB, zB, lutSize0, lutSize01);
524 const float s0 = 1.0f - scale0;
525 const float s1 = scale0 - scale1;
526 const float s2 = scale1 - scale2;
527 const float s3 = scale2;
528 float3 c;
529 c.x = s0 * c000.x + s1 * cA.x + s2 * cB.x + s3 * c111.x;
530 c.y = s0 * c000.y + s1 * cA.y + s2 * cB.y + s3 * c111.y;
531 c.z = s0 * c000.z + s1 * cA.z + s2 * cB.z + s3 * c111.z;
532 return c;
533 }
534
535 COLORSPACE_FUNC float3 lut3d_interp_pyramid(float3 in, const LUTVEC *lut, const int lutSize0, const int lutSize01) {
536 const int x0 = lut3d_prev_idx(in.x);
537 const int x1 = lut3d_next_idx(in.x, lutSize0);
538 const int y0 = lut3d_prev_idx(in.y);
539 const int y1 = lut3d_next_idx(in.y, lutSize0);
540 const int z0 = lut3d_prev_idx(in.z);
541 const int z1 = lut3d_next_idx(in.z, lutSize0);
542 const float scalex = in.x - x0;
543 const float scaley = in.y - y0;
544 const float scalez = in.z - z0;
545
546 float scale0, scale1, scale2;
547 int xA, yA, zA, xB, yB, zB, xC, yC, zC;
548
549 if (scaley > scalex && scalez > scalex) {
550 xA = x0; yA = y0; zA = z1;
551 xB = x0; yB = y1; zB = z0;
552 xC = x0; yC = y1; zC = z1;
553 scale0 = scaley;
554 scale1 = scalez;
555 scale2 = scalex;
556 } else if (scalex > scaley && scalez > scaley) {
557 xA = x0; yA = y0; zA = z1;
558 xB = x1; yB = y0; zB = z0;
559 xC = x1; yC = y0; zC = z1;
560 scale0 = scalex;
561 scale1 = scalez;
562 scale2 = scaley;
563 } else {
564 xA = x0; yA = y1; zA = z0;
565 xB = x1; yB = y0; zB = z0;
566 xC = x1; yC = y1; zC = z0;
567 scale0 = scalex;
568 scale1 = scaley;
569 scale2 = scalez;
570 }
571 const float3 c000 = lut3d_get_table(lut, x0, y0, z0, lutSize0, lutSize01);
572 const float3 c111 = lut3d_get_table(lut, x1, y1, z1, lutSize0, lutSize01);
573 const float3 cA = lut3d_get_table(lut, xA, yA, zA, lutSize0, lutSize01);
574 const float3 cB = lut3d_get_table(lut, xB, yB, zB, lutSize0, lutSize01);
575 const float3 cC = lut3d_get_table(lut, xC, yC, zC, lutSize0, lutSize01);
576 float3 c;
577 c.x = c000.x + (cB.x - c000.x) * scale0 + (c111.x - cC.x) * scale2 + (cA.x - c000.x) * scale1 + (cC.x - cA.x - cB.x + c000.x) * scale0 * scale1;
578 c.y = c000.y + (cB.y - c000.y) * scale0 + (c111.y - cC.y) * scale2 + (cA.y - c000.y) * scale1 + (cC.y - cA.y - cB.y + c000.y) * scale0 * scale1;
579 c.z = c000.z + (cB.z - c000.z) * scale0 + (c111.z - cC.z) * scale2 + (cA.z - c000.z) * scale1 + (cC.z - cA.z - cB.z + c000.z) * scale0 * scale1;
580 return c;
581 }
582
583 COLORSPACE_FUNC float3 lut3d_interp_prism(float3 in, const LUTVEC *lut, const int lutSize0, const int lutSize01) {
584 const int x0 = lut3d_prev_idx(in.x);
585 const int x1 = lut3d_next_idx(in.x, lutSize0);
586 const int y0 = lut3d_prev_idx(in.y);
587 const int y1 = lut3d_next_idx(in.y, lutSize0);
588 const int z0 = lut3d_prev_idx(in.z);
589 const int z1 = lut3d_next_idx(in.z, lutSize0);
590 const float scalex = in.x - x0;
591 const float scaley = in.y - y0;
592 const float scalez = in.z - z0;
593 float scale0, scale2;
594 int xA, yA, zA, xB, yB, zB;
595
596 if (scalez > scalex) {
597 scale0 = scalez;
598 scale2 = scalex;
599 xA = x0; yA = y1; zA = z1;
600 xB = x0; yB = y0; zB = z1;
601 } else {
602 scale0 = scalex;
603 scale2 = scalez;
604 xA = x1; yA = y1; zA = z0;
605 xB = x1; yB = y0; zB = z0;
606 }
607 const float3 c000 = lut3d_get_table(lut, x0, y0, z0, lutSize0, lutSize01);
608 const float3 c010 = lut3d_get_table(lut, x0, y1, z0, lutSize0, lutSize01);
609 const float3 c101 = lut3d_get_table(lut, x1, y0, z1, lutSize0, lutSize01);
610 const float3 c111 = lut3d_get_table(lut, x1, y1, z1, lutSize0, lutSize01);
611 const float3 cA = lut3d_get_table(lut, xA, yA, zA, lutSize0, lutSize01);
612 const float3 cB = lut3d_get_table(lut, xB, yB, zB, lutSize0, lutSize01);
613 float3 c;
614 c.x = c000.x + (cB.x - c000.x) * scale0 + (c101.x - cB.x) * scale2 + (c010.x - c000.x) * scaley + (c000.x - c010.x - cB.x + cA.x) * scale0 * scaley + (cB.x - cA.x - c101.x + c111.x) * scale2 * scaley;
615 c.y = c000.y + (cB.y - c000.y) * scale0 + (c101.y - cB.y) * scale2 + (c010.y - c000.y) * scaley + (c000.y - c010.y - cB.y + cA.y) * scale0 * scaley + (cB.y - cA.y - c101.y + c111.y) * scale2 * scaley;
616 c.z = c000.z + (cB.z - c000.z) * scale0 + (c101.z - cB.z) * scale2 + (c010.z - c000.z) * scaley + (c000.z - c010.z - cB.z + cA.z) * scale0 * scaley + (cB.z - cA.z - c101.z + c111.z) * scale2 * scaley;
617 return c;
618 }
619
620 struct RGYColorspaceDevParams {
621 int lut_offset;
622 int prelut_offset;
623 // 以éã¯offsetã®ç¤ºãä½ç½®ã«ãã¼ã¿
624 // ãã¼ã¿ã®åãåºãæ¹æ³ã¯ä¸è¨ã®é¢æ°ãåç
§
625 };
626
627 float *getDevParamsPrelut(void *__restrict__ ptr) {
628 return (float *)((char *)ptr + ((RGYColorspaceDevParams *)ptr)->prelut_offset);
629 }
630
631 const float *getDevParamsPrelut(const void *__restrict__ ptr) {
632 return (const float *)((const char *)ptr + ((RGYColorspaceDevParams *)ptr)->prelut_offset);
633 }
634
635 LUTVEC *getDevParamsLut(void *__restrict__ ptr) {
636 return (LUTVEC *)((char *)ptr + ((RGYColorspaceDevParams *)ptr)->lut_offset);
637 }
638
639 const LUTVEC *getDevParamsLut(const void *__restrict__ ptr) {
640 return (const LUTVEC *)((const char *)ptr + ((RGYColorspaceDevParams *)ptr)->lut_offset);
641 }
642
643
644 #include
645
646 __device__ __inline__
647 float3 convert_colorspace_custom(float3 x, const RGYColorspaceDevParams *__restrict__ params) {
648
649 { //range int->float
650 const float range_y = 1.7836757990867579e-05f;
651 const float offset_y = -7.3059360730593603e-02f;
652 const float range_uv = 1.7438616071428570e-05f;
653 const float offset_uv = -5.7142857142857140e-01f;
654 x.x = x.x * range_y + offset_y;
655 x.y = x.y * range_uv + offset_uv;
656 x.z = x.z * range_uv + offset_uv;
657 }
658
659 {
660 float m[3][3] = {
661 { 9.9999999999999989e-01f, 0.0000000000000000e+00f, 1.5747999999999998e+00f },
662 { 9.9999999999999967e-01f, -1.8732427293064877e-01f, -4.6812427293064868e-01f },
663 { 9.9999999999999989e-01f, 1.8555999999999999e+00f, 0.0000000000000000e+00f }
664 };
665 x = matrix_mul(m, x);
666 }
667
668 return x;
669 }
670
671 static const int PIX_PER_THREAD = 4;
672
673 template __device__ __inline__ T toPix(float x) { return (T)clamp((x) + 0.5f, 0.0f, (1<<(sizeof(T)*8)) - 0.5f); }
674 template<> __device__ __inline__ float toPix (float x) { return x; }
675
676 template
677 __global__ void kernel_filter(
678 uint8_t *__restrict__ pDstY, uint8_t *__restrict__ pDstU, uint8_t *__restrict__ pDstV,
679 const int dstPitch, const int dstWidth, const int dstHeight,
680 const uint8_t *__restrict__ pSrcY, const uint8_t *__restrict__ pSrcU, const uint8_t *__restrict__ pSrcV,
681 const int srcPitch, const int srcWidth, const int srcHeight, bool srcInterlaced,
682 const RGYColorspaceDevParams *__restrict__ params) {
683 const int ix = (blockIdx.x * blockDim.x + threadIdx.x) * PIX_PER_THREAD;
684 const int iy = blockIdx.y * blockDim.y + threadIdx.y;
685
686 struct __align__(sizeof(TypeIn) * 4) TypeIn4 {
687 TypeIn x, y, z, w;
688 };
689
690 struct __align__(sizeof(TypeOut) * 4) TypeOut4 {
691 TypeOut x, y, z, w;
692 };
693
694 if (ix < dstWidth && iy < dstHeight) {
695
696 TypeIn4 srcY = *(TypeIn4 *)(pSrcY + iy * srcPitch + ix * sizeof(TypeIn));
697 TypeIn4 srcU = *(TypeIn4 *)(pSrcU + iy * srcPitch + ix * sizeof(TypeIn));
698 TypeIn4 srcV = *(TypeIn4 *)(pSrcV + iy * srcPitch + ix * sizeof(TypeIn));
699
700 float3 pix0 = make_float3((float)srcY.x, (float)srcU.x, (float)srcV.x);
701 float3 pix1 = make_float3((float)srcY.y, (float)srcU.y, (float)srcV.y);
702 float3 pix2 = make_float3((float)srcY.z, (float)srcU.z, (float)srcV.z);
703 float3 pix3 = make_float3((float)srcY.w, (float)srcU.w, (float)srcV.w);
704
705 pix0 = convert_colorspace_custom(pix0, params);
706 pix1 = convert_colorspace_custom(pix1, params);
707 pix2 = convert_colorspace_custom(pix2, params);
708 pix3 = convert_colorspace_custom(pix3, params);
709
710 TypeOut4 dstY, dstU, dstV;
711 dstY.x = toPix(pix0.x); dstU.x = toPix(pix0.y); dstV.x = toPix(pix0.z);
712 dstY.y = toPix(pix1.x); dstU.y = toPix(pix1.y); dstV.y = toPix(pix1.z);
713 dstY.z = toPix(pix2.x); dstU.z = toPix(pix2.y); dstV.z = toPix(pix2.z);
714 dstY.w = toPix(pix3.x); dstU.w = toPix(pix3.y); dstV.w = toPix(pix3.z);
715
716 TypeOut4 *ptrDstY = (TypeOut4 *)(pDstY + iy * dstPitch + ix * sizeof(TypeOut));
717 TypeOut4 *ptrDstU = (TypeOut4 *)(pDstU + iy * dstPitch + ix * sizeof(TypeOut));
718 TypeOut4 *ptrDstV = (TypeOut4 *)(pDstV + iy * dstPitch + ix * sizeof(TypeOut));
719
720 ptrDstY[0] = dstY;
721 ptrDstU[0] = dstU;
722 ptrDstV[0] = dstV;
723 }
724 };
725
726 #endif // _JITIFY_INCLUDE_GUARD_F0A087E65B9A1EB9
---------------------------------------
Compiler options: --use_fast_math -arch=compute_75
Building kernel_filter [--use_fast_math,-arch=compute_75]
---------------------------------------------------
--- JIT compile log for colorspace_conv ---
---------------------------------------------------
colorspace_conv(45): warning: variable "MP_REF_WHITE_HLG" was declared but never referenced
---------------------------------------------------
---------------------------------------
_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams
---------------------------------------
--- PTX for colorspace_conv ---
---------------------------------------
//
// Generated by NVIDIA NVVM Compiler
//
// Compiler Build ID: CL-26907403
// Cuda compilation tools, release 10.1, V10.1.243
// Based on LLVM 3.4svn
//
.version 6.4
.target sm_75
.address_size 64
// .weak _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams
.global .align 4 .f32 REC709_ALPHA = 0f3F8CB5C2;
.global .align 4 .f32 REC709_BETA = 0f3C93E5EB;
.global .align 4 .f32 SMPTE_240M_ALPHA = 0f3F8E47FF;
.global .align 4 .f32 SMPTE_240M_BETA = 0f3CBAF455;
.global .align 4 .f32 SRGB_ALPHA = 0f3F870A97;
.global .align 4 .f32 SRGB_BETA = 0f3B475041;
.global .align 4 .f32 ST2084_M1 = 0f3E232000;
.global .align 4 .f32 ST2084_M2 = 0f429DB000;
.global .align 4 .f32 ST2084_C1 = 0f3F560000;
.global .align 4 .f32 ST2084_C2 = 0f4196D000;
.global .align 4 .f32 ST2084_C3 = 0f41958000;
.global .align 4 .f32 ARIB_B67_A = 0f3E371FF0;
.global .align 4 .f32 ARIB_B67_B = 0f3E91C020;
.global .align 4 .f32 ARIB_B67_C = 0f3F0F564F;
.global .align 4 .f32 FLOAT_EPS = 0f00800000;
.global .align 4 .f32 MP_REF_WHITE = 0f434B0000;
.global .align 4 .f32 MP_REF_WHITE_HLG = 0f404B7DBF;
.global .align 4 .f32 PQ_M1 = 0f3E232000;
.global .align 4 .f32 PQ_M2 = 0f429DB000;
.global .align 4 .f32 PQ_C1 = 0f3F560000;
.global .align 4 .f32 PQ_C2 = 0f4196D000;
.global .align 4 .f32 PQ_C3 = 0f41958000;
.global .align 4 .f32 ST2084_OOTF_SCALE = 0f426DF695;
.global .align 4 .u32 PIX_PER_THREAD = 4;
.weak .entry _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams(
.param .u64 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_0,
.param .u64 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_1,
.param .u64 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_2,
.param .u32 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_3,
.param .u32 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_4,
.param .u32 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_5,
.param .u64 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_6,
.param .u64 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_7,
.param .u64 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_8,
.param .u32 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_9,
.param .u32 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_10,
.param .u32 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_11,
.param .u8 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_12,
.param .u64 _Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_13
)
{
.reg .pred %p<4>;
.reg .b16 %rs<25>;
.reg .f32 %f<49>;
.reg .b32 %r<16>;
.reg .b64 %rd<25>;
ld.param.u64 %rd1, [_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_0];
ld.param.u64 %rd2, [_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_1];
ld.param.u64 %rd3, [_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_2];
ld.param.u32 %r3, [_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_3];
ld.param.u32 %r5, [_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_4];
ld.param.u32 %r6, [_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_5];
ld.param.u64 %rd4, [_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_6];
ld.param.u64 %rd5, [_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_7];
ld.param.u64 %rd6, [_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_8];
ld.param.u32 %r4, [_Z13kernel_filterIftEvPhS0_S0_iiiPKhS2_S2_iiibPK22RGYColorspaceDevParams_param_9];
mov.u32 %r7, %ctaid.x;
mov.u32 %r8, %ntid.x;
mov.u32 %r9, %tid.x;
mad.lo.s32 %r10, %r8, %r7, %r9;
shl.b32 %r1, %r10, 2;
mov.u32 %r11, %ntid.y;
mov.u32 %r12, %ctaid.y;
mov.u32 %r13, %tid.y;
mad.lo.s32 %r2, %r11, %r12, %r13;
setp.ge.s32 %p1, %r1, %r5;
setp.ge.s32 %p2, %r2, %r6;
or.pred %p3, %p1, %p2;
@%p3 bra BB0_2;
cvta.to.global.u64 %rd7, %rd4;
mul.lo.s32 %r14, %r2, %r4;
cvt.s64.s32 %rd8, %r14;
mul.wide.s32 %rd9, %r1, 2;
add.s64 %rd10, %rd8, %rd9;
add.s64 %rd11, %rd7, %rd10;
ld.global.nc.v4.u16 {%rs1, %rs2, %rs3, %rs4}, [%rd11];
cvta.to.global.u64 %rd12, %rd5;
add.s64 %rd13, %rd12, %rd10;
ld.global.nc.v4.u16 {%rs9, %rs10, %rs11, %rs12}, [%rd13];
cvta.to.global.u64 %rd14, %rd6;
add.s64 %rd15, %rd14, %rd10;
ld.global.nc.v4.u16 {%rs17, %rs18, %rs19, %rs20}, [%rd15];
cvt.rn.f32.u16 %f1, %rs1;
cvt.rn.f32.u16 %f2, %rs9;
cvt.rn.f32.u16 %f3, %rs17;
cvt.rn.f32.u16 %f4, %rs2;
cvt.rn.f32.u16 %f5, %rs10;
cvt.rn.f32.u16 %f6, %rs18;
cvt.rn.f32.u16 %f7, %rs3;
cvt.rn.f32.u16 %f8, %rs11;
cvt.rn.f32.u16 %f9, %rs19;
cvt.rn.f32.u16 %f10, %rs4;
cvt.rn.f32.u16 %f11, %rs12;
cvt.rn.f32.u16 %f12, %rs20;
fma.rn.ftz.f32 %f13, %f1, 0f3795A025, 0fBD95A025;
fma.rn.ftz.f32 %f14, %f2, 0f37924925, 0fBF124925;
fma.rn.ftz.f32 %f15, %f3, 0f37924925, 0fBF124925;
fma.rn.ftz.f32 %f16, %f14, 0f00000000, %f13;
fma.rn.ftz.f32 %f17, %f14, 0fBE3FD1EF, %f13;
fma.rn.ftz.f32 %f18, %f14, 0f3FED844D, %f13;
fma.rn.ftz.f32 %f19, %f4, 0f3795A025, 0fBD95A025;
fma.rn.ftz.f32 %f20, %f5, 0f37924925, 0fBF124925;
fma.rn.ftz.f32 %f21, %f6, 0f37924925, 0fBF124925;
fma.rn.ftz.f32 %f22, %f20, 0f00000000, %f19;
fma.rn.ftz.f32 %f23, %f20, 0fBE3FD1EF, %f19;
fma.rn.ftz.f32 %f24, %f20, 0f3FED844D, %f19;
fma.rn.ftz.f32 %f25, %f7, 0f3795A025, 0fBD95A025;
fma.rn.ftz.f32 %f26, %f8, 0f37924925, 0fBF124925;
fma.rn.ftz.f32 %f27, %f9, 0f37924925, 0fBF124925;
fma.rn.ftz.f32 %f28, %f26, 0f00000000, %f25;
fma.rn.ftz.f32 %f29, %f26, 0fBE3FD1EF, %f25;
fma.rn.ftz.f32 %f30, %f26, 0f3FED844D, %f25;
fma.rn.ftz.f32 %f31, %f10, 0f3795A025, 0fBD95A025;
fma.rn.ftz.f32 %f32, %f11, 0f37924925, 0fBF124925;
fma.rn.ftz.f32 %f33, %f12, 0f37924925, 0fBF124925;
fma.rn.ftz.f32 %f34, %f32, 0f00000000, %f31;
fma.rn.ftz.f32 %f35, %f32, 0fBE3FD1EF, %f31;
fma.rn.ftz.f32 %f36, %f32, 0f3FED844D, %f31;
mul.lo.s32 %r15, %r2, %r3;
cvt.s64.s32 %rd16, %r15;
mul.wide.s32 %rd17, %r1, 4;
add.s64 %rd18, %rd16, %rd17;
cvta.to.global.u64 %rd19, %rd1;
add.s64 %rd20, %rd19, %rd18;
cvta.to.global.u64 %rd21, %rd2;
add.s64 %rd22, %rd21, %rd18;
cvta.to.global.u64 %rd23, %rd3;
add.s64 %rd24, %rd23, %rd18;
fma.rn.ftz.f32 %f37, %f33, 0f3FC9930C, %f34;
fma.rn.ftz.f32 %f38, %f27, 0f3FC9930C, %f28;
fma.rn.ftz.f32 %f39, %f21, 0f3FC9930C, %f22;
fma.rn.ftz.f32 %f40, %f15, 0f3FC9930C, %f16;
st.global.v4.f32 [%rd20], {%f40, %f39, %f38, %f37};
fma.rn.ftz.f32 %f41, %f33, 0fBEEFADFC, %f35;
fma.rn.ftz.f32 %f42, %f27, 0fBEEFADFC, %f29;
fma.rn.ftz.f32 %f43, %f21, 0fBEEFADFC, %f23;
fma.rn.ftz.f32 %f44, %f15, 0fBEEFADFC, %f17;
st.global.v4.f32 [%rd22], {%f44, %f43, %f42, %f41};
fma.rn.ftz.f32 %f45, %f33, 0f00000000, %f36;
fma.rn.ftz.f32 %f46, %f27, 0f00000000, %f30;
fma.rn.ftz.f32 %f47, %f21, 0f00000000, %f24;
fma.rn.ftz.f32 %f48, %f15, 0f00000000, %f18;
st.global.v4.f32 [%rd24], {%f48, %f47, %f46, %f45};
BB0_2:
ret;
}
colorspace_conv: colorspace_conv: , interface planes, interlace frame
colorspace_conv: thread/block (32,8), pixel/thread (4,1)
colorspace_conv: 1920x1080 yuv444(16bit)
colorspace: allocated output buffer: 1920x1080, picth 7680, rgb(fp32).
colorspace: colorspace: cspconv(yv12(16bit) -> yuv444(16bit))
colorspace: matrix:bt709->GBR
ngx-truehdr: created colorspace: cspconv(yv12(16bit) -> yuv444(16bit))
ngx-truehdr: matrix:bt709->GBR.
ngx-truehdr: Create input csp conversion filter.
cspconv: cspconv(rgb(fp32) -> rgb32)
ngx-truehdr: created cspconv(rgb(fp32) -> rgb32).
ngx-truehdr: Create output csp conversion filter.
cspconv: cspconv(rgba(fp16) -> rgb(fp32))
ngx-truehdr: created cspconv(rgba(fp16) -> rgb(fp32)).
ngx-truehdr: Create output csp conversion filter.
colorspace: nvrtc64_101_0.dll available.
ColorspaceOpCtrl: Search path from matrix:GBR,colorprim:unknown,transfer:linear -> matrix:bt2020nc,colorprim:bt2020,transfer:smpte2084
ColorspaceOpCtrl: Set path...
ColorspaceOpCtrl: node: matrix:GBR,colorprim:unknown,transfer:linear
ColorspaceOpCtrl: node: matrix:GBR,colorprim:bt2020,transfer:linear
ColorspaceOpCtrl: node: matrix:GBR,colorprim:bt2020,transfer:smpte2084
ColorspaceOpCtrl: node: matrix:bt2020nc,colorprim:bt2020,transfer:smpte2084
colorspace: additional param size: 8.
colorspace: transfer additional param to device.
colorspace_conv: nvrtc64_101_0.dll available.
colorspace_conv: program source...
colorspace_conv: 椣æ¦æ¥å¼ äääå½åå½àµâæ¤æ¥¦æ®ä ä±ååäå½
åäå¼ æç¥æ©å½¥âå½æ¹©æ¥¬æ®å½à¨æ£ç¬àµ¥âæ¤æ¥¦æ®ä ä±ååäå½
åäç æ
´æ¥´àµ£âç°æ¡æ
æ¼ æ®àµ¥â湩汣æµâ¥æ¼æ
æ¡´à´¾â湩汣æµâ¥æ¼æ±¦æ
¯ã¹´à¨ç£æ
²æµ§â¡æ
·æ¹²æ¹©â§ç¨çµâ¥¨à¨ç£æ
²æµ§â¡æ
·æ¹²æ¹©â§æ¨ç©æ¡æ¬âºã ´ã¤±à´©â湩汣æµâ¥æ¼æµå½¡ç²ç®æµ©â¹¥ã¹¨à¨ç£æ
²æµ§â¡æ
·æ¹²æ¹©â§ç¨ç¯à´©â湥楤൦à´çç¹æ¥æ¥æ 潬ç¡â´ååä
à´»à´âæ©æ®æ¥æ æ
¬çà¨æ£æ¥æ¹©â¥æ±£æµ¡â¡°â±¸æ° ç¯â¬æ¥¨æ¡§â©â ¨ç ¨â©ã´¼â 楨桧⤩㼠â ⠨⥸㸠â½æ°¨ç¯â¤©ã¼ â ⥸㨠â 潬⥷â©âºæ ¨æ©â¥¨à´©â湥楤൦à´â¼î¯ê»ë£¤çªæµ©î§êºç³å±£æ¥ºææ汯ç¯ç³æ¡å±¥æ
§æµâ¹¡ç£î°è¢è£îé¶è¥îè룤î¦ê¢é¦î¹è¦¤à¨à¨æ½£ç®â´æ±¦æ
¯â´äã㤰ä
åä
ã´ ã ã®ã¤¹ã¤²ã ¶ã²ã¸ã¹æ´à´»æ湯ç³æ 潬ç¡å ä
ã·å¼¹ää
ã´ ã ã®ã ±ã°ã¤³ã ¶ãµã °ã°ã¦à¨à¨æ½£ç®â´æ±¦æ
¯â´äµåå½
ã²ä´°ä
åä
ã´ ã ã®ã±ãµã²ã¹ã¹ã±ã³ã¦à¨æ½£ç®â´æ±¦æ
¯â´äµåå½
ã²ä´°äå
âã´ ã ã®ã²ã¸ã±ã¸ãµã¹ã´ã¦à¨à¨â¼¯ä 橤çµæ´â¤æ½¦â²æ½£ç®æ¹©æ¥µç¥´æ¼ â¦æ¥¦ç²â´æ¤æ¥²æ
¶æ¥´æ¶à´®æ湯ç³æ 潬ç¡å äå½ä±ä¡ââ½â¸±ã°ãµã±ã·ã¤¸ã´ã µæ·à´»æ湯ç³æ 潬ç¡å äå½ää
ã´ ã ã®ã°ã°ã±ã¸ãµã°ã ²ã¦à¨à¨æ½£ç®â´æ±¦æ
¯â´åã²ã¸äµâ±â½â¸°ã±ã¹ã°ã·ã ·ã±æµà´»æ湯ç³æ 潬ç¡å ãã °å¼´ãã´ ã ⸸ã¸ã³æµà´»æ湯ç³æ 潬ç¡å ãã °å¼´ã
ã´ ã ã ®ã³ã¹ã·ã¦à¨æ½£ç®â´æ±¦æ
¯â´åã²ã¸äâ²â½ã ±ã ®ãµãµã²ã¦à¨æ½£ç®â´æ±¦æ
¯â´åã²ã¸äâ³â½ã ±ã®ã¸æµà´»à´æ湯ç³æ 潬ç¡ä ä¥å½ãå¼·ââ½â¸°ã±ã ¸ã³ã·ã¦à¨æ½£ç®â´æ±¦æ
¯â´åääã¶äã´ ã ã®ã¸ã¶ã¤¸æ²à´»æ湯ç³æ 潬ç¡ä ä¥å½ãå¼·ââ½â¸°ãµã¤¹ã±ã·ã¦à¨à¨æ½£ç®â´æ±¦æ
¯â´ä±ä
å½å
ââ½â¸±ã±ãµã¹ã³æ±ãæ¸à´»à´æ湯ç³æ 潬ç¡ä´ å½äå½ä¡åâ
â½ã²â¸³æ°à´»æ湯ç³æ 潬ç¡ä´ å½äå½ä¡åå½
ä±ââ½â¸³ã±ã¹æµà´»à´â¼â¯æ½æµæ¹¯æ 湯ç³æ¹¡ç´æ ç¯å åäå â¹ã²ã¸â äâ¥à¨æ½£ç®â´æ±¦æ
¯â´å
äµâ±â½ã²ã±ã®â¦â¯ã´ã¹ã®â¦âªâ¸±æ°â¼ ã ã®ã¦à¨æ½£ç®â´æ±¦æ
¯â´å
äµâ²â½ã²ã²ã®â¦â¯ã´ã¹ã®â¦âªã±â¸¸æ°à´»æ湯ç³æ 潬ç¡å å½ã
ã´ ã ã´â¸´æ°â¼ ã 㤰⸶æ°à´»æ湯ç³æ 潬ç¡å å½ãã´ ã ã´â¸³æ°â¼ ã 㤰⸶æ°â¨ ã ⸲æ°à´»æ湯ç³æ 潬ç¡å å½ãã´ ã 㤳⸲æ°â¼ ã 㤰⸶æ°â¨ ã ⸲æ°à´»à´â¼â¯æ¡ç¯æ¹¥æ ç¯æ 浯æ
°æ¥´æ¥¢æ¥¬ç¥´ç ç©â¨æ¥¨æ¡§ç¥ç æ²æ¥£æ¥³æ¹¯å ä
ã·å¼¹ä±ä¡â½äã㤰äå
â¹à¨â¼¯å æ¥âºåâµâåã®ã¤³â´°â²â¸µâ¸³à´±æ湯ç³æ 潬ç¡å ãã °å¼´ä½äåä
äã´ ã ⸹㤴㠰ã°ã ³ã·ãµã¸ã¦à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ²å½£ã·å¼¹æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ æ¤ â¦ç ¨ã° å ä
ã·å¼¹ää
à´©ââ â â ç ã´ ç ⨠ã ã®ã¦à¨â â æ±¥æ³à¨â â â â â¸â½äã㤰ä
åä
⨠ç ç¯â¡¦â±¸ã ã®æµâ©âå¨ä
ã·å¼¹ä±ä¡ââ⸱æ°ã¬©à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ²å½£ã·å¼¹æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ æ¤ â¦ç ¨ã° ã ã®â¦âªäã㤰äå
â¥à¨â â â â â¸â½â¸â¯â¸´æµà´»ââ æ ç¬àµ¥ââ â â ç ã´ ç ç¯â¡¦ç ¨â¬ â äã㤰ä
åä
â´ ã ã®â¥¦â©â¯äã㤰ä
åä
â¬â¸±æ°â¼ ã ã®æµã¬©à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨â¼¯ä¤ 湧ç¯â¥æ¡´â¥åã®ã ¸â¶ç°ç¯ç©æ½©ç®æ ç¯æ° 浩ç©æ¥æ 湯ç´ç¡â´æ¹¡â¤ç¡ç³ææ â®æ©æ
¥â¬åâ¹à¨ä½ä½åä
äää¹â汦æ
¯â´æ²å½£ã ±ã¸æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° ã ã®â¦â¿â¸°æ°ã¨ ç ç¯â¡¦â±¸ã ã®â¥¦à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ²å½£ã ±ã¸æ¥ç®ç¥æ³æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° ã ã®â¦â¿â¸°æ°ã¨ ç ç¯â¡¦â±¸ã ã®â¦â¯â¸²æ´ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ¼ ç¯å½¦å¼±â ²æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° ã ã®â¦â¿â¸âºæ½°æ·ç ¨â¬â¸±æ²ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ¤ ç®ç¥æ³æ½ç¯å½¦å¼±â ²æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° ã ã®â¦â¿â¸âºæ½°æ·ç ¨â¬â¸±æ°â¼ ã ã®â¥¦à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ½¯æ´çã´ã °â ´æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç æ¥ã
㠸弶潥æ´ç¨æ¥ã㤰æ½ç¥â¡¦â¸âªåã²ã¸ä½åå½ää±â¥
â©â¯ã±â¸°æ°à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ¹©æ¶ç²å½¥æ½¯æ´çã´ã °â ´æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç æ¥ã㤰æ¥ç®ç¥æ³æ½ç¥â¡¦æ²å½£ã ±ã¸æ¥ç®ç¥æ³æç¯â¡¦â¸âªã±â¸°æ°â¤©â¼ å ãã °å¼´ä½äåä
äà´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ½¬ã
§ã°æ½ç¥â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° â½â¸°ã°â¦â¿â¸°æ°ã¨ ã ã®â¦â«æ½¬ã
§æ°ç ¨â©âªã¨ã®â¦â¯â¸²æ°ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° æ¯ã±å¼°æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸ã´¼ã ã®â¦â¿â¸°ã°â¦âºæ½°æ·ã¨â¸°æ°â¬â²âªç ¨â´ ã ã®â¥¦ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° æ¯ã³å¼¶æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸ã´¼ã ã®ã°ã±ã²ã·ã¶â¦â¿â¸°æ°ã¨ ã ã®â¦â«æ½¬ã
§æ°ç ¨â©âªã¨ã®â¦â¯â¸²æµã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° æ¯ã³å¼¶æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸ã´¼ã ã®â¦â¿â¸°ã°ã³ã¶ã²ã·æ¶ã¨ ç ç¯â¡¦ã±ã®â±¦ã ã®â¦âªç ¨â´ ã ã®â¥¦ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç æ¥ãã·å½æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸â¼â¸°æ°ã¼ ã ã®â¦âºæ½°æ·ç ¨â¬â¸²æ²ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç æ¥ãã·å½æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸â¼â¸°æ°ã¼ ã ã®â¦âºæ½°æ·ç ¨â¬â¸±æ°â¼ ã ã®â¥¦à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ²å½£ã´æ°å½§æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®â¸â¼â¸°æ°ã¼ ã ã®â¦âºæ½°æ·ç ¨â¬â¸²æ¸ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç æ¥ãã·æ¢æ¥ç®ç¥æ³æ½ç¥â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²ç ã° ã ã®â¦â¿â¸°æ°ã¨ ç ç¯â¡¦â±¸ã ã®â¦â¯â¸²æ¸ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç çæ´ãã´å½æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ æ¤ â¦ç ¨ã° ã ã®â¦âªäµåå½
ã²ä´°äå
â¥à¨â â â â â¸â½â¸âªã¨ã®â¦â¯â¸´æ°ã¬©à¨â â æ±¥æ³à¨â â â â â¸â½æ½°æ·â ¨â¸â«å¨åäãã´å½ä±ä¡ââ⸱æ°â¤©â¼ å åäãã´å½ä±ä¡â±ã ã®â¦â¯â¸°ã´â¥¦à´»à´ââ ç ç¥çµâ®ã¸à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç çæ´ãã´å½æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ æ¤ â¦ç ¨ã° å åäãã´å½ää
à´©ââ â â ç ã´ ç ⨠ã ã®ã¦à¨â â æ±¥æ³à¨â â â â â¸â½äµåå½
ã²ä´°ä
åä
⨠ç ç¯â¡¦â±¸ã ã®æµâ©âå¨åäãã´å½ä±ä¡ââ⸱æ°ã¬©à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç¸æ¹å½£æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã·å¼¹æ¯æ´æ¨æ¡æ³ç ¨â¤©â¬â¥¸à´»ç´à¨à¨æ±¦æ
¯â´ç¸æ¹å½£æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã·å¼¹æ¹©æ¶ç²å½¥æ¯æ´æ¨æ¡æ³ç ¨â¤©â¬â¥¸à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç¡æ©æã¶æ½ç¥â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â ⼯å æ²æ¶ç®æ¸ æ¥ç¡ç©â¥æ¥°æ¸ç¬æ æ½²â楹汥楤æ®ä¸ ä¹à´®ââ ç ã´ æ æ
æ¸ç ¨â¬â¸°æ°ã¬©à¨à¨â â æ©â â¸ã´¼â ⸱æ°â¼ ã ⸲æ°â¤©à¨â â â â â¸â½ç
³ç²â¡¦â¸³æ°â¨ ç 㬩à¨â â æ±¥æ³à¨â â â â â¸â½åääã¶ä
â¨ æ° æ¯â¡¦ã±ã®â¦âªâ¸âåääã¶äâ©â«åääã¶äà´»à´ââ ç ç¥çµâ®ã¸à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ 楲形ã¢å¼·æ¹©æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ â¼ â¯çç¥æ¹¥â´æ®æ
§æ¥´æ¶ç ç¡©æ±¥â³ç¡¥æ
°æ®æ¹©â§æ¹©æ½´ç ç¯ç©ç©â¥æ
¶ç¬ç¥à´®ââ ç ã´ æ æ
æ¸ç ¨â¬â¸°æ°ã¬©à¨à¨â â æ©â â¸ã´¼ã ã®â¥¦à¨â â â â â¸â½ç ¨â¨ ç â©âªã¨ã®â¦â¯â¸³æ°ã¬©à¨â â æ±¥æ³à¨â â â â â¸â½æ¨ç¸â¡¦ç ¨â´ ä ä¥å½ãå¼·â¥â¼ ä ä¥å½ãå¼·â¥â¬ ä ä¥å½ãå¼·â¥â¨ â ⸱æ°â¼ ã ⸲æ°ã¬©à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç³æ§æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ©â â¸â¼ã±ã¤®æ²â¨ å äå½ää
à´©ââ â â ç ⨠â½ã¨ã®â¦â¯ã±ã¤®æ²ã¬©à¨â â æ±¥æ³à¨â â â â â¸â½æ½°æ·â ¨â¸â«å¨äå½ä±ä¡ââ⸱æ°â¤©â¨ â ⸱æ°â¼ å äå½ä±ä¡â¥â¬â¸²æ´ã¬©à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç³æ§æ¥ç®ç¥æ³æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ©â â¸â¼åääå
â¥à¨â â â â â¸â½â¸âªã±ã¤®æ²à´»ââ æ ç¬àµ¥ââ â â ç ã´ å äå½ä±ä¡ââªæ½°æ·ç ¨â¬â¸±æ°â¼ ã ã®â¥¦â´ â åää
åä
â´ ã ã®â¥¦à´»à´ââ ç ç¥çµâ®ã¸à¨àµ½à´â¼â¯æ
æ®æ¬ç 污æµâ³æ¹©ç æ¨ç 湡æ§å¬ ⸰ⴰ⸱崰ç æµâ¨æ¡´ç¡ç æ¨â¹æ
æ´â¨â¡æ¬æ
§ç¥£ä åà´®ää±ååäå½
åäæ 潬ç¡ç 祶æ£æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ©â â¸â¼â¸°æ°ç° â¼â¸â¾â¸±æ°à´©ââ â â ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã·å¼¹æ¹©æ¶ç²å½¥æ¯æ´æ¨æ¡æ³ç ¨â¤©â¬â¥¸à´»ââ æ ç¬àµ¥ââ â â ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã ±ã¸æç¯â¡¦æ
¦ç¢â¡¦â¥¸â°©ç 㬩à¨àµ½à´ää±ååäå½
åäæ 潬ç¡ç 祶æ£æ¥ç®ç¥æ³æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ©â â¸â¼â¸°æ°ç° â¼â¸â¾â¸±æ°à´©ââ â â ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã·å¼¹æ¯æ´æ¨æ¡æ³ç ¨â¤©â¬â¥¸à´»ââ æ ç¬àµ¥ââ â â ç ç¥çµâ®æ½£ç¥°æ¥³æ¹§â¡¦æ²å½£ã ±ã¸æ¥ç®ç¥æ³æç¯â¡¦æ
¦ç¢â¡¦â¥¸â°©ç 㬩à¨àµ½à´â¼ç¯å½±ç³æ¡å½¥æ½´æ±æ¹©æ
¥àµ²ää±ååäå½
åäæ 潬ç¡ç å½´ã²ã¸æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â ⼯ä 汩æ´â²æ®æ
§æ¥´æ¶ç 污æµâ³æ½´æ 潶æ©ä¸ ä¹à´®ââ æ¤ â¦ç ¨ã¸ ã ã®â¥¦ç¬ à¨â â â â 汦æ
¯â´ç¸ç¯ã´ ç ç¯â¡¦â±¸ã ã®â¦â¯åã²ã¸äµâ¤²à´»ââ â â æ 潬ç¡æ¸ 浵㴠æ æ
æ¸ç ¨æ½°â·âåã²ã¸äâ°±ã ã®â¥¦à´»ââ â â æ 潬ç¡æ 湥㴠æ æ
æ¸å¨ãã °å¼´ãâ´ å ãã °å¼´ã⨠ç æ½°â±·ä ä½åäå㬩à¨â â â â â¸â½æ½°æ·æ¸¨æµµâ¼ æ æ¹¥â¬â¸±æ°â¼ å ãã °å¼´ã
㬩à¨â â â½æ±¥æ³ç¬ à¨â â â â â¸â½â¸°æ°à´»ââ ç´ à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨â¼¯æ¥¬æ®ç¡ç彯ç
°çæ
°æ£à¨ä½ä½åä
äää¹â汦æ
¯â´ç³ã㠰弴湩æ¶ç²å½¥æ½¥æ´æ¨æ½¬ç¡ç â©àµ»ââ â¼ â¯æ¥ç¬ç¥æ¸ æ¥ç¡ç©â¥æ
¶ç¬ç¥ç â¯ç¡æ¥¯â¤ä
â±æ æ®æ ç¬â¯ç³æ¥æ
©âµ¬æ
£æ³ã ç â¯æ¡´ç¡â ⡦⡧⤰â©ã´½ã ⸩à¨â â æ©â â¸â¾â¸°æ°â©àµ»ââ â â æ 潬ç¡ç æ½°â·â½æ½°æ·ç ¨â¬åã²ã¸äµâ¤±à´»âæ©ã à¨â â â â â¼¯ä¼ æ¥²æ¥§æ
®â¬æ½¦æµ²æ±µç¡æ½©â®ç¦æµ¯å åäå âã²ã¸ãºã°â´ç°æ±¢æ©ç¡æ½©â¹®à¨â â â â 汦æ
¯â´ç®ââ½åã²ã¸äâ±â«åã²ã¸äâ²âªç¸ç¯à´»ââ â â æ 潬ç¡æ 湥㴠ã ã®â¦â«åã²ã¸äâ³âªç¸ç¯à´»ââ â â ç ã´ ç ç¯â¡¦ç®ââ¯æ¤â±®å ãã °å¼´ã㬩à¨æ£ç¬àµ¥ââ â â â¼ â¯æ½æ²ç æ
´æ±¢â¥ç¡æ
²æ®æµ¥æ¹¥â´æ¡´ç¡æ 潶æ©â³æ½³ææ 湡æ£æ±¬ç¡æ½©â®ç¥æ½²â¹²à¨â â â â 汦æ
¯â´ç®ââ½å¨ãã °å¼´ã
â´ ã ã®â¥¦â¬ â åã²ã¸äâ²âåã²ã¸ä⤳⨠ç æ½°ã·à¨â â â â 汦æ
¯â´æ¤â®â½â¸±æ°â¬ å ãã °å¼´ã⨠ç æ½°ã·à¨â â â â â¸â½æ½°æ·ã¨ã®â¦â«ç®ââ¯æ¤â±®å ãã °å¼´ã㬩à¨æ£æ®æ©à¨â â â½æ±¥æ³ç¬ à¨â â â â â¸â½â¸°æ°à´»ââ ç´ à¨à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨â¼¯ä ç°æ¥¬ç¥æ ç ç¥ææ
¨æ¹®æ±¥æ ç¯æ²ç£æ½©â®æ¹©ç³æ
¥â¤æ¯ç æ¨æ¤ æ´æ
²æ¥´æ¶æ´ ç¥æ½¨â¤ç³æ¥æ©æ©â¤æ¹©å æ¥ã®ã±â¸°à¨ä½ä½åä
äää¹â汦æ
¯â´ç¡æ©æã¶æç¯â¡¦æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²æ¼ ç¯å½¦å¼±â ²ç¡æ©æã¶æ¥ç®ç¥æ³æ½ç¥â¡¦â¥¸ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ 楲形ã¢å¼·æ¹©æ¶ç²å½¥æ½¥æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®ç¡æ©æã¶æ½ç¥â¡¦æ¹©æ¶ç²å½¥æ½¯æ´ã
ãç ¨â¤©à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç³ãã °å¼´æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®ç³ã㠰弴湩æ¶ç²å½¥æ½¥æ´æ¼¨ç¯å½¦ç³ã²ã¸ç ¨â¤©à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç³ã㠰弴湩æ¶ç²å½¥æ¯æ´æ¨æ½¬ç¡ç â©àµ»ââ ç ç¥çµâ®æ¹©æ¶ç²å½¥æ½¯æ´çã´ã °â ´ç³ãã °å¼´æ½¥æ´ç ¨â¤©à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯ã´æ 楲ä¢ã¶ç⡳汦æ
¯ã´ç â¬æ±¦æ
¯â´ç«â¬æ±¦æ
¯â´æ«â¬æ±¦æ
¯â´æ«â¬æ±¦æ
¯â´æ³æ±¡â¥¥ç¬ à¨â â æ½£ç®â´æ±¦æ
¯â´æ
§æµâ¡â½â¸±æ²à´»ââ æ 潬ç¡ç ã´ ç ç ®â¨ ç æ
£æ¬à´»ââ æ 潬ç¡æ ã´ ç 礮⨠ç æ
£æ¬à´»ââ æ 潬ç¡æ ã´ ç 種⨠ç æ
£æ¬à´»à´ââ æ 潬ç¡ç¤ â¤â½æµ¦ç¡¡â¡¦ç«â¨ ç â¬ æ¬ â§âªâ§â«æ«â¨ æ â¬ä±ä
å½å
â¥à´»ââ æ 潬ç¡ç¤ 彳湩â¶â½æ½°æ·ç¤¨â±¤â ⸱æ°â´ æ 浡æ
â©â¯æ
§æµâ¥¡à´»à´ââ ç ç ®ã´ æ 楲形ã¢å¼·æ¯æ´ç¨â¨ ç¤ å½³æ¹©â¥¶à´»ââ ç 礮㴠æ 楲形ã¢å¼·æ¯æ´æ¨â¨ ç¤ å½³æ¹©â¥¶à´»ââ ç 種㴠æ 楲形ã¢å¼·æ¯æ´æ¨â¨ ç¤ å½³æ¹©â¥¶à´»ââ ç ç¥çµâ®ã¶à¨àµ½à´ää±ååäå½
åäæ 潬ç¡â³ç¡æ©ã䤷ç®ç⡳汦æ
¯ã´ç â¬æ±¦æ
¯â´ç«â¬æ±¦æ
¯â´æ«â¬æ±¦æ
¯â´æ«â¬æ±¦æ
¯â´æ³æ±¡â¥¥ç¬ à¨â â æ½£ç®â´æ±¦æ
¯â´æ
§æµâ¡â½â¸±æ²à´»ââ æ 潬ç¡ç ã´ ç ç ®à´»ââ æ 潬ç¡æ ã´ ç 礮഻ââ æ 潬ç¡æ ã´ ç 種഻à´ââ æ 潬ç¡ç¤ â³â½æµ¦ç¡¡â¡¦ç«â¨ ç â¬ æ¬ â§âªâ§â«æ«â¨ æ â¬ä±ä
å½å
â¥à´»ââ ç¤ â³â½æ½°æ·ç¤¨â±³æ 浡æ
â´ ã ã®â¥¦à´»à´ââ ç ç ®ã´ æ 楲形ã¢å¼·æ¹©æ¶ç²å½¥æ¯æ´ç¨â¨ ç¤ â¥³â¨ ç æ
£æ¬à´»ââ ç 礮㴠æ 楲形ã¢å¼·æ¹©æ¶ç²å½¥æ¯æ´æ¨â¨ ç¤ â¥³â¨ ç æ
£æ¬à´»ââ ç 種㴠æ 楲形ã¢å¼·æ¹©æ¶ç²å½¥æ¯æ´æ¨â¨ ç¤ â¥³â¨ ç æ
£æ¬à´»ââ ç ç¥çµâ®ã¶à¨àµ½à´ää±ååäå½
åäæ 潬ç¡â³æ
ç´ç¡©æµæ±µæ¨æ½¬ç¡æ´ ãåå´³â¬æ±¦æ
¯ã´ç â©àµ»ââ æ 潬ç¡â³æ²ã´à¨â â æ²â¹´â¸â½åå´°ãââªâ¹¶â¸â«åå´°ã
ââªâ¹¶â¹â«åå´°ãââªâ¹¶ãºà¨â â æ²â¹´â¹â½åå´±ãââªâ¹¶â¸â«åå´±ã
ââªâ¹¶â¹â«åå´±ãââªâ¹¶ãºà¨â â æ²â¹´âºâ½åå´²ãââªâ¹¶â¸â«åå´²ã
ââªâ¹¶â¹â«åå´²ãââªâ¹¶ãºà¨â â æ²ç´æ¹²ç ç¥à´»ç´à¨à¨â¼¯è¿¥î¢èâºç¨ç´ã©³â¼¯æ¥§ç³æ®ç©ç¨â¹¢æ½£â½ç´â½¥ã³æ£æ¢ã¹ã·æ²æ±æ¥ã´ã£ã¤ã¹æµã£ã²ã¹à¨ä½ä½åä
äää¹â汦æ
¯â´æ
¨æ±¢â¡¥æ±¦æ
¯â´â±¸æ 潬ç¡ä â¬æ±¦æ
¯â´â±æ 潬ç¡ä â¬æ±¦æ
¯â´â±æ 潬ç¡ä â¬æ±¦æ
¯â´â¥ç¬ à¨â â æ²ç´æ¹²â ç ¨â ªâ©â¸â©â¥ä«äªâ©â¯ç ¨â ªâ©â¸â¥ä«äªâ¤©â´ ä ä¯à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ¨ã²æ³å½²æ
¨æ±¢â¡¥æ±¦æ
¯â´â±¸æ 潬ç¡ç ç¯æ²å½¥æ°æ¡â¬æ±¦æ
¯â´æ¬å½²æ¥®ç´â¬æ±¦æ
¯â´â±æ 潬ç¡ä â¬æ±¦æ
¯â´â±æ 潬ç¡ä â¬æ±¦æ
¯â´â±
æ 潬ç¡ä â©àµ»ââ æ 湯ç³æ 潬ç¡æ â¢â½æ½³çµæ£çæ
¥â«â¯æ¬å½²æ¥®ç´à´»ââ æ 湯ç³æ 潬ç¡ç â°â½æ
¨æ±¢â¡¥â±¸ä â¬â±ä â¬â±ä â¬â¥à´»ââ æ 湯ç³æ 潬ç¡ç â±â½æ
¨æ±¢â¡¥æ¥â¬â±ä â¬â±ä â¬â±
ä 㬩à¨â â æ²ç´æ¹²ç â°â¯ã
´à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ¨ã²æ³å½²æ½æ¥¢çµæ¨æ½¬ç¡ç â¬æ±¦æ
¯â´æ½³çµæ£çæ
¥â±«æ 潬ç¡æ° ç¤æ¹ç©â±³æ 潬ç¡ç â¬æ±¦æ
¯â´æ°æ¡â©àµ»ââ æ 湯ç³æ 潬ç¡æ â¢â½æ½³çµæ£çæ
¥â«â¯æ¬å½²æ¥®ç´à´»ââ ç æ
¥â«ã´ªæ ã¢à¨â â æ©â â¸ã´¼ç â©àµ»ââ â â ç ç¥çµâ®ã¸à¨â â ൽà´ââ æ 潬ç¡æ ã´ â´ â´âªâ´âªç¨æ
¥â«â⸱æ°â©â¯ç¨â¨ ç â´ ã ã®â¦âªâ´â«æ°æ¡ã¬©à¨â â 汦æ
¯â´â¢â½ç¨â¨ ç â´ ã ã®â¦âªâ´âªæ°æ¡â¬ ç æ
¥â¥«â¼ æ æ
æ¸ç¨æ
¥â«â⸱æ°â¬æ±ã⥦഻ââ ç ç¥çµâ®æ¨â¨ æ ⬠ã ã®â¦âªâ¢âªâ´â«â´âªâ¥´â¼ â â¢â⥡⨠â â¸â«â¥¡â¼ â â¸â«â¥¢à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ¨ã²æ³å½²æ²æ¹©æ
¨æ²æ¨æ½¬ç¡ç â¬æ±¦æ
¯â´æ½³çµæ£çæ
¥â±«æ 潬ç¡æ° ç¤æ¹ç©â±³æ 潬ç¡æ¼ æ¦æ³â±´æ 潬ç¡ç æ
¥â¥«ç¬ à¨â â æ½£ç®â´æ±¦æ
¯â´æ¥ã´ ç ç¯æ²å½¥æ°æ¡â¼ æ° ç¤æ¹ç©ã³à¨â â æ°æ¡â¨ â½æ¥à´»ââ ç ç¥çµâ®â¸â¯ç ¨â¬ æ¼ æ¦æ³â¥´â¨ â æ°æ¡â¬ æ¼ æ¦æ³â¥´â¼ ç æ
¥ã«à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° 湩æ
¥å½²æ½´çå½±ç³æ¡â¡¥æ±¦æ
¯â´â¥¸ç¬ à¨â â æ©â â¸â¾â¸°æ°â©àµ»ââ â â ç ⨠â½ååä
åä¥äâ¼ ã ã°ã°ã®ã¦à¨â â â â â¸â½æ½°æ·ç ¨â¬å
äµâ¤±à´»ââ â â ç ã´ â å
äâ±â«å
äâ²âªâ¥¸â¼ â ⸱æ°â¬ å å½ã⨠ç 㬩à¨â â â â â¸â½æ½°æ·ç ¨â¬å
äµâ¤²à´»ââ â â ç ç¥çµâ®ã¸à¨â â â½æ±¥æ³ç¬ à¨â â â â æ²ç´æ¹²ã ã®ã¦à¨â â ൽç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´ç
°çæ
°æ£ç彯楬æ®ç¡æ¨æ½¬ç¡ç â©àµ»ââ æ¤ â¦ç ¨ã¸ ã ã®â¥¦ç¬ à¨â â â â â¸â½æ½°æ·ç ¨â¬â¸±æ°â¼ å å½ã㬩à¨â â â â â¸â½æµ¦ç¡¡â¡¦â¸âå
äâ°±ã ã®â¥¦â¼ â å
äâ²âå
äâ³âªâ¥¸à´»ââ â â ç ã´ ç ç¯â¡¦â±¸ã ã®â¦â¯å
äµâ¤±à´»ââ â â ç ⨠â½ã±ã°â¸°æ°â¼ ä´ å½äå½ä¡åã
à¨â â â â æ²ç´æ¹²ç à´»ââ ç´ æ ç¬â¥àµ»ââ â â ç ç¥çµâ®â¸°æ°à´»ââ ç´ à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ ç°ç¥¬æã´ã¤³â °æ±¦æ
¯â´â±¸æ 湯ç³æ 潬ç¡æ´ ç¡¡çâ¥ç¬ à¨â â æ½£ç®â´æ±¦æ
¯â´ç«ã´ ã ã®â¦âªæ
䱸浵ⴠã ã®ã¦à¨â â 汦æ
¯â´æ´ã´ â â¸âç«â©â¯ã¨ã®â¦âç«ã¬©à¨â â 汦æ
¯â´æ´â²â½æ´â¨ ç ã¢à¨â â 汦æ
¯â´æ´â³â½æ´â²âªæ´à´»ââ æ 潬ç¡ç â¢â½ã¨ã®â¦âªæ´â³â⸳æ°â¨ ç ã¢â¬ ã ã®â¥¦â¨ æ¬ â³à´«ââ â â â æ´â³â⸲æ°â¨ ç ã¢â¬ ç ⥢⨠â ⸱æ°â´ æ¬ â¥³â¬ à¨â â â â ⴨⸲æ°â¨ ç ã¢â¬ ã ã®â¦âªæ´â¤²â¨ æ´ ç¡¡çãà¨â â ⼯â¸â½æ¥â¡¸æ°â¬â±¸æ° ç¥å³æ
¨â¡®â±¸æ¬ ⥳㬩à¨â â â¸â½ç ¨ã° æ¬ â¥³ã¼ ç 㨠ç ã¢à¨â â æ²ç´æ¹²ç à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯â´æ¥â¡¸æ±¦æ
¯â´â±¸æ 潬ç¡ç¤ â¬æ±¦æ
¯â´â¥¡ç¬ à¨â â â¡â½æ¨ã° ã ã®â¥¦ã¼ ã ã®â¦âºã¡à¨â â â¡â½æ¨ã¸ ã ã®â¥¦ã¼ ã ã®â¦âºã¡à¨â â æ²ç´æ¹²â ⥸⨠â ⸱æ°â´ â ⥡â©â«ç¤¨â©âªæ¨ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨æ½¬ç¡ç â°°æ 潬ç¡ç â°±æ 潬ç¡æ â©àµ»ââ ç ç¥çµâ®ã¶â¬ â ã
¶â´ ç ⤰⨠æ à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯ã´æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨æ½¬ç¡â³ã¶â¬æ±¦æ
¯ã´ç â°±æ 潬ç¡æ â©àµ»ââ æ 潬ç¡â³ã²à¨â â â¹²â¸â½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã¶ç ®â¬ã
¶ç ®â¬â¥¡à´»ââ ç ç¤®ã´ æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²ç¨â¸°â±¹ç ⸱ⱹæ 㬩à¨â â â¹²âºâ½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã¶ç¨®â¬ã
¶ç¨®â¬â¥¡à´»ââ ç ç¥çµâ®ã²à¨àµ½à´ää±ååäå½
åäæ¤ ç®æ° çµæ³çæ²å½¶æ©â¡¸æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²â 湩⥴ã¸à¨àµ½à´ää±ååäå½
åäæ¤ ç®æ° çµæ³æ¹æ
¥å½²æ©â¡¸æ±¦æ
¯â´â¥¸ç¬ à¨â â æ²ç´æ¹²â æ¹©â¥´ç ¨â¬ ã ã®â¥¦à´»ç´à¨à¨ä½ä½åä
äää¹â湩â´ç¬ã´å½¤æ®ç¸æ¥ç¡¤æ¨æ½¬ç¡ç â¬æ¹©â´æ¥³æºâ©àµ»ââ æ¤ ç®æ¸ ç¡¥â´â½ç¬ã´å½¤ç°ç¥æ¥ç¡¤ç ¨â©â«ã¬±à¨â â æ²ç´æ¹²â æ®ç¸ã¸ â½æ¥³æºâ©â¿æ¥³æºâ´ ã ã¨ æ¸ ç¡¥ã´à¨àµ½à´ää±ååäå½
åäæ 潬ç¡æ° çµæ³çæ²ç¬â¡´æ½£ç®â´æ±¦æ
¯â´â±³æ 湯ç³æ¤ ç®æ¤ 硤â¬æ½£ç®â´æ¹©â´æ¥³æºà´¬ââ æ 湯ç³æ 潬ç¡ç æ²ç¬æµ´æ¹©ãâ±æ 湯ç³æ 潬ç¡ç æ²ç¬ç´æ
£æ¬ãâ±æ 湯ç³æ 潬ç¡â¨ å½æ²ç³æ¥²ç£å½ç æ²ç¬â¥´ç¬ à¨â â æ½£ç®â´æ±¦æ
¯â´â¸â½æ±£æµ¡â¡°ç¨â´ ç æ²ç¬æµ´æ¹©æ¥ç¡¤â¥â¨ ç æ²ç¬ç´æ
£æ¬æ¥ç¡¤â±ã ã®â±¦â 汦æ
¯â¥´ç¨ç©©â¥â⤱㬩à¨â â æ½£ç®â´æ±¦æ
¯â´ã£ã´ ç æ²ç¬å´æ©â¸âªæ¥³æºâ¬ æ° çµæ³çæ²å½¶æ©â¡¸â¥¸ãà¨â â æ½£ç®â´æ±¦æ
¯â´ã
£ã´ ç æ²ç¬å´æ©â¸âªæ¥³æºâ¬ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸â±¸ç 穩⥥ãà¨â â æ²ç´æ¹²æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨â°°æ â°±ç â´ æ° çµæ³çæ²å½¶æ©â¡¸â¥¸ã¬©à¨àµ½à´ää±ååäå½
åäæ 潬ç¡â³ç¬ã´å½¤ç°æ±¥çµæ¨æ¹¯ç³æ 潬ç¡â³æ¹©â¬æ½£ç®â´æ¹©â´æ¥³æºà´¬ââ æ 湯ç³æ 潬ç¡ç æ²ç¬æµ´æ¹©ãâ±æ 湯ç³æ 潬ç¡ç æ²ç¬ç´æ
£æ¬ãâ±æ 湯ç³æ 潬ç¡â¨ å½æ²ç³æ¥²ç£å½ç æ²ç¬â¥´ç¬ à¨â â 汦æ
¯ã´æ¼ çµà´»ââ æ¼ çµç ®ã´ æ° çµæ³çæ²ç¬â¡´æ¹©ç ®â¬â°°ç ç©©â±¥ç æ²ç¬æµ´æ¹©â¬ç°æ±¥çµæ³æ±¡â±¥ç æ²ç¬â¥´à´»ââ æ¼ çµç¤®ã´ æ° çµæ³çæ²ç¬â¡´æ¹©ç¤®â¬â°±ç ç©©â±¥ç æ²ç¬æµ´æ¹©â¬ç°æ±¥çµæ³æ±¡â±¥ç æ²ç¬â¥´à´»ââ æ¼ çµç¨®ã´ æ° çµæ³çæ²ç¬â¡´æ¹©ç¨®â¬â°²ç ç©©â±¥ç æ²ç¬æµ´æ¹©â¬ç°æ±¥çµæ³æ±¡â±¥ç æ²ç¬â¥´à´»ââ ç ç¥çµâ®ç¯ã´à¨àµ½à´ää±ååäå½
åäæ 潬ç¡â³ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥æ½£ç®â´ååä
⨠å½æ²ç³æ¥²ç£å½æ° çµâ¬æ½£ç®â´æ¹©â´â±¸æ 湯ç³æ¤ ç®ç¤ â¬æ½£ç®â´æ¹©â´â±ºæ 湯ç³æ¤ ç®æ° çµæ¥æºâ°°æ 湯ç³æ¤ ç®æ° çµæ¥æºã°â©àµ»ââ ä° åäâæ
¶â¬â½ç¬å´â¸âªç¬å´ç©©ã¥â±â«â¹âªç¬å´ç©©ã¥â¬ ç¨ ãà¨â â 汦æ
¯ã´æ¼ çµà´»ââ æ¼ çµç ®ã´ ç æ±¡ç ®à´»ââ æ¼ çµç¤®ã´ ç 污礮഻ââ æ¼ çµç¨®ã´ ç 污種഻ââ ç ç¥çµâ®ç¯ã´à¨àµ½à´ää±ååäå½
åäæ 潬ç¡â³ç¬ã´å½¤æ¹©æ´ç²æ¹æ
¥æ²ç³æ¨æ½¬ç¡â³æ¹©â¬æ½£ç®â´ååä
⨠å½æ²ç³æ¥²ç£å½æ° çµâ¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¤±ç¬ à¨â â æ²ç´æ¹²æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ç¬ã´å½¤æ®ç¡æ¥ç¡¤æ¤¨â¹®â¥¸â¬ç¬ã´å½¤æ®ç¡æ¥ç¡¤æ¤¨â¹®â¥¹â¬ç¬ã´å½¤æ®ç¡æ¥ç¡¤æ¤¨â¹®â¥ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ç´à¨à¨â¼¯è¿¥î¢èâºç¨ç´ã©³â¼¯æ¹¥ç®æ©ç©æ¥æ
©æ¼®æ²ç¯æ©â½©ç汩湩æ
¥å½²æ¹©æ´ç²æ±¯ç¡æ½©àµ®ää±ååäå½
åäæ 潬ç¡â³ç¬ã´å½¤æ¹©æ´ç²ç楲楬æ®ç¡æ¨æ½¬ç¡â³æ¹©â¬æ½£ç®â´ååä
⨠å½æ²ç³æ¥²ç£å½æ° çµâ¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¤±ç¬ à¨â â æ½£ç®â´æ¹©â´ã¸ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç ®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¸ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç ®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ã¹ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¤®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¹ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¤®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ãºã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¨®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
ºã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¨®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç¡¥ã´ æ¤ â¹®â¸âã¸à´»ââ æ 湯ç³æ 潬ç¡ç æ
£æ¬â¹â½æ¹©ç¤®â´ ç¤ ã¬°à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç©¥ã´ æ¤ â¹®âºâãºà´»ââ æ 湯ç³æ 潬ç¡â³ã£ã°â â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°°ç¤ â°°ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã°â±ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã¸â¬ã¹â¬ã
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ã£ã±â â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°°ç¤ â°±ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã°â±ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã¸â¬ã
¹â¬ã
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ã
£ã°â â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°±ç¤ â°°ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â±ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã
¸â¬ã¹â¬ã
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ã
£ã±â â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°±ç¤ â°±ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â±ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã
¸â¬ã
¹â¬ã
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ã£â°â â½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã£ã°â¬ã
£ã°â¬æ³æ±¡ç¡¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â ã´ æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨ã°â°°æ ã±â°°ç æ
£æ¬â¥¸à´»ââ æ 湯ç³æ 潬ç¡â³ã£â±â â½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã£ã°â¬ã
£ã°â¬æ³æ±¡ç¡¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â ã´ æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨ã°â°±æ ã±â°±ç æ
£æ¬â¥¸à´»ââ æ 湯ç³æ 潬ç¡â³ã£â â â½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã£â°°â ã
£â°°â æ³æ±¡ç¥¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ â±â ã´ æ° çµæ³æ±æ¹©æ
¥å½²æ¹©æ´ç²æ¨ã°â¬æ ã±â¬ç æ
£æ¬â¥¹à´»ââ æ 湯ç³æ 潬ç¡â³â£â â â½ç¬ã´å½¤æ¥¬æ®ç¡æ¥ç®ç¥â¡°ã£â¬â ã
£â¬â æ³æ±¡ç©¥ã¬©à¨â â æ²ç´æ¹²æ à´»ç´à¨à¨â¼¯è¿¥î¢èâºç¨ç´â¼ºç¯ç·æ®æ±©æ±æ©ç¨æ°®æ´ç®â½«æ°â½¦æ¡·ç©ç¥ç¡ç¥â½³ä±åâµä¹ãã°â´·æ½ç¦æ
·æ²æ¥â¹¢æ°àµ¦ää±ååäå½
åäæ 潬ç¡â³ç¬ã´å½¤æ¹©æ´ç²çç¥æ
²æ¨ç¤æ±¡æ¨æ½¬ç¡â³æ¹©â¬æ½£ç®â´ååä
⨠å½æ²ç³æ¥²ç£å½æ° çµâ¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¤±ç¬ à¨â â æ½£ç®â´æ¹©â´ã¸ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç ®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¸ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç ®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ã¹ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¤®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¹ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¤®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ãºã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¨®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
ºã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¨®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç¡¥ã´ æ¤ â¹®â¸âã¸à´»ââ æ 湯ç³æ 潬ç¡ç æ
£æ¬â¹â½æ¹©ç¤®â´ ç¤ ã¬°à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç©¥ã´ æ¤ â¹®âºâãºà´»ââ æ 潬ç¡ç æ
£æ¬â°°ç æ
£æ¬â°±ç æ
£æ¬ã¬²à¨â â 湩â´ä
¸â¬ä
¹â¬ä
ºâ¬ä¸â¬ä¹â¬äºà´»ââ æ¤ â¦ç¨æ
£æ¬â¸â¾æ³æ±¡ç¥¥â©àµ»ââ â â æ¤ â¦ç¨æ
£æ¬â¹â¾æ³æ±¡ç©¥â©àµ»ââ â â â â ç æ
£æ¬â°â½æ³æ±¡ç¡¥à´»ââ â â â â ç æ
£æ¬â±â½æ³æ±¡ç¥¥à´»ââ â â â â ç æ
£æ¬â²â½æ³æ±¡ç©¥à´»ââ â â â â ç ââ½ã
¸â»ä
¹ã´ ç¤ ã¬°ç¨ ââ½ãºà´»ââ â â â â ç ââ½ã
¸â»ä¹ã´ ç¤ ã¬±ç¨ ââ½ãºà´»ââ â â ç´ æ ç¬â¥æ©â æ³æ±¡ç¡¥ã¸ ç æ
£æ¬â¥ºç¬ à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¸à¨â â â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ãºà¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â â â â ä
¸ã´ ç ã¬±ç¤ ââ½ã¹â»ä
ºã´ ç¨ ã¬°à¨â â â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã¹â»äºã´ ç¨ ã¬±à¨â â â â â½æ±¥æ³ç¬ à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ãºà¨â â â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ã¸à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã¹â»ä
ºã´ ç¨ ã¬±à¨â â â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã¹â»äºã´ ç¨ ã¬±à¨â â â â ൽââ ç´ æ ç¬â¥àµ»ââ â â æ¤ â¦ç¨æ
£æ¬âºâ¾æ³æ±¡ç¥¥â©àµ»ââ â â â â ç æ
£æ¬â°â½æ³æ±¡ç©¥à´»ââ â â â â ç æ
£æ¬â±â½æ³æ±¡ç¥¥à´»ââ â â â â ç æ
£æ¬â²â½æ³æ±¡ç¡¥à´»ââ â â â â ç ââ½ã¸â»ä
¹ã´ ç¤ ã¬°ç¨ ââ½ã
ºà´»ââ â â â â ç ââ½ã¸â»ä¹ã´ ç¤ ã¬±ç¨ ââ½ã
ºà´»ââ â â ç´ æ ç¬â¥æ©â æ³æ±¡ç©¥ã¸ ç æ
£æ¬â¥¸ç¬ à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ãºà¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¸à¨â â â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã
¹â»ä
ºã´ ç¨ ã¬°à¨â â â â â â ä¸ã´ ç ã¬°ç¤ ââ½ã
¹â»äºã´ ç¨ ã¬±à¨â â â â â½æ±¥æ³ç¬ à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ã¸à¨â â â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ãºà¨â â â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã
¹â»ä
ºã´ ç¨ ã¬°à¨â â â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã
¹â»äºã´ ç¨ ã¬°à¨â â â â ൽââ ç´ à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã°â°â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°°ç¤ â°°ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â±â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°±ç¤ â°±ç¨ â°±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ââ â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â±ç¤ â±ç¨ â±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ââ â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â±ç¤ â±ç¨ â±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯â´ç â°â â½â¸±æ°â â´ ç æ
£æ¬ã¬°à¨â â æ½£ç®â´æ±¦æ
¯â´ç â±â â½æ³æ±¡ã¥â´ ç æ
£æ¬ã¬±à¨â â æ½£ç®â´æ±¦æ
¯â´ç â²â â½æ³æ±¡ã
¥â´ ç æ
£æ¬ã¬²à¨â â æ½£ç®â´æ±¦æ
¯â´ç â³â â½æ³æ±¡ã¥à´»ââ æ 潬ç¡â³ã£à¨â â â¹£â¸â½ã³â¨ æ ã°â¸°â¸â«ã
³â¨ æ â¹â¸â«ã³â¨ æ â¹â¸â«ã³â¨ æ ã±â¸±ã¸à¨â â â¹£â¹â½ã³â¨ æ ã°â¸°â¹â«ã
³â¨ æ â¹â¹â«ã³â¨ æ â¹â¹â«ã³â¨ æ ã±â¸±ã¹à¨â â â¹£âºâ½ã³â¨ æ ã°â¸°âºâ«ã
³â¨ æ â¹âºâ«ã³â¨ æ â¹âºâ«ã³â¨ æ ã±â¸±ãºà¨â â æ²ç´æ¹²æ à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯ã´æ° çµæ³æ¥ç®ç¥å½°ç¥°æ
²æ¥â¡¤æ±¦æ
¯ã´æ¤ â±®æ 湯ç³ä° åäâæ°ªçµâ¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¤±ç¬ à¨â â æ½£ç®â´æ¹©â´ã¸ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç ®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¸ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç ®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ã¹ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¤®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¹ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¤®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ãºã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¨®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
ºã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¨®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç¡¥ã´ æ¤ â¹®â¸âã¸à´»ââ æ 湯ç³æ 潬ç¡ç æ
£æ¬â¹â½æ¹©ç¤®â´ ç¤ ã¬°à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç©¥ã´ æ¤ â¹®âºâãºà´»à´ââ æ 潬ç¡ç æ
£æ¬â°°ç æ
£æ¬â°±ç æ
£æ¬ã¬²à¨â â 湩â´ä
¸â¬ä
¹â¬ä
ºâ¬ä¸â¬ä¹â¬äºâ¬ä¸â¬ä¹â¬äºà´»à´ââ æ¤ â¦ç¨æ
£æ¬â¹â¾æ³æ±¡ç¡¥â â¦æ³æ±¡ç©¥ã¸ ç æ
£æ¬â¥¸ç¬ à¨â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã¹â»ä
ºã´ ç¨ ã¬±à¨â â â â ä¸ã´ ç ã¬°ç¤ ââ½ã
¹â»äºã´ ç¨ ã¬°à¨â â â â ä¸ã´ ç ã¬°ç¤ ââ½ã
¹â»äºã´ ç¨ ã¬±à¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ãºà¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¸à¨â â â½æ±¥æ³æ¤ â¦ç¨æ
£æ¬â¸â¾æ³æ±¡ç¥¥â â¦æ³æ±¡ç©¥ã¸ ç æ
£æ¬â¥¹ç¬ à¨â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã¹â»ä
ºã´ ç¨ ã¬±à¨â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã¹â»äºã´ ç¨ ã¬°à¨â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã¹â»äºã´ ç¨ ã¬±à¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¸à¨â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ãºà¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¹à¨â â â½æ±¥æ³ç¬ à¨â â â â ä
¸ã´ ç ã¬°ç¤ ââ½ã
¹â»ä
ºã´ ç¨ ã¬°à¨â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã¹â»äºã´ ç¨ ã¬°à¨â â â â ä¸ã´ ç ã¬±ç¤ ââ½ã
¹â»äºã´ ç¨ ã¬°à¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ã¸à¨â â â â æ³æ±¡ã
¥ã´ ç æ
£æ¬ã¹à¨â â â â æ³æ±¡ã¥ã´ ç æ
£æ¬ãºà¨â â ൽââ æ 湯ç³æ 潬ç¡â³ã£ã°ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã¸â¬ã¹â¬ãºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ã
£ã±ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ã
¸â¬ã
¹â¬ã
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ä
£â ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ä
¸â¬ä
¹â¬ä
ºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ä£â ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ä¸â¬ä¹â¬äºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 湯ç³æ 潬ç¡â³ä£â ã´ æ° çµæ³æç¥çæ¡æ¬æ°¨çµâ¬ä¸â¬ä¹â¬äºâ¬ç¬å´ç©©ã¥â¬ç¬å´ç©©ã¥â¤±à´»ââ æ 潬ç¡â³ã£à¨â â â¹£â¸â½ã£ã°ç ®â¬ â ä£ç ®â´ æ ã°â¸°â¥¸â¨ ç æ
£æ¬â°â«æ¨ã±â¸±â¸âä£ç ®â©âªæ³æ±¡ã¥â¬ â ä
£ç ®â´ æ ã°â¸°â¥¸â¨ ç æ
£æ¬â±â«æ¨â¹â¸âä
£ç ®â´ æ â¹â¸â«ã£ã°ç ®â©âªæ³æ±¡ã¥â¨ ç æ
£æ¬ã¬±à¨â â â¹£â¹â½ã£ã°ç¤®â¬ â ä£ç¤®â´ æ ã°â¸°â¥¹â¨ ç æ
£æ¬â°â«æ¨ã±â¸±â¹âä£ç¤®â©âªæ³æ±¡ã¥â¬ â ä
£ç¤®â´ æ ã°â¸°â¥¹â¨ ç æ
£æ¬â±â«æ¨â¹â¹âä
£ç¤®â´ æ â¹â¹â«ã£ã°ç¤®â©âªæ³æ±¡ã¥â¨ ç æ
£æ¬ã¬±à¨â â â¹£âºâ½ã£ã°ç¨®â¬ â ä£ç¨®â´ æ ã°â¸°â¥ºâ¨ ç æ
£æ¬â°â«æ¨ã±â¸±âºâä£ç¨®â©âªæ³æ±¡ã¥â¬ â ä
£ç¨®â´ æ ã°â¸°â¥ºâ¨ ç æ
£æ¬â±â«æ¨â¹âºâä
£ç¨®â´ æ â¹âºâ«ã£ã°ç¨®â©âªæ³æ±¡ã¥â¨ ç æ
£æ¬ã¬±à¨â â æ²ç´æ¹²æ à´»ç´à¨à¨ä½ä½åä
äää¹â汦æ
¯ã´æ° çµæ³æ¥ç®ç¥å½°ç°ç©â¡æ±¦æ
¯ã´æ¤ â±®æ 湯ç³ä° åäâæ°ªçµâ¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¬æ½£ç®â´æ¹©â´ç¬å´ç©©ã¥â¤±ç¬ à¨â â æ½£ç®â´æ¹©â´ã¸ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç ®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¸ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç ®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ã¹ã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¤®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
¹ã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¤®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ¹©â´ãºã´ æ° çµæ³çæ²å½¶æ©â¡¸æ¹©ç¨®ã¬©à¨â â æ½£ç®â´æ¹©â´ã
ºã´ æ° çµæ³æ¹ç¡¥å½´æ©â¡¸æ¹©ç¨®â¬ç¬å´ç©©ã¥ã¬©à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç¡¥ã´ æ¤ â¹®â¸âã¸à´»ââ æ 湯ç³æ 潬ç¡ç æ
£æ¬â¹â½æ¹©ç¤®â´ ç¤ ã¬°à¨â â æ½£ç®â´æ±¦æ
¯â´æ³æ±¡ç©¥ã´ æ¤ â¹®âºâãºà´»ââ æ 潬ç¡ç æ
£æ¬â°°ç æ
£æ¬ã¬²à¨â â 湩â´ä
¸â¬ä
¹â¬ä
ºâ¬ä¸â¬ä¹â¬äºà´»à´ââ æ¤ â¦ç¨æ
£æ¬âºâ¾æ³æ±¡ç¡¥â©àµ»ââ â â ç æ
£æ¬â°â½æ³æ±¡ç©¥à´»ââ â â ç æ
£æ¬â²â½æ³æ±¡ç¡¥à´»ââ â â ç ââ½ã¸â»ä
¹ã´ ç¤ ã¬±ç¨ ââ½ã
ºà´»ââ â â ç ââ½ã¸â»ä¹ã´ ç¤ ã¬°ç¨ ââ½ã
ºà´»ââ ç´ æ ç¬â¥àµ»ââ â â ç æ
£æ¬â°â½æ³æ±¡ç¡¥à´»ââ â â ç æ
£æ¬â²â½æ³æ±¡ç©¥à´»ââ â â ç ââ½ã
¸â»ä
¹ã´ ç¤ ã¬±ç¨ ââ½ãºà´»ââ â â ç ââ½ã
¸â»ä¹ã´ ç¤ ã¬°ç¨ ââ½ãºà´»ââ ç´ à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã°â°â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°°ç¤ â°°ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã°â°â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°°ç¤ â°±ç¨ â°°æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â±â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°±ç¤ â°°ç¨ â°±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ã±â±â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â°±ç¤ â°±ç¨ â°±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ââ â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â±ç¤ â±ç¨ â±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â æ½£ç®â´æ±¦æ
¯ã´æ ââ â½ç¬ã´å½¤æ§å½´æ
´æ±¢â¡¥ç¬â±´ç â±ç¤ â±ç¨ â±æ° çµæ¥æºâ°°æ° çµæ¥æºã°ã¬©à¨â â 汦æ
¯ã´æ à´»ââ æ ç ®ã´ æ ã°â¸°â¸â«æ¨â¹â¸âã£ã°ç ®â©âªæ³æ±¡ã¥â¬ â ã
£ã°ç ®â´ æ â¹â¥¸â¨ ç æ
£æ¬â²â«æ¨ã°â¸°â¸âã£ã°ç ®â©âªæ³æ±¡ç¥¥â¬ â ã£ã°ç ®â´ æ ã°â¸°â¸âä£ç ®â¬ æ â¹â¥¸â¨ ç æ
£æ¬â°âªæ³æ±¡ç¥¥â¬ â ä£ç ®â´ æ â¹â¸âã
£ã°ç ®â¬ æ ã±â¸±â¥¸â¨ ç æ
£æ¬â²âªæ³æ±¡ç¥¥à´»ââ æ 礮㴠æ ã°â¸°â¹â«æ¨â¹â¹âã£ã°ç¤®â©âªæ³æ±¡ã¥â¬ â ã
£ã°ç¤®â´ æ â¹â¥¹â¨ ç æ
£æ¬â²â«æ¨ã°â¸°â¹âã£ã°ç¤®â©âªæ³æ±¡ç¥¥â¬ â ã£ã°ç¤®â´ æ ã°â¸°â¹âä£ç¤®â¬ æ â¹â¥¹â¨ ç æ
£æ¬â°âªæ³æ±¡ç¥¥â¬ â ä£ç¤®â´ æ â¹â¹âã
£ã°ç¤®â¬ æ ã±â¸±â¥¹â¨ ç æ
£æ¬â²âªæ³æ±¡ç¥¥à´»ââ æ 種㴠æ ã°â¸°âºâ«æ¨â¹âºâã£ã°ç¨®â©âªæ³æ±¡ã¥â¬ â ã
£ã°ç¨®â´ æ â¹â¥ºâ¨ ç æ
£æ¬â²â«æ¨ã°â¸°âºâã£ã°ç¨®â©âªæ³æ±¡ç¥¥â¬ â ã£ã°ç¨®â´ æ ã°â¸°âºâä£ç¨®â¬ æ â¹â¥ºâ¨ ç æ
£æ¬â°âªæ³æ±¡ç¥¥â¬ â ä£ç¨®â´ æ â¹âºâã
£ã°ç¨®â¬ æ ã±â¸±â¥ºâ¨ ç æ
£æ¬â²âªæ³æ±¡ç¥¥à´»ââ ç ç¥çµâ®ã£à¨àµ½à´çç´æµâ´ää汯ç¯ç³æ¡ä¥ç¥æ
æ
²çç¬ à¨â â 湩â´ç¬å½´æ¯ç¦ç¥à´»ââ æ¤ ç®ç æ²ç¬å½´æ¯ç¦ç¥à´»ââ â¼ â¯ë¯¤î¦¥è¶è£æ¾¯æ¦æ³î´êºê§îºé¦ë·¤î꺽è£î«èè£î¼ë¾à¨â â ⼯î èè£î¼ë¾è£î®éè£îëªè£îë¦ë¦îê¾ë£¤î¢é¢¨è£î¦®êé¦î°éè¿¥îê
à¨ã½à¨à¨æ±¦æ
¯â´æªç¥æå¶ç¡æµ¡å³æ²ç¬â¡´æ½¶æ©â¨ å½æ²ç³æ¥²ç£å½ç ç´â©àµ»ââ ç ç¥çµâ®æ¨æ½¬ç¡â¨ â ©æ¨æ
¨â²â¤ªç°â²â«â ¨ää汯ç¯ç³æ¡ä¥ç¥æ
æ
²ç⨠ç©ç´â´©ç¾æ²ç¬å½´æ¯ç¦ç¥ã¬©à¨àµ½à´æ湯ç³æ 潬ç¡â¨ æ§ä´ç¥æ
æ
²ççæ±¥çµæ¨æ¹¯ç³ç 楯â¤å¼ªçç¥ç´æ©å½´âç°â¥²ç¬ à¨â â æ²ç´æ¹²â æ½£ç®â´æ±¦æ
¯â´â¤ªâ ¨æ½£ç®â´æ¡£ç¡â¨ ç©ç´â¬ â å¨å¥æ½æ½¬ç²æ
°æ£æå¶ç¡æµ¡â³â¤ªç°â¥²ã¸ç°æ±¥çµæ½æ¦æ³â¥´à´»ç´à¨à¨ååä
⨠æ§ä´ç¥æ
æ
²çç⡴潶æ©â¨ å½æ²ç³æ¥²ç£å½ç ç´â©àµ»ââ ç ç¥çµâ®ä°¨åäâ⤪⠨档ç¡â¨ ç©ç´â¬ â å¨å¥æ½æ½¬ç²æ
°æ£æå¶ç¡æµ¡â³â¤ªç°â¥²ã¸ç¬å½´æ¯ç¦ç¥ã¬©à¨àµ½à´æ湯ç³ä° åäâæªç¥æå¶ç¡æµ¡ä±³çµæ¨æ¹¯ç³ç 楯â¤å¼ªçç¥ç´æ©å½´âç°â¥²ç¬ à¨â â æ²ç´æ¹²â æ½£ç®â´ååä
⨠⠩æ¨æ¹¯ç³æ æ
¨â²â¤ªç°â²â«â ¨ää汯ç¯ç³æ¡ä¥ç¥æ
æ
²ç⨠ç©ç´â´©æ°¾çµæ½æ¦æ³â¥´à´»ç´à¨à¨æ¤£æ®ç¬æ¤ã° ç³æ¥¤ç®æ ®à¨¾å¼æç¥æ©å½¥âå½æ¹©æ¥¬æ®å½æ潬ç¡â³æ½£ç®ç¥å½´æ½£æ½¬ç²æ
°æ£æçµæ½´â¡æ±¦æ
¯ã´ç â¬æ½£ç®â´ää汯ç¯ç³æ¡ä¥ç¥æ
æ
²ç⨠å½æ²ç³æ¥²ç£å½ç ç¡æµ¡â¥³ç¬ à¨â â à©»â â â â 汦æ
¯â´åå´³ãââ½à©»â â â â â â â»æ¸æ¹¡æ¤¨æ®æ©â¬æ¸æ¹¡æ¤¨æ®æ©â¬æ¸æ¹¡æ¤¨æ®æ©ç´ ਬâ â â â â â â»æ¸æ¹¡æ¤¨æ®æ©â¬æ¸æ¹¡æ¤¨æ®æ©â¬æ¸æ¹¡æ¤¨æ®æ©ç´ ਬâ â â â â â â»æ¸æ¹¡æ¤¨æ®æ©â¬æ¸æ¹¡æ¤¨æ®æ©â¬æ¸æ¹¡æ¤¨æ®æ©ç´ ââ â â ç´ à¨»â â â â â¸â½æ
ç´ç¡©æµæ±µæ´¨â¬â¥¸à¨»â â ੽ââ ç¬ â¼ æ°¯æ¹©æ
¥âµ²æ¾æµ¡æ
ââ â â æ 湯ç³æ 潬ç¡ç æ²çæ
£æ¬â²ã´ ã ã®ã°ã°ã°ã°ã°ã°ã°æ°ãæ²à¨»â â â â æ½£ç®â´æ±¦æ
¯â´æ½°ç³çæ
£æ¬â²â½â¸±ã°ã°ã°ã°ã°ã°ã°ã°â¥ã°ã¦ââ â â ç ç ®ã´ ç ç¯å½´æ³æ±¡ç¥â¨ ç å½´ã²ã¸æ¥ç®ç¥æ³æç¯â¡¦ç ç ®â¨ ç æ²çæ
£æ¬â²ã¬©ââ â â ç 礮㴠ç ç¯å½´æ³æ±¡ç¥â¨ ç å½´ã²ã¸æ¥ç®ç¥æ³æç¯â¡¦ç 礮⨠ç æ²çæ
£æ¬â²ã¬©ââ â â ç 種㴠ç ç¯å½´æ³æ±¡ç¥â¨ ç å½´ã²ã¸æ¥ç®ç¥æ³æç¯â¡¦ç 種⨠ç æ²çæ
£æ¬â²ã¬©ââ ç´ à¨â â à©»â â â â 汦æ
¯â´åå´³ãââ½à©»â â â â â â â»â¸²ã¶ã¤¶ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹âµ¥ã°â±¦ã ã®ã¤·ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹æ´ãæ±â¬â¸µã¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹ã¤¹âµ¥ã°â¦â±½ââ â â â â ç¬ â´ â¸±ã¤³ã¶ã°ã¶ã·ã¹ãµã¶âµ¥ã°â±¦â´ ⸳ã¶ã³ã¤¹ã³ã ²ã°ã ´ã³âµ¥ã°â±¦ã ã®ã°ã°ã°ã°ã°ã°ã°æ°ãæ±ç´ ਬâ â â â â â â»â¸µã°ã°ã°ã°ã°ã°ã°ã°âµ¥ã°â±¦â´ ⸴㤵㠷ãµã°ã¤µã ·ãµã°âµ¥ã°â±¦â´ ⸴ã°ã±ã¤²ãµã°ã±ã¤²ãµâµ¥ã°â¦à©½â â â â ã½ââ â â ç ã´ æ´ ç¡æ¥²å½¸ç⡬â±ç 㬩ââ ç´ à¨â â â»â¼¯æ
²æ®â¥æ±¦æ
¯âµ´æ¤¾ç®ââ â â æ 湯ç³æ 潬ç¡ç 湡æ§ç¥â ã´ ã ã®ã°ã´ã°ã°ã°ã°ã°æ°ã«æ´à¨»â â â â æ½£ç®â´æ±¦æ
¯â´æ¯ç¦ç¥ç¥â â½â¸´ã¤°ã¶ã°ã°ã°ã°ã°ã°â¥ã°ã¦ââ â â æ 湯ç³æ 潬ç¡ç 湡æ§çâ¶ã´ ã ã®ã³ã´ã°ã°ã°ã°ã°æ°ã«æ´à¨»â â â â æ½£ç®â´æ±¦æ
¯â´æ¯ç¦ç¥çâ¶â½â¸³ã²ã ¶ã°ã°ã°ã°ã°ã°â¥ã°ã¦ââ â â ç ç ®ã´ ç ç ®â¨ ç 湡æ§ç¥â â«æ¯ç¦ç¥ç¥à¨»â â â â ⹸â¹â½â¹¸â¹âªæ
²æ®å½¥çµâ¬ æ¼ æ¦æ³å½´çµà¨»â â â â ⹸âºâ½â¹¸âºâªæ
²æ®å½¥çµâ¬ æ¼ æ¦æ³å½´çµà¨»â â ੽ââ ç ç¥çµâ®ã¸ç´à¨ç³ç¡æ©æ 湯ç³æ¤ ç®å å¡åå
ååä
ââ½ã¬´à¨æ´çæ
¬æ´ç¼ç¹æ¹¥æµ¡â¥ã¹å¼ æç¥æ©å½¥âå½æ¹©æ¥¬æ®å½å ç å¯ç¡©æ¨æ½¬ç¡ç â©â»æ²ç´æ¹²â â¥æ±£æµ¡â¡°ç ¨â©â«â¸°æµâ¬â¸°æ°â¬ã¨ã°¼ç¨ç©©æ½¥â¡¦â¥ã ªâ¤©â´ ã ã®â¥¦â»à©½æ´çæ
¬æ´ã¸¼å¼ æç¥æ©å½¥âå½æ¹©æ¥¬æ®å½æ 潬ç¡â æ½´æ¥ã±¸æ±¦æ
¯ã¹´â 汦æ
¯â´â¥¸ç¬ ç ç¥çµâ®ã¸ç´ à¨æ´çæ
¬æ´ç¼ç¹æ¹¥æµ¡â¥ç¥æ°çâ±´ç ç¹æ¹¥æµ¡â¥ç¥æ°æ¹à¨¾å½æ±§æ¯æ±¡å½ç 楯â¤æ«æ¹²æ±¥æ汩æ´â¡²ââ ç 湩㡴ç⨠å½æ²ç³æ¥²ç£å½ç ç奴â¬æ¥µç®å¼¸â´å¼ªçç¥ç´æ©å½´âä°ç³â±ç 湩㡴ç⨠å½æ²ç³æ¥²ç£å½ç çå´à¨¬â â æ½£ç®â´æ¹©â´ç¤å´ç©æ¡£â¬æ½£ç®â´æ¹©â´ç¤å´æ©æ¡´â¬æ½£ç®â´æ¹©â´ç¤ä¡´æ¥¥æ¡§â±´ââ æ 湯ç³ç 湩㡴ç⨠å½æ²ç³æ¥²ç£å½ç ç奣â¬æ½£ç®â´æ¥µç®å¼¸â´å¼ªçç¥ç´æ©å½´âå°æ²â±æ 湯ç³ç 湩㡴ç⨠å½æ²ç³æ¥²ç£å½ç çå£à¨¬â â æ½£ç®â´æ¹©â´ç³å£ç©æ¡£â¬æ½£ç®â´æ¹©â´ç³å£æ©æ¡´â¬æ½£ç®â´æ¹©â´ç³ä¡£æ¥¥æ¡§â±´æ 潯â¬ç³ä¥£ç®ç¥æ
¬æ£â±¤ââ æ 湯ç³å å¥æ½æ½¬ç²æ
°æ£æå¶ç¡æµ¡â³å¼ªçç¥ç´æ©å½´âæ
°æ
²çâ©à©»â â æ½£ç®â´æ¹©â´ç¡©ã´ â æ±¢æ¯ä¥«ç¡¤ç ®â¨ æ 潬æ£æ¥â¹â¸â«æ¡´æ²æ¡æ⹸⥸⨠å å¡åå
ååä
ãââ æ 湯ç³æ¤ ç®æ¤ â¹â½æ 潬æ£æ⹸â¹âªæ±¢æ¯ä«æµ©ç¤®â¬ ç ç¨æ
¥ä¥¤ç¡¤ç¤®à¨»ââ ç ç´æµâ´å½æ±¡æ©å½®â¡æ¥³æºæ¯å¨ç¹ä¥¥â¥®â¨ ã â©ç¥æ°æ¹â´à©»â â â â ç¥æ°æ¹ç â¬â±¹ç¨ â¬ã·ââ ç´ à¨»ââ ç ç´æµâ´å½æ±¡æ©å½®â¡æ¥³æºæ¯å¨ç¹ä½¥çµâ©âªâ¤´å ç¹ä½¥çµâ´à©»â â â â ç¥æ°çâ´â±¸ç¤ â¬â±ºç ਻â â ã½à¨â â æ©â ç¡©ã° æ ç³æ¥ç¤â¨â¦æ¤ â¹â¼ç¤ä¡´æ¥¥æ¡§â¥´ç¬ à¨â â â â ç¥æ°æ¹â´ç³å¥£ã´ ⨠å¨ç¹ä¥¥ã®â¨ â ©å°æ²ââ«ç¥©â¨ ç æ²æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°æ¹â¤©à¨»â â â â ç¥æ°æ¹â´ç³å£ã´ ⨠å¨ç¹ä¥¥ã®â¨ â ©å°æ²ââ«ç¥©â¨ ç æ²æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°æ¹â¤©à¨»â â â â ç¥æ°æ¹â´ç³å£ã´ ⨠å¨ç¹ä¥¥ã®â¨ â ©å°æ²ââ«ç¥©â¨ ç æ²æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°æ¹â¤©à¨»ââ â â æ 潬ç¡â³æ¥°ã¸ã´ æ´ æ¡å½¥æ±¦æ
¯ã´â ¨æ±¦æ
¯â¥´ç³å¥£ç ®â¬æ¨æ½¬ç¡ç©æ²â¹â±¸â 汦æ
¯â¥´ç³å£ç ®ã¬©ââ â â æ 潬ç¡â³æ¥°ã
¸ã´ æ´ æ¡å½¥æ±¦æ
¯ã´â ¨æ±¦æ
¯â¥´ç³å¥£ç¤®â¬æ¨æ½¬ç¡ç©æ²â¹â±¹â 汦æ
¯â¥´ç³å£ç¤®ã¬©ââ â â æ 潬ç¡â³æ¥°ã¸ã´ æ´ æ¡å½¥æ±¦æ
¯ã´â ¨æ±¦æ
¯â¥´ç³å¥£ç¨®â¬æ¨æ½¬ç¡ç©æ²â¹â±ºâ 汦æ
¯â¥´ç³å£ç¨®ã¬©ââ â â æ 潬ç¡â³æ¥°ã¸ã´ æ´ æ¡å½¥æ±¦æ
¯ã´â ¨æ±¦æ
¯â¥´ç³å¥£ç®â¬æ¨æ½¬ç¡ç©æ²â¹â±·â 汦æ
¯â¥´ç³å£ç®ã¬©à¨â â â â 楰ã¸ã´ æ 湯æ¶ç²æ汯ç¯ç³æ¡å½¥ç£ç³æµ¯ç¨ç¡©â°°ç ç¡æµ¡â¥³à¨»â â â â 楰ã
¸ã´ æ 湯æ¶ç²æ汯ç¯ç³æ¡å½¥ç£ç³æµ¯ç¨ç¡©â°±ç ç¡æµ¡â¥³à¨»â â â â 楰ã¸ã´ æ 湯æ¶ç²æ汯ç¯ç³æ¡å½¥ç£ç³æµ¯ç¨ç¡©â°²ç ç¡æµ¡â¥³à¨»â â â â 楰ã¸ã´ æ 湯æ¶ç²æ汯ç¯ç³æ¡å½¥ç£ç³æµ¯ç¨ç¡©â°³ç ç¡æµ¡â¥³à¨»ââ â â å ç¹ä½¥çµâ´ç¤å¥´â¬ç¤å´â¬ç¤å´à¨»â â â â ç¤å¥´ç ®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã¸ç ®ã¬©æ ç³â¹â¸â½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸°â¥¹â»ç¤å´ç ®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã¸ç¨®ã¬©ââ â â æ ç³â¹â¹â½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸±â¥¸â»ç¤å´ç¤®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã
¸ç¤®ã¬©æ ç³â¹â¹â½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸±â¥ºà¨»â â â â ç¤å¥´ç¨®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã¸ç ®ã¬©æ ç³â¹âºâ½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸²â¥¹â»ç¤å´ç¨®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã¸ç¨®ã¬©ââ â â æ ç³â¹â·â½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸³â¥¸â»ç¤å´ç®ã´ ç å¯ç¡©å¼ç¹ä½¥çµâ ¾æ¥°ã¸ç¤®ã¬©æ ç³â¹â·â½æ½´æ¥ã±¸ç¥æ°çã¹´ç¨ç¡©â¸³â¥ºà¨»ââ â â å ç¹ä½¥çµâ´çªç´ç奴㴠â ç¥æ°çã´â¨ â ©ä°ç³ââ«ç¥©â¨ æ ç³æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°ç⥴㬩ââ â â å ç¹ä½¥çµâ´çªç´çå´ã´ â ç¥æ°çã´â¨ â ©ä°ç³ââ«ç¥©â¨ æ ç³æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°ç⥴㬩ââ â â å ç¹ä½¥çµâ´çªç´çå´ã´ â ç¥æ°çã´â¨ â ©ä°ç³ââ«ç¥©â¨ æ ç³æ¥æ´â¨â«ç¡©â¨ ç 穩潥⡦ç¥æ°ç⥴㬩à¨â â â â ç°ä²ç³åå´°ã´ æ ç³ãââ â â ç ç´çå´ãââ½ç¤å´à¨»â â â â ç°ä²ç³åå´°ã´ æ ç³ãââ ç´ ç´à¨»È
colorspace_conv: failed to build program source.
colorspace_conv: Runtime compilation failed
colorspace_conv: ---------------------------------------
colorspace_conv: --- Source of colorspace_conv ---
colorspace_conv: ---------------------------------------
colorspace_conv: 1 #ifndef _JITIFY_INCLUDE_GUARD_3F6B24FAF8F3CEB7
colorspace_conv: 2 #define _JITIFY_INCLUDE_GUARD_3F6B24FAF8F3CEB7
colorspace_conv: 3 #ifdef __CUDACC_RTC__
colorspace_conv: 4 #define COLORSPACE_FUNC __device__ __inline__
colorspace_conv: 5 #else
colorspace_conv: 6 #define COLORSPACE_FUNC static
colorspace_conv: 7 #include
colorspace_conv: 8 #include
colorspace_conv: 9 _Pragma("warning") (push)
colorspace_conv: 10 _Pragma("warning") (disable: 4819)
colorspace_conv: 11 #include
colorspace_conv: 12 _Pragma("warning") (pop)
colorspace_conv: 13 #endif
colorspace_conv: 14
colorspace_conv: 15 typedef float4 LUTVEC;
colorspace_conv: 16
colorspace_conv: 17 #ifndef clamp
colorspace_conv: 18 #define clamp(x, low, high) (((x) <= (high)) ? (((x) >= (low)) ? (x) : (low)) : (high))
colorspace_conv: 19 #endif
colorspace_conv: 20
colorspace_conv: 21
colorspace_conv: 22 const float REC709_ALPHA = 1.09929682680944f;
colorspace_conv: 23 const float REC709_BETA = 0.018053968510807f;
colorspace_conv: 24
colorspace_conv: 25 const float SMPTE_240M_ALPHA = 1.111572195921731f;
colorspace_conv: 26 const float SMPTE_240M_BETA = 0.022821585529445f;
colorspace_conv: 27
colorspace_conv: 28 // Adjusted for continuity of first derivative.
colorspace_conv: 29 const float SRGB_ALPHA = 1.055010718947587f;
colorspace_conv: 30 const float SRGB_BETA = 0.003041282560128f;
colorspace_conv: 31
colorspace_conv: 32 const float ST2084_M1 = 0.1593017578125f;
colorspace_conv: 33 const float ST2084_M2 = 78.84375f;
colorspace_conv: 34 const float ST2084_C1 = 0.8359375f;
colorspace_conv: 35 const float ST2084_C2 = 18.8515625f;
colorspace_conv: 36 const float ST2084_C3 = 18.6875f;
colorspace_conv: 37
colorspace_conv: 38 const float ARIB_B67_A = 0.17883277f;
colorspace_conv: 39 const float ARIB_B67_B = 0.28466892f;
colorspace_conv: 40 const float ARIB_B67_C = 0.55991073f;
colorspace_conv: 41
colorspace_conv: 42 const float FLOAT_EPS = 1.175494351e-38f;
colorspace_conv: 43
colorspace_conv: 44 const float MP_REF_WHITE = 203.0f;
colorspace_conv: 45 const float MP_REF_WHITE_HLG = 3.17955f;
colorspace_conv: 46
colorspace_conv: 47 // Common constants for SMPTE ST.2084 (HDR)
colorspace_conv: 48 const float PQ_M1 = 2610.0f / 4096.0f * 1.0f / 4.0f;
colorspace_conv: 49 const float PQ_M2 = 2523.0f / 4096.0f * 128.0f;
colorspace_conv: 50 const float PQ_C1 = 3424.0f / 4096.0f;
colorspace_conv: 51 const float PQ_C2 = 2413.0f / 4096.0f * 32.0f;
colorspace_conv: 52 const float PQ_C3 = 2392.0f / 4096.0f * 32.0f;
colorspace_conv: 53
colorspace_conv: 54 // Chosen for compatibility with higher precision REC709_ALPHA/REC709_BETA.
colorspace_conv: 55 // See: ITU-R BT.2390-2 5.3.1
colorspace_conv: 56 const float ST2084_OOTF_SCALE = 59.49080238715383f;
colorspace_conv: 57
colorspace_conv: 58 COLORSPACE_FUNC float rec_709_oetf(float x) {
colorspace_conv: 59 if (x < REC709_BETA)
colorspace_conv: 60 x = x * 4.5f;
colorspace_conv: 61 else
colorspace_conv: 62 x = REC709_ALPHA * powf(x, 0.45f) - (REC709_ALPHA - 1.0f);
colorspace_conv: 63
colorspace_conv: 64 return x;
colorspace_conv: 65 }
colorspace_conv: 66
colorspace_conv: 67 COLORSPACE_FUNC float rec_709_inverse_oetf(float x) {
colorspace_conv: 68 if (x < 4.5f * REC709_BETA)
colorspace_conv: 69 x = x / 4.5f;
colorspace_conv: 70 else
colorspace_conv: 71 x = powf((x + (REC709_ALPHA - 1.0f)) / REC709_ALPHA, 1.0f / 0.45f);
colorspace_conv: 72
colorspace_conv: 73 return x;
colorspace_conv: 74 }
colorspace_conv: 75
colorspace_conv: 76 // Ignore the BT.1886 provisions for limited contrast and assume an ideal CRT.
colorspace_conv: 77 COLORSPACE_FUNC float rec_1886_eotf(float x) {
colorspace_conv: 78 return x < 0.0f ? 0.0f : powf(x, 2.4f);
colorspace_conv: 79 }
colorspace_conv: 80
colorspace_conv: 81 COLORSPACE_FUNC float rec_1886_inverse_eotf(float x) {
colorspace_conv: 82 return x < 0.0f ? 0.0f : powf(x, 1.0f / 2.4f);
colorspace_conv: 83 }
colorspace_conv: 84
colorspace_conv: 85 COLORSPACE_FUNC float ootf_1_2(float x) {
colorspace_conv: 86 return x < 0.0f ? x : powf(x, 1.2f);
colorspace_conv: 87 }
colorspace_conv: 88
colorspace_conv: 89 COLORSPACE_FUNC float inverse_ootf_1_2(float x) {
colorspace_conv: 90 return x < 0.0f ? x : powf(x, 1.0f / 1.2f);
colorspace_conv: 91 }
colorspace_conv: 92
colorspace_conv: 93 COLORSPACE_FUNC float ootf_st2084(float x) {
colorspace_conv: 94 return rec_1886_eotf(rec_709_oetf(x * ST2084_OOTF_SCALE)) / 100.0f;
colorspace_conv: 95 }
colorspace_conv: 96
colorspace_conv: 97 COLORSPACE_FUNC float inverse_ootf_st2084(float x) {
colorspace_conv: 98 return rec_709_inverse_oetf(rec_1886_inverse_eotf(x * 100.0f)) / ST2084_OOTF_SCALE;
colorspace_conv: 99 }
colorspace_conv: 100
colorspace_conv: 101 COLORSPACE_FUNC float log100_oetf(float x) {
colorspace_conv: 102 return x <= 0.01f ? 0.0f : 1.0f + log10f(x) * (1.0f / 2.0f);
colorspace_conv: 103 }
colorspace_conv: 104
colorspace_conv: 105 COLORSPACE_FUNC float log100_inverse_oetf(float x) {
colorspace_conv: 106 return x <= 0.0f ? 0.01f : powf(10.0f, 2 * (x - 1.0f));
colorspace_conv: 107 }
colorspace_conv: 108
colorspace_conv: 109 COLORSPACE_FUNC float log316_oetf(float x) {
colorspace_conv: 110 return x <= 0.00316227766f ? 0.0f : 1.0f + log10f(x) * (1.0f / 2.5f);
colorspace_conv: 111 }
colorspace_conv: 112
colorspace_conv: 113 COLORSPACE_FUNC float log316_inverse_oetf(float x) {
colorspace_conv: 114 return x <= 0.0f ? 0.00316227766f : powf(10.0f, 2.5f * (x - 1.0f));
colorspace_conv: 115 }
colorspace_conv: 116
colorspace_conv: 117 COLORSPACE_FUNC float rec_470m_oetf(float x) {
colorspace_conv: 118 return x < 0.0f ? 0.0f : powf(x, 2.2f);
colorspace_conv: 119 }
colorspace_conv: 120
colorspace_conv: 121 COLORSPACE_FUNC float rec_470m_inverse_oetf(float x) {
colorspace_conv: 122 return x < 0.0f ? 0.0f : powf(x, 1.0f / 2.2f);
colorspace_conv: 123 }
colorspace_conv: 124
colorspace_conv: 125 COLORSPACE_FUNC float rec_470bg_oetf(float x) {
colorspace_conv: 126 return x < 0.0f ? 0.0f : powf(x, 2.8f);
colorspace_conv: 127 }
colorspace_conv: 128
colorspace_conv: 129 COLORSPACE_FUNC float rec_470bg_inverse_oetf(float x) {
colorspace_conv: 130 return x < 0.0f ? 0.0f : powf(x, 1.0f / 2.8f);
colorspace_conv: 131 }
colorspace_conv: 132
colorspace_conv: 133 COLORSPACE_FUNC float smpte_240m_oetf(float x) {
colorspace_conv: 134 if (x < 4.0f * SMPTE_240M_BETA)
colorspace_conv: 135 x = x * (1.0f / 4.0f);
colorspace_conv: 136 else
colorspace_conv: 137 x = powf((x + (SMPTE_240M_ALPHA - 1.0f)) / SMPTE_240M_ALPHA, 1.0f / 0.45f);
colorspace_conv: 138
colorspace_conv: 139 return x;
colorspace_conv: 140 }
colorspace_conv: 141
colorspace_conv: 142 COLORSPACE_FUNC float smpte_240m_inverse_oetf(float x) {
colorspace_conv: 143 if (x < SMPTE_240M_BETA)
colorspace_conv: 144 x = x * 4.0f;
colorspace_conv: 145 else
colorspace_conv: 146 x = SMPTE_240M_ALPHA * powf(x, 0.45f) - (SMPTE_240M_ALPHA - 1.0f);
colorspace_conv: 147
colorspace_conv: 148 return x;
colorspace_conv: 149 }
colorspace_conv: 150
colorspace_conv: 151 COLORSPACE_FUNC float xvycc_oetf(float x) {
colorspace_conv: 152 return copysignf(rec_709_oetf(fabsf(x)), x);
colorspace_conv: 153 }
colorspace_conv: 154
colorspace_conv: 155 float xvycc_inverse_oetf(float x) {
colorspace_conv: 156 return copysignf(rec_709_inverse_oetf(fabsf(x)), x);
colorspace_conv: 157 }
colorspace_conv: 158
colorspace_conv: 159 COLORSPACE_FUNC float arib_b67_oetf(float x) {
colorspace_conv: 160 // Prevent negative pixels from yielding NAN.
colorspace_conv: 161 x = fmaxf(x, 0.0f);
colorspace_conv: 162
colorspace_conv: 163 if (x <= (1.0f / 12.0f))
colorspace_conv: 164 x = sqrtf(3.0f * x);
colorspace_conv: 165 else
colorspace_conv: 166 x = ARIB_B67_A * logf(12.0f * x - ARIB_B67_B) + ARIB_B67_C;
colorspace_conv: 167
colorspace_conv: 168 return x;
colorspace_conv: 169 }
colorspace_conv: 170
colorspace_conv: 171 COLORSPACE_FUNC float arib_b67_inverse_oetf(float x) {
colorspace_conv: 172 // Prevent negative pixels expanding into positive values.
colorspace_conv: 173 x = fmaxf(x, 0.0f);
colorspace_conv: 174
colorspace_conv: 175 if (x <= 0.5f)
colorspace_conv: 176 x = (x * x) * (1.0f / 3.0f);
colorspace_conv: 177 else
colorspace_conv: 178 x = (expf((x - ARIB_B67_C) / ARIB_B67_A) + ARIB_B67_B) * (1.0f / 12.0f);
colorspace_conv: 179
colorspace_conv: 180 return x;
colorspace_conv: 181 }
colorspace_conv: 182
colorspace_conv: 183 COLORSPACE_FUNC float srgb_eotf(float x) {
colorspace_conv: 184 if (x < 12.92f * SRGB_BETA)
colorspace_conv: 185 x *= (1.0f / 12.92f);
colorspace_conv: 186 else
colorspace_conv: 187 x = powf((x + (SRGB_ALPHA - 1.0f)) * (1.0f / SRGB_ALPHA), 2.4f);
colorspace_conv: 188
colorspace_conv: 189 return x;
colorspace_conv: 190 }
colorspace_conv: 191
colorspace_conv: 192 COLORSPACE_FUNC float srgb_inverse_eotf(float x) {
colorspace_conv: 193 if (x < SRGB_BETA)
colorspace_conv: 194 x = x * 12.92f;
colorspace_conv: 195 else
colorspace_conv: 196 x = SRGB_ALPHA * powf(x, 1.0f / 2.4f) - (SRGB_ALPHA - 1.0f);
colorspace_conv: 197
colorspace_conv: 198 return x;
colorspace_conv: 199 }
colorspace_conv: 200
colorspace_conv: 201 // Handle values in the range [0.0-1.0] such that they match a legacy CRT.
colorspace_conv: 202 COLORSPACE_FUNC float xvycc_eotf(float x) {
colorspace_conv: 203 if (x < 0.0f || x > 1.0f)
colorspace_conv: 204 return copysignf(rec_709_inverse_oetf(fabsf(x)), x);
colorspace_conv: 205 else
colorspace_conv: 206 return copysignf(rec_1886_eotf(fabsf(x)), x);
colorspace_conv: 207 }
colorspace_conv: 208
colorspace_conv: 209 COLORSPACE_FUNC float xvycc_inverse_eotf(float x) {
colorspace_conv: 210 if (x < 0.0f || x > 1.0f)
colorspace_conv: 211 return copysignf(rec_709_oetf(fabsf(x)), x);
colorspace_conv: 212 else
colorspace_conv: 213 return copysignf(rec_1886_inverse_eotf(fabsf(x)), x);
colorspace_conv: 214 }
colorspace_conv: 215
colorspace_conv: 216 //pq_space_to_linear
colorspace_conv: 217 COLORSPACE_FUNC float st_2084_eotf(float x) {
colorspace_conv: 218 // Filter negative values to avoid NAN.
colorspace_conv: 219 if (x > 0.0f) {
colorspace_conv: 220 float xpow = powf(x, 1.0f / ST2084_M2);
colorspace_conv: 221 float num = fmaxf(xpow - ST2084_C1, 0.0f);
colorspace_conv: 222 float den = fmaxf(ST2084_C2 - ST2084_C3 * xpow, FLOAT_EPS);
colorspace_conv: 223 x = powf(num / den, 1.0f / ST2084_M1);
colorspace_conv: 224 } else {
colorspace_conv: 225 x = 0.0f;
colorspace_conv: 226 }
colorspace_conv: 227
colorspace_conv: 228 return x;
colorspace_conv: 229 }
colorspace_conv: 230
colorspace_conv: 231 //linear_to_pq_space
colorspace_conv: 232 COLORSPACE_FUNC float st_2084_inverse_eotf(float x) {
colorspace_conv: 233 // Filter negative values to avoid NAN, and also special-case 0 so that (f(g(0)) == 0).
colorspace_conv: 234 if (x > 0.0f) {
colorspace_conv: 235 float xpow = powf(x, ST2084_M1);
colorspace_conv: 236 #if 0
colorspace_conv: 237 // Original formulation from SMPTE ST 2084:2014 publication.
colorspace_conv: 238 float num = ST2084_C1 + ST2084_C2 * xpow;
colorspace_conv: 239 float den = 1.0f + ST2084_C3 * xpow;
colorspace_conv: 240 x = powf(num / den, ST2084_M2);
colorspace_conv: 241 #else
colorspace_conv: 242 // More stable arrangement that avoids some cancellation error.
colorspace_conv: 243 float num = (ST2084_C1 - 1.0f) + (ST2084_C2 - ST2084_C3) * xpow;
colorspace_conv: 244 float den = 1.0f + ST2084_C3 * xpow;
colorspace_conv: 245 x = powf(1.0f + num / den, ST2084_M2);
colorspace_conv: 246 #endif
colorspace_conv: 247 } else {
colorspace_conv: 248 x = 0.0f;
colorspace_conv: 249 }
colorspace_conv: 250
colorspace_conv: 251 return x;
colorspace_conv: 252 }
colorspace_conv: 253
colorspace_conv: 254 // Applies a per-channel correction instead of the iterative method specified in Rec.2100.
colorspace_conv: 255 COLORSPACE_FUNC float arib_b67_eotf(float x) {
colorspace_conv: 256 return ootf_1_2(arib_b67_inverse_oetf(x));
colorspace_conv: 257 }
colorspace_conv: 258
colorspace_conv: 259 COLORSPACE_FUNC float arib_b67_inverse_eotf(float x) {
colorspace_conv: 260 return arib_b67_oetf(inverse_ootf_1_2(x));
colorspace_conv: 261 }
colorspace_conv: 262
colorspace_conv: 263 COLORSPACE_FUNC float st_2084_oetf(float x) {
colorspace_conv: 264 return st_2084_inverse_eotf(ootf_st2084(x));
colorspace_conv: 265 }
colorspace_conv: 266
colorspace_conv: 267 COLORSPACE_FUNC float st_2084_inverse_oetf(float x) {
colorspace_conv: 268 return inverse_ootf_st2084(st_2084_eotf(x));
colorspace_conv: 269 }
colorspace_conv: 270
colorspace_conv: 271 COLORSPACE_FUNC float3 aribB67Ops(float3 v, float kr, float kg, float kb, float scale) {
colorspace_conv: 272 const float gamma = 1.2f;
colorspace_conv: 273 float r = v.x * scale;
colorspace_conv: 274 float g = v.y * scale;
colorspace_conv: 275 float b = v.z * scale;
colorspace_conv: 276
colorspace_conv: 277 float yd = fmaxf(kr * r + kg * g + kb * b, FLOAT_EPS);
colorspace_conv: 278 float ys_inv = powf(yd, (1.0f - gamma) / gamma);
colorspace_conv: 279
colorspace_conv: 280 v.x = arib_b67_oetf(r * ys_inv);
colorspace_conv: 281 v.y = arib_b67_oetf(g * ys_inv);
colorspace_conv: 282 v.z = arib_b67_oetf(b * ys_inv);
colorspace_conv: 283 return v;
colorspace_conv: 284 }
colorspace_conv: 285
colorspace_conv: 286 COLORSPACE_FUNC float3 aribB67InvOps(float3 v, float kr, float kg, float kb, float scale) {
colorspace_conv: 287 const float gamma = 1.2f;
colorspace_conv: 288 float r = v.x;
colorspace_conv: 289 float g = v.y;
colorspace_conv: 290 float b = v.z;
colorspace_conv: 291
colorspace_conv: 292 float ys = fmaxf(kr * r + kg * g + kb * b, FLOAT_EPS);
colorspace_conv: 293 ys = powf(ys, gamma - 1.0f);
colorspace_conv: 294
colorspace_conv: 295 v.x = arib_b67_inverse_oetf(r * ys) * scale;
colorspace_conv: 296 v.y = arib_b67_inverse_oetf(g * ys) * scale;
colorspace_conv: 297 v.z = arib_b67_inverse_oetf(b * ys) * scale;
colorspace_conv: 298 return v;
colorspace_conv: 299 }
colorspace_conv: 300
colorspace_conv: 301 COLORSPACE_FUNC float3 matrix_mul(float m[3][3], float3 v) {
colorspace_conv: 302 float3 ret;
colorspace_conv: 303 ret.x = m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z;
colorspace_conv: 304 ret.y = m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z;
colorspace_conv: 305 ret.z = m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z;
colorspace_conv: 306 return ret;
colorspace_conv: 307 }
colorspace_conv: 308
colorspace_conv: 309 //åè: https://gist.github.com/4re/34ccbb95732c1bef47c3d2975ac62395
colorspace_conv: 310 COLORSPACE_FUNC float hable(float x, float A, float B, float C, float D, float E, float F) {
colorspace_conv: 311 return ((x*(A*x+C*B)+D*E) / (x*(A*x+B)+D*F)) - E/F;
colorspace_conv: 312 }
colorspace_conv: 313
colorspace_conv: 314 COLORSPACE_FUNC float hdr2sdr_hable(float x, float source_peak, float ldr_nits, float A, float B, float C, float D, float E, float F) {
colorspace_conv: 315 const float eb = source_peak / ldr_nits;
colorspace_conv: 316 const float t0 = hable(x, A, B, C, D, E, F);
colorspace_conv: 317 const float t1 = hable(eb, A, B, C, D, E, F);
colorspace_conv: 318 return t0 / t1;
colorspace_conv: 319 }
colorspace_conv: 320
colorspace_conv: 321 COLORSPACE_FUNC float hdr2sdr_mobius(float x, float source_peak, float ldr_nits, float t, float peak) {
colorspace_conv: 322 const float eb = source_peak / ldr_nits;
colorspace_conv: 323 peak *= eb;
colorspace_conv: 324 if (x <= t) {
colorspace_conv: 325 return x;
colorspace_conv: 326 }
colorspace_conv: 327
colorspace_conv: 328 float a = -t * t * (peak - 1.0f) / (t * t - 2.0f * t + peak);
colorspace_conv: 329 float b = (t * t - 2.0f * t * peak + peak) / fmaxf(peak - 1.0f, 1e-6f);
colorspace_conv: 330 return (b * b + 2.0f * b * t + t * t) / (b - a) * (x + a) / (x + b);
colorspace_conv: 331 }
colorspace_conv: 332
colorspace_conv: 333 COLORSPACE_FUNC float hdr2sdr_reinhard(float x, float source_peak, float ldr_nits, float offset, float peak) {
colorspace_conv: 334 const float eb = source_peak / ldr_nits;
colorspace_conv: 335 peak *= eb;
colorspace_conv: 336 return x / (x + offset) * (peak + offset) / peak;
colorspace_conv: 337 }
colorspace_conv: 338
colorspace_conv: 339 COLORSPACE_FUNC float linear_to_pq_space(float x) {
colorspace_conv: 340 if (x > 0.0f) {
colorspace_conv: 341 x *= MP_REF_WHITE / 10000.0f;
colorspace_conv: 342 x = powf(x, PQ_M1);
colorspace_conv: 343 x = (PQ_C1 + PQ_C2 * x) / (1.0f + PQ_C3 * x);
colorspace_conv: 344 x = powf(x, PQ_M2);
colorspace_conv: 345 return x;
colorspace_conv: 346 } else {
colorspace_conv: 347 return 0.0f;
colorspace_conv: 348 }
colorspace_conv: 349 }
colorspace_conv: 350
colorspace_conv: 351 COLORSPACE_FUNC float pq_space_to_linear(float x) {
colorspace_conv: 352 if (x > 0.0f) {
colorspace_conv: 353 x = powf(x, 1.0f / PQ_M2);
colorspace_conv: 354 x = fmaxf(x - PQ_C1, 0.0f) / (PQ_C2 - PQ_C3 * x);
colorspace_conv: 355 x = powf(x, 1.0f / PQ_M1);
colorspace_conv: 356 x *= 10000.0f / MP_REF_WHITE;
colorspace_conv: 357 return x;
colorspace_conv: 358 } else {
colorspace_conv: 359 return 0.0f;
colorspace_conv: 360 }
colorspace_conv: 361 }
colorspace_conv: 362
colorspace_conv: 363 COLORSPACE_FUNC float apply_bt2390(float x, const float maxLum) {
colorspace_conv: 364 const float ks = 1.5f * maxLum - 0.5f;
colorspace_conv: 365 float tb = (x - ks) / (1.0f - ks);
colorspace_conv: 366 float tb2 = tb * tb;
colorspace_conv: 367 float tb3 = tb2 * tb;
colorspace_conv: 368 float pb = (2.0f * tb3 - 3.0f * tb2 + 1.0f) * ks +
colorspace_conv: 369 (tb3 - 2.0f * tb2 + tb) * (1.0f - ks) +
colorspace_conv: 370 (-2.0f * tb3 + 3.0f * tb2) * maxLum;
colorspace_conv: 371 //x = mix(pb, x, lessThan(x, ks));
colorspace_conv: 372 x = (x < ks) ? x : pb;
colorspace_conv: 373 return x;
colorspace_conv: 374 }
colorspace_conv: 375
colorspace_conv: 376 COLORSPACE_FUNC float mix(float x, float y, float a) {
colorspace_conv: 377 a = (a < 0.0f) ? 0.0f : a;
colorspace_conv: 378 a = (a > 1.0f) ? 1.0f : a;
colorspace_conv: 379 return (x) * (1.0f - (a)) + (y) * (a);
colorspace_conv: 380 }
colorspace_conv: 381
colorspace_conv: 382 COLORSPACE_FUNC float lut3d_linear_interp(float v0, float v1, float a) {
colorspace_conv: 383 return v0 + (v1 - v0) * a;
colorspace_conv: 384 }
colorspace_conv: 385
colorspace_conv: 386 COLORSPACE_FUNC float3 lut3d_linear_interp(float3 v0, float3 v1, float a) {
colorspace_conv: 387 float3 r;
colorspace_conv: 388 r.x = lut3d_linear_interp(v0.x, v1.x, a);
colorspace_conv: 389 r.y = lut3d_linear_interp(v0.y, v1.y, a);
colorspace_conv: 390 r.z = lut3d_linear_interp(v0.z, v1.z, a);
colorspace_conv: 391 return r;
colorspace_conv: 392 }
colorspace_conv: 393
colorspace_conv: 394 COLORSPACE_FUNC int lut3d_prev_idx(float x) {
colorspace_conv: 395 return (int)x;
colorspace_conv: 396 }
colorspace_conv: 397
colorspace_conv: 398 COLORSPACE_FUNC int lut3d_near_idx(float x) {
colorspace_conv: 399 return (int)(x + 0.5f);
colorspace_conv: 400 }
colorspace_conv: 401
colorspace_conv: 402 COLORSPACE_FUNC int lut3d_next_idx(float x, int size) {
colorspace_conv: 403 int next = lut3d_prev_idx(x) + 1;
colorspace_conv: 404 return (next >= size) ? size - 1 : next;
colorspace_conv: 405 }
colorspace_conv: 406
colorspace_conv: 407 COLORSPACE_FUNC float lut3d_prelut(const float s, const int idx, const int size,
colorspace_conv: 408 const float prelutmin[3], const float prelutscale[3], const float *__restrict__ prelut) {
colorspace_conv: 409 const float x = clamp((s - prelutmin[idx]) * prelutscale[idx], 0.0f, (float)(size - 1));
colorspace_conv: 410 const float c0 = prelut[idx * size + lut3d_prev_idx(x)];
colorspace_conv: 411 const float c1 = prelut[idx * size + lut3d_next_idx(x, size)];
colorspace_conv: 412 return lut3d_linear_interp(c0, c1, x - lut3d_prev_idx(x));
colorspace_conv: 413 }
colorspace_conv: 414
colorspace_conv: 415 COLORSPACE_FUNC float3 lut3d_prelut(const float3 in, const int size,
colorspace_conv: 416 const float prelutmin[3], const float prelutscale[3], const float *__restrict__ prelut) {
colorspace_conv: 417 float3 out;
colorspace_conv: 418 out.x = lut3d_prelut(in.x, 0, size, prelutmin, prelutscale, prelut);
colorspace_conv: 419 out.y = lut3d_prelut(in.y, 1, size, prelutmin, prelutscale, prelut);
colorspace_conv: 420 out.z = lut3d_prelut(in.z, 2, size, prelutmin, prelutscale, prelut);
colorspace_conv: 421 return out;
colorspace_conv: 422 }
colorspace_conv: 423
colorspace_conv: 424 COLORSPACE_FUNC float3 lut3d_get_table(const LUTVEC *__restrict__ lut, const int x, const int y, const int z, const int lutSize0, const int lutSize01) {
colorspace_conv: 425 LUTVEC val = lut[x * lutSize01 + y * lutSize0 + z];
colorspace_conv: 426 float3 out;
colorspace_conv: 427 out.x = val.x;
colorspace_conv: 428 out.y = val.y;
colorspace_conv: 429 out.z = val.z;
colorspace_conv: 430 return out;
colorspace_conv: 431 }
colorspace_conv: 432
colorspace_conv: 433 COLORSPACE_FUNC float3 lut3d_interp_nearest(float3 in, const LUTVEC *__restrict__ lut, const int lutSize0, const int lutSize01) {
colorspace_conv: 434 return lut3d_get_table(lut, lut3d_near_idx(in.x), lut3d_near_idx(in.y), lut3d_near_idx(in.z), lutSize0, lutSize01);
colorspace_conv: 435 }
colorspace_conv: 436
colorspace_conv: 437 //åè: https://en.wikipedia.org/wiki/Trilinear_interpolation
colorspace_conv: 438 COLORSPACE_FUNC float3 lut3d_interp_trilinear(float3 in, const LUTVEC *__restrict__ lut, const int lutSize0, const int lutSize01) {
colorspace_conv: 439 const int x0 = lut3d_prev_idx(in.x);
colorspace_conv: 440 const int x1 = lut3d_next_idx(in.x, lutSize0);
colorspace_conv: 441 const int y0 = lut3d_prev_idx(in.y);
colorspace_conv: 442 const int y1 = lut3d_next_idx(in.y, lutSize0);
colorspace_conv: 443 const int z0 = lut3d_prev_idx(in.z);
colorspace_conv: 444 const int z1 = lut3d_next_idx(in.z, lutSize0);
colorspace_conv: 445 const float scalex = in.x - x0;
colorspace_conv: 446 const float scaley = in.y - y0;
colorspace_conv: 447 const float scalez = in.z - z0;
colorspace_conv: 448 const float3 c000 = lut3d_get_table(lut, x0, y0, z0, lutSize0, lutSize01);
colorspace_conv: 449 const float3 c001 = lut3d_get_table(lut, x0, y0, z1, lutSize0, lutSize01);
colorspace_conv: 450 const float3 c010 = lut3d_get_table(lut, x0, y1, z0, lutSize0, lutSize01);
colorspace_conv: 451 const float3 c011 = lut3d_get_table(lut, x0, y1, z1, lutSize0, lutSize01);
colorspace_conv: 452 const float3 c100 = lut3d_get_table(lut, x1, y0, z0, lutSize0, lutSize01);
colorspace_conv: 453 const float3 c101 = lut3d_get_table(lut, x1, y0, z1, lutSize0, lutSize01);
colorspace_conv: 454 const float3 c110 = lut3d_get_table(lut, x1, y1, z0, lutSize0, lutSize01);
colorspace_conv: 455 const float3 c111 = lut3d_get_table(lut, x1, y1, z1, lutSize0, lutSize01);
colorspace_conv: 456 const float3 c00 = lut3d_linear_interp(c000, c100, scalex);
colorspace_conv: 457 const float3 c10 = lut3d_linear_interp(c010, c110, scalex);
colorspace_conv: 458 const float3 c01 = lut3d_linear_interp(c001, c101, scalex);
colorspace_conv: 459 const float3 c11 = lut3d_linear_interp(c011, c111, scalex);
colorspace_conv: 460 const float3 c0 = lut3d_linear_interp(c00, c10, scaley);
colorspace_conv: 461 const float3 c1 = lut3d_linear_interp(c01, c11, scaley);
colorspace_conv: 462 const float3 c = lut3d_linear_interp(c0, c1, scalez);
colorspace_conv: 463 return c;
colorspace_conv: 464 }
colorspace_conv: 465
colorspace_conv: 466 //åè: http://www.filmlight.ltd.uk/pdf/whitepapers/FL-TL-TN-0057-SoftwareLib.pdf
colorspace_conv: 467 COLORSPACE_FUNC float3 lut3d_interp_tetrahedral(float3 in, const LUTVEC *__restrict__ lut, const int lutSize0, const int lutSize01) {
colorspace_conv: 468 const int x0 = lut3d_prev_idx(in.x);
colorspace_conv: 469 const int x1 = lut3d_next_idx(in.x, lutSize0);
colorspace_conv: 470 const int y0 = lut3d_prev_idx(in.y);
colorspace_conv: 471 const int y1 = lut3d_next_idx(in.y, lutSize0);
colorspace_conv: 472 const int z0 = lut3d_prev_idx(in.z);
colorspace_conv: 473 const int z1 = lut3d_next_idx(in.z, lutSize0);
colorspace_conv: 474 const float scalex = in.x - x0;
colorspace_conv: 475 const float scaley = in.y - y0;
colorspace_conv: 476 const float scalez = in.z - z0;
colorspace_conv: 477 float scale0, scale1, scale2;
colorspace_conv: 478 int xA, yA, zA, xB, yB, zB;
colorspace_conv: 479 if (scalex > scaley) {
colorspace_conv: 480 if (scaley > scalez) {
colorspace_conv: 481 scale0 = scalex;
colorspace_conv: 482 scale1 = scaley;
colorspace_conv: 483 scale2 = scalez;
colorspace_conv: 484 xA = x1; yA = y0; zA = z0;
colorspace_conv: 485 xB = x1; yB = y1; zB = z0;
colorspace_conv: 486 } else if (scalex > scalez) {
colorspace_conv: 487 scale0 = scalex;
colorspace_conv: 488 scale1 = scalez;
colorspace_conv: 489 scale2 = scaley;
colorspace_conv: 490 xA = x1; yA = y0; zA = z0;
colorspace_conv: 491 xB = x1; yB = y0; zB = z1;
colorspace_conv: 492 } else {
colorspace_conv: 493 scale0 = scalez;
colorspace_conv: 494 scale1 = scalex;
colorspace_conv: 495 scale2 = scaley;
colorspace_conv: 496 xA = x0; yA = y0; zA = z1;
colorspace_conv: 497 xB = x1; yB = y0; zB = z1;
colorspace_conv: 498 }
colorspace_conv: 499 } else {
colorspace_conv: 500 if (scalez > scaley) {
colorspace_conv: 501 scale0 = scalez;
colorspace_conv: 502 scale1 = scaley;
colorspace_conv: 503 scale2 = scalex;
colorspace_conv: 504 xA = x0; yA = y0; zA = z1;
colorspace_conv: 505 xB = x0; yB = y1; zB = z1;
colorspace_conv: 506 } else if (scalez > scalex) {
colorspace_conv: 507 scale0 = scaley;
colorspace_conv: 508 scale1 = scalez;
colorspace_conv: 509 scale2 = scalex;
colorspace_conv: 510 xA = x0; yA = y1; zA = z0;
colorspace_conv: 511 xB = x0; yB = y1; zB = z1;
colorspace_conv: 512 } else {
colorspace_conv: 513 scale0 = scaley;
colorspace_conv: 514 scale1 = scalex;
colorspace_conv: 515 scale2 = scalez;
colorspace_conv: 516 xA = x0; yA = y1; zA = z0;
colorspace_conv: 517 xB = x1; yB = y1; zB = z0;
colorspace_conv: 518 }
colorspace_conv: 519 }
colorspace_conv: 520 const float3 c000 = lut3d_get_table(lut, x0, y0, z0, lutSize0, lutSize01);
colorspace_conv: 521 const float3 c111 = lut3d_get_table(lut, x1, y1, z1, lutSize0, lutSize01);
colorspace_conv: 522 const float3 cA = lut3d_get_table(lut, xA, yA, zA, lutSize0, lutSize01);
colorspace_conv: 523 const float3 cB = lut3d_get_table(lut, xB, yB, zB, lutSize0, lutSize01);
colorspace_conv: 524 const float s0 = 1.0f - scale0;
colorspace_conv: 525 const float s1 = scale0 - scale1;
colorspace_conv: 526 const float s2 = scale1 - scale2;
colorspace_conv: 527 const float s3 = scale2;
colorspace_conv: 528 float3 c;
colorspace_conv: 529 c.x = s0 * c000.x + s1 * cA.x + s2 * cB.x + s3 * c111.x;
colorspace_conv: 530 c.y = s0 * c000.y + s1 * cA.y + s2 * cB.y + s3 * c111.y;
colorspace_conv: 531 c.z = s0 * c000.z + s1 * cA.z + s2 * cB.z + s3 * c111.z;
colorspace_conv: 532 return c;
colorspace_conv: 533 }
colorspace_conv: 534
colorspace_conv: 535 COLORSPACE_FUNC float3 lut3d_interp_pyramid(float3 in, const LUTVEC *lut, const int lutSize0, const int lutSize01) {
colorspace_conv: 536 const int x0 = lut3d_prev_idx(in.x);
colorspace_conv: 537 const int x1 = lut3d_next_idx(in.x, lutSize0);
colorspace_conv: 538 const int y0 = lut3d_prev_idx(in.y);
colorspace_conv: 539 const int y1 = lut3d_next_idx(in.y, lutSize0);
colorspace_conv: 540 const int z0 = lut3d_prev_idx(in.z);
colorspace_conv: 541 const int z1 = lut3d_next_idx(in.z, lutSize0);
colorspace_conv: 542 const float scalex = in.x - x0;
colorspace_conv: 543 const float scaley = in.y - y0;
colorspace_conv: 544 const float scalez = in.z - z0;
colorspace_conv: 545
colorspace_conv: 546 float scale0, scale1, scale2;
colorspace_conv: 547 int xA, yA, zA, xB, yB, zB, xC, yC, zC;
colorspace_conv: 548
colorspace_conv: 549 if (scaley > scalex && scalez > scalex) {
colorspace_conv: 550 xA = x0; yA = y0; zA = z1;
colorspace_conv: 551 xB = x0; yB = y1; zB = z0;
colorspace_conv: 552 xC = x0; yC = y1; zC = z1;
colorspace_conv: 553 scale0 = scaley;
colorspace_conv: 554 scale1 = scalez;
colorspace_conv: 555 scale2 = scalex;
colorspace_conv: 556 } else if (scalex > scaley && scalez > scaley) {
colorspace_conv: 557 xA = x0; yA = y0; zA = z1;
colorspace_conv: 558 xB = x1; yB = y0; zB = z0;
colorspace_conv: 559 xC = x1; yC = y0; zC = z1;
colorspace_conv: 560 scale0 = scalex;
colorspace_conv: 561 scale1 = scalez;
colorspace_conv: 562 scale2 = scaley;
colorspace_conv: 563 } else {
colorspace_conv: 564 xA = x0; yA = y1; zA = z0;
colorspace_conv: 565 xB = x1; yB = y0; zB = z0;
colorspace_conv: 566 xC = x1; yC = y1; zC = z0;
colorspace_conv: 567 scale0 = scalex;
colorspace_conv: 568 scale1 = scaley;
colorspace_conv: 569 scale2 = scalez;
colorspace_conv: 570 }
colorspace_conv: 571 const float3 c000 = lut3d_get_table(lut, x0, y0, z0, lutSize0, lutSize01);
colorspace_conv: 572 const float3 c111 = lut3d_get_table(lut, x1, y1, z1, lutSize0, lutSize01);
colorspace_conv: 573 const float3 cA = lut3d_get_table(lut, xA, yA, zA, lutSize0, lutSize01);
colorspace_conv: 574 const float3 cB = lut3d_get_table(lut, xB, yB, zB, lutSize0, lutSize01);
colorspace_conv: 575 const float3 cC = lut3d_get_table(lut, xC, yC, zC, lutSize0, lutSize01);
colorspace_conv: 576 float3 c;
colorspace_conv: 577 c.x = c000.x + (cB.x - c000.x) * scale0 + (c111.x - cC.x) * scale2 + (cA.x - c000.x) * scale1 + (cC.x - cA.x - cB.x + c000.x) * scale0 * scale1;
colorspace_conv: 578 c.y = c000.y + (cB.y - c000.y) * scale0 + (c111.y - cC.y) * scale2 + (cA.y - c000.y) * scale1 + (cC.y - cA.y - cB.y + c000.y) * scale0 * scale1;
colorspace_conv: 579 c.z = c000.z + (cB.z - c000.z) * scale0 + (c111.z - cC.z) * scale2 + (cA.z - c000.z) * scale1 + (cC.z - cA.z - cB.z + c000.z) * scale0 * scale1;
colorspace_conv: 580 return c;
colorspace_conv: 581 }
colorspace_conv: 582
colorspace_conv: 583 COLORSPACE_FUNC float3 lut3d_interp_prism(float3 in, const LUTVEC *lut, const int lutSize0, const int lutSize01) {
colorspace_conv: 584 const int x0 = lut3d_prev_idx(in.x);
colorspace_conv: 585 const int x1 = lut3d_next_idx(in.x, lutSize0);
colorspace_conv: 586 const int y0 = lut3d_prev_idx(in.y);
colorspace_conv: 587 const int y1 = lut3d_next_idx(in.y, lutSize0);
colorspace_conv: 588 const int z0 = lut3d_prev_idx(in.z);
colorspace_conv: 589 const int z1 = lut3d_next_idx(in.z, lutSize0);
colorspace_conv: 590 const float scalex = in.x - x0;
colorspace_conv: 591 const float scaley = in.y - y0;
colorspace_conv: 592 const float scalez = in.z - z0;
colorspace_conv: 593 float scale0, scale2;
colorspace_conv: 594 int xA, yA, zA, xB, yB, zB;
colorspace_conv: 595
colorspace_conv: 596 if (scalez > scalex) {
colorspace_conv: 597 scale0 = scalez;
colorspace_conv: 598 scale2 = scalex;
colorspace_conv: 599 xA = x0; yA = y1; zA = z1;
colorspace_conv: 600 xB = x0; yB = y0; zB = z1;
colorspace_conv: 601 } else {
colorspace_conv: 602 scale0 = scalex;
colorspace_conv: 603 scale2 = scalez;
colorspace_conv: 604 xA = x1; yA = y1; zA = z0;
colorspace_conv: 605 xB = x1; yB = y0; zB = z0;
colorspace_conv: 606 }
colorspace_conv: 607 const float3 c000 = lut3d_get_table(lut, x0, y0, z0, lutSize0, lutSize01);
colorspace_conv: 608 const float3 c010 = lut3d_get_table(lut, x0, y1, z0, lutSize0, lutSize01);
colorspace_conv: 609 const float3 c101 = lut3d_get_table(lut, x1, y0, z1, lutSize0, lutSize01);
colorspace_conv: 610 const float3 c111 = lut3d_get_table(lut, x1, y1, z1, lutSize0, lutSize01);
colorspace_conv: 611 const float3 cA = lut3d_get_table(lut, xA, yA, zA, lutSize0, lutSize01);
colorspace_conv: 612 const float3 cB = lut3d_get_table(lut, xB, yB, zB, lutSize0, lutSize01);
colorspace_conv: 613 float3 c;
colorspace_conv: 614 c.x = c000.x + (cB.x - c000.x) * scale0 + (c101.x - cB.x) * scale2 + (c010.x - c000.x) * scaley + (c000.x - c010.x - cB.x + cA.x) * scale0 * scaley + (cB.x - cA.x - c101.x + c111.x) * scale2 * scaley;
colorspace_conv: 615 c.y = c000.y + (cB.y - c000.y) * scale0 + (c101.y - cB.y) * scale2 + (c010.y - c000.y) * scaley + (c000.y - c010.y - cB.y + cA.y) * scale0 * scaley + (cB.y - cA.y - c101.y + c111.y) * scale2 * scaley;
colorspace_conv: 616 c.z = c000.z + (cB.z - c000.z) * scale0 + (c101.z - cB.z) * scale2 + (c010.z - c000.z) * scaley + (c000.z - c010.z - cB.z + cA.z) * scale0 * scaley + (cB.z - cA.z - c101.z + c111.z) * scale2 * scaley;
colorspace_conv: 617 return c;
colorspace_conv: 618 }
colorspace_conv: 619
colorspace_conv: 620 struct RGYColorspaceDevParams {
colorspace_conv: 621 int lut_offset;
colorspace_conv: 622 int prelut_offset;
colorspace_conv: 623 // 以éã¯offsetã®ç¤ºãä½ç½®ã«ãã¼ã¿
colorspace_conv: 624 // ãã¼ã¿ã®åãåºãæ¹æ³ã¯ä¸è¨ã®é¢æ°ãåç
§
colorspace_conv: 625 };
colorspace_conv: 626
colorspace_conv: 627 float *getDevParamsPrelut(void *__restrict__ ptr) {
colorspace_conv: 628 return (float *)((char *)ptr + ((RGYColorspaceDevParams *)ptr)->prelut_offset);
colorspace_conv: 629 }
colorspace_conv: 630
colorspace_conv: 631 const float *getDevParamsPrelut(const void *__restrict__ ptr) {
colorspace_conv: 632 return (const float *)((const char *)ptr + ((RGYColorspaceDevParams *)ptr)->prelut_offset);
colorspace_conv: 633 }
colorspace_conv: 634
colorspace_conv: 635 LUTVEC *getDevParamsLut(void *__restrict__ ptr) {
colorspace_conv: 636 return (LUTVEC *)((char *)ptr + ((RGYColorspaceDevParams *)ptr)->lut_offset);
colorspace_conv: 637 }
colorspace_conv: 638
colorspace_conv: 639 const LUTVEC *getDevParamsLut(const void *__restrict__ ptr) {
colorspace_conv: 640 return (const LUTVEC *)((const char *)ptr + ((RGYColorspaceDevParams *)ptr)->lut_offset);
colorspace_conv: 641 }
colorspace_conv: 642
colorspace_conv: 643
colorspace_conv: 644 #include
colorspace_conv: 645
colorspace_conv: 646 __device__ __inline__
colorspace_conv: 647 float3 convert_colorspace_custom(float3 x, const RGYColorspaceDevParams *__restrict__ params) {
colorspace_conv: 648
colorspace_conv: 649 {
colorspace_conv: 650 float m[3][3] = {
colorspace_conv: 651 { -nan(ind)f, -nan(ind)f, -nan(ind)f },
colorspace_conv: 652 { -nan(ind)f, -nan(ind)f, -nan(ind)f },
colorspace_conv: 653 { -nan(ind)f, -nan(ind)f, -nan(ind)f }
colorspace_conv: 654 };
colorspace_conv: 655 x = matrix_mul(m, x);
colorspace_conv: 656 }
colorspace_conv: 657
colorspace_conv: 658 { //linear->gamma
colorspace_conv: 659 const float pre_scaler = 1.0000000000000000e-02f;
colorspace_conv: 660 const float post_scaler = 1.0000000000000000e+00f;
colorspace_conv: 661 x.x = post_scaler * st_2084_inverse_eotf( x.x * pre_scaler );
colorspace_conv: 662 x.y = post_scaler * st_2084_inverse_eotf( x.y * pre_scaler );
colorspace_conv: 663 x.z = post_scaler * st_2084_inverse_eotf( x.z * pre_scaler );
colorspace_conv: 664 }
colorspace_conv: 665
colorspace_conv: 666 {
colorspace_conv: 667 float m[3][3] = {
colorspace_conv: 668 { 2.6269999999999999e-01f, 6.7799999999999994e-01f, 5.9299999999999999e-02f },
colorspace_conv: 669 { -1.3963006271925163e-01f, -3.6036993728074834e-01f, 5.0000000000000000e-01f },
colorspace_conv: 670 { 5.0000000000000000e-01f, -4.5978570459785700e-01f, -4.0214295402142955e-02f }
colorspace_conv: 671 };
colorspace_conv: 672 x = matrix_mul(m, x);
colorspace_conv: 673 }
colorspace_conv: 674
colorspace_conv: 675 { //range float->int
colorspace_conv: 676 const float range_y = 5.6064000000000000e+04f;
colorspace_conv: 677 const float offset_y = 4.0960000000000000e+03f;
colorspace_conv: 678 const float range_uv = 5.7344000000000000e+04f;
colorspace_conv: 679 const float offset_uv = 3.2768000000000000e+04f;
colorspace_conv: 680 x.x = x.x * range_y + offset_y;
colorspace_conv: 681 x.y = x.y * range_uv + offset_uv;
colorspace_conv: 682 x.z = x.z * range_uv + offset_uv;
colorspace_conv: 683 }
colorspace_conv: 684
colorspace_conv: 685 return x;
colorspace_conv: 686 }
colorspace_conv: 687
colorspace_conv: 688 static const int PIX_PER_THREAD = 4;
colorspace_conv: 689
colorspace_conv: 690 template __device__ __inline__ T toPix(float x) { return (T)clamp((x) + 0.5f, 0.0f, (1<<(sizeof(T)*8)) - 0.5f); }
colorspace_conv: 691 template<> __device__ __inline__ float toPix (float x) { return x; }
colorspace_conv: 692
colorspace_conv: 693 template
colorspace_conv: 694 __global__ void kernel_filter(
colorspace_conv: 695 uint8_t *__restrict__ pDstY, uint8_t *__restrict__ pDstU, uint8_t *__restrict__ pDstV,
colorspace_conv: 696 const int dstPitch, const int dstWidth, const int dstHeight,
colorspace_conv: 697 const uint8_t *__restrict__ pSrcY, const uint8_t *__restrict__ pSrcU, const uint8_t *__restrict__ pSrcV,
colorspace_conv: 698 const int srcPitch, const int srcWidth, const int srcHeight, bool srcInterlaced,
colorspace_conv: 699 const RGYColorspaceDevParams *__restrict__ params) {
colorspace_conv: 700 const int ix = (blockIdx.x * blockDim.x + threadIdx.x) * PIX_PER_THREAD;
colorspace_conv: 701 const int iy = blockIdx.y * blockDim.y + threadIdx.y;
colorspace_conv: 702
colorspace_conv: 703 struct __align__(sizeof(TypeIn) * 4) TypeIn4 {
colorspace_conv: 704 TypeIn x, y, z, w;
colorspace_conv: 705 };
colorspace_conv: 706
colorspace_conv: 707 struct __align__(sizeof(TypeOut) * 4) TypeOut4 {
colorspace_conv: 708 TypeOut x, y, z, w;
colorspace_conv: 709 };
colorspace_conv: 710
colorspace_conv: 711 if (ix < dstWidth && iy < dstHeight) {
colorspace_conv: 712
colorspace_conv: 713 TypeIn4 srcY = *(TypeIn4 *)(pSrcY + iy * srcPitch + ix * sizeof(TypeIn));
colorspace_conv: 714 TypeIn4 srcU = *(TypeIn4 *)(pSrcU + iy * srcPitch + ix * sizeof(TypeIn));
colorspace_conv: 715 TypeIn4 srcV = *(TypeIn4 *)(pSrcV + iy * srcPitch + ix * sizeof(TypeIn));
colorspace_conv: 716
colorspace_conv: 717 float3 pix0 = make_float3((float)srcY.x, (float)srcU.x, (float)srcV.x);
colorspace_conv: 718 float3 pix1 = make_float3((float)srcY.y, (float)srcU.y, (float)srcV.y);
colorspace_conv: 719 float3 pix2 = make_float3((float)srcY.z, (float)srcU.z, (float)srcV.z);
colorspace_conv: 720 float3 pix3 = make_float3((float)srcY.w, (float)srcU.w, (float)srcV.w);
colorspace_conv: 721
colorspace_conv: 722 pix0 = convert_colorspace_custom(pix0, params);
colorspace_conv: 723 pix1 = convert_colorspace_custom(pix1, params);
colorspace_conv: 724 pix2 = convert_colorspace_custom(pix2, params);
colorspace_conv: 725 pix3 = convert_colorspace_custom(pix3, params);
colorspace_conv: 726
colorspace_conv: 727 TypeOut4 dstY, dstU, dstV;
colorspace_conv: 728 dstY.x = toPix(pix0.x); dstU.x = toPix(pix0.y); dstV.x = toPix(pix0.z);
colorspace_conv: 729 dstY.y = toPix(pix1.x); dstU.y = toPix(pix1.y); dstV.y = toPix(pix1.z);
colorspace_conv: 730 dstY.z = toPix(pix2.x); dstU.z = toPix(pix2.y); dstV.z = toPix(pix2.z);
colorspace_conv: 731 dstY.w = toPix(pix3.x); dstU.w = toPix(pix3.y); dstV.w = toPix(pix3.z);
colorspace_conv: 732
colorspace_conv: 733 TypeOut4 *ptrDstY = (TypeOut4 *)(pDstY + iy * dstPitch + ix * sizeof(TypeOut));
colorspace_conv: 734 TypeOut4 *ptrDstU = (TypeOut4 *)(pDstU + iy * dstPitch + ix * sizeof(TypeOut));
colorspace_conv: 735 TypeOut4 *ptrDstV = (TypeOut4 *)(pDstV + iy * dstPitch + ix * sizeof(TypeOut));
colorspace_conv: 736
colorspace_conv: 737 ptrDstY[0] = dstY;
colorspace_conv: 738 ptrDstU[0] = dstU;
colorspace_conv: 739 ptrDstV[0] = dstV;
colorspace_conv: 740 }
colorspace_conv: 741 };
colorspace_conv: 742
colorspace_conv: 743 #endif // _JITIFY_INCLUDE_GUARD_3F6B24FAF8F3CEB7
colorspace_conv: ---------------------------------------
colorspace_conv: Compiler options: --use_fast_math -arch=compute_75
colorspace_conv: ---------------------------------------------------
colorspace_conv: --- JIT compile log for colorspace_conv ---
colorspace_conv: ---------------------------------------------------
colorspace_conv: colorspace_conv(651): error: identifier "ind" is undefined
colorspace_conv: colorspace_conv(651): error: expected a ","
colorspace_conv: colorspace_conv(651): error: expected a ","
colorspace_conv: colorspace_conv(651): error: expected a ","
colorspace_conv: colorspace_conv(652): error: expected a ","
colorspace_conv: colorspace_conv(652): error: expected a ","
colorspace_conv: colorspace_conv(652): error: expected a ","
colorspace_conv: colorspace_conv(653): error: expected a ","
colorspace_conv: colorspace_conv(653): error: expected a ","
colorspace_conv: colorspace_conv(653): error: expected a ","
colorspace_conv: colorspace_conv(45): warning: variable "MP_REF_WHITE_HLG" was declared but never referenced
colorspace_conv: colorspace_conv(688): warning: variable "PIX_PER_THREAD" was declared but never referenced
colorspace_conv: 10 errors detected in the compilation of "colorspace_conv".
colorspace: failed to setup custom filter: error in cuda..
colorspace: closed colorspace filter.
colorspace: closed colorspace filter.
avcuvid: Closing...
Closing Input thread.
Closed Input thread.
avcuvid: Closed Stream Packet Buffer.
Closing avformat context...
[AVIOContext @ 0000022bd0805040] Statistics: 15835322 bytes read, 2 seeks
Closed avformat context.
Free formatOptions...
Freed formatOptions.
avcuvid: Closed format.
Close parser...
Closed parser.
Close codecCtx for parser...
Closed codecCtx for parser.
Free bsf...
Freed bsf.
Free first video packet...
Freed first video packet.
Free extra data...
Freed extra data.
avcuvid: Closed video.
avcuvid: Closing Stream #0...
avcuvid: Free packet sample...
avcuvid: Freed packet sample.
avcuvid: Closed Stream #0.
avcuvid: Cleared frame pos list.
avcuvid: Closed.
avcuvid: Closing...
avcuvid: Close...
Released IO Buffers.
cuvid: Closing decoder...
cuvid: cuvidDestroyVideoParser: Fin.
cuvid: Closed decoder.
gpuinfo: Closing device #0: NVIDIA GeForce RTX 4070 SUPER...
gpuinfo: Closing Encoder...
nvenc : nvEncDestroyEncoder...
nvenc : nvEncDestroyEncoder: success.
gpuinfo: Closed Encoder.
gpuinfo: Closed cuvid Ctx Lock...
gpuinfo: Closed cuvid Ctx Lock.
gpuinfo: Closed CUDA Context...
gpuinfo: Closed CUDA Context.
gpuinfo: Closed device #0: NVIDIA GeForce RTX 4070 SUPER.
Closed EncodeStatus.
Closing perf monitor...
Closing logger...
devDX11: Closing DX11 device...