LDPC code construction and encoding method and apparatus

By constructing the basic matrix of appropriate row and column redistribution and expanding it into a check matrix, an excellent LDPC code is generated, which solves the problem of high LDPC code storage and encoding complexity in the prior art, and meets the high level of satellite signal transmission Requirements for order modulation.

WO2024255704A1PCT designated stage expired Publication Date: 2024-12-19ACADEMY OF BROADCASTING SCI STATE ADMINISTATION OF PRESS PUBLICATION RADIO FILM & TELEVISION +6
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/098039
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-13
Filing Date
2024-06-07
Publication Date
2024-12-19

AI Technical Summary

Technical Problem

The prior art is difficult to construct low-density parity check (LDPC) codes with excellent performance, especially in the case of severe signal path loss in satellite signal transmission, and low-complexity encoding and storage solutions are required.

Method used

By constructing a basic matrix B with appropriate row and column redistribution, and expanding it into a check matrix H through the cyclic permutation matrix, LDPC codes of various code rates are generated, and the codewords are punched to support higher-order modulation.

Benefits of technology

It realizes the generation of LDPC codes with excellent performance, reduces the storage complexity and encoding complexity of the check matrix, meets the needs of high-order modulation in satellite transmission, and improves the recovery ability of the decoding algorithm.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024098039_19122024_PF_FP_ABST
    Figure CN2024098039_19122024_PF_FP_ABST
Patent Text Reader

Abstract

An LDPC code construction and encoding method and apparatus. The method comprises: constructing a MB×NB-dimension fundamental matrix B for generating an LDPC code having a code rate of R and a code length of N; selecting the number of "1" in each row and the number of "1" in each column in the fundamental matrix B, so that row weight and column weight distributions of the fundamental matrix B meet a node degree distribution and the first f columns have a relatively large column weight; adjusting the position of "1" in each row and the position of "1" in each column in the fundamental matrix B, so that a MB×MB-dimension sub-matrix formed by the last MB columns of the fundamental matrix B is of full rank; replacing elements in the fundamental matrix B with a K×K matrix, and expanding the fundamental matrix B into a M×N-dimension check matrix H; on the basis of the M×N-dimension check matrix H, generating the LDPC code having a code rate of R and a code length of N; and performing puncturing processing on a first preset length of information bits at the beginning of the LDPC code.
Need to check novelty before this filing date? Find Prior Art

Description

A method and device for constructing and encoding LDPC codes

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on June 13, 2023, with application number 202310701793.9 and application name “A method and device for constructing and encoding an LDPC code”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present invention relates to the field of wireless communications, and in particular to a construction and encoding method and device for LDPC codes. Background Art

[0003] In his famous "Mathematical Theory of Communication," Shannon explained that coding is the key to achieving reliable transmission over noisy channels. He proposed the maximum rate at which information can be transmitted over a noisy channel, known as the channel capacity. He also derived the minimum signal-to-noise ratio required for error-free transmission, known as the Shannon limit. While Shannon's channel coding theory provides the ultimate performance of optimal coding, it does not provide a specific coding scheme. Based on this theory, researchers have been working to identify coding schemes that approach the Shannon limit in performance.

[0004] Low-density parity-check (LDPC) codes are a class of high-performance channel error correction coding schemes that can approach the Shannon limit. LDPC codes are a special type of linear parity-check block code whose parity-check matrix is ​​"sparse": there are only a very small number of non-zero matrix elements (for binary codes, a non-zero element is element 1), and all other elements are 0. In 1960, Robert Gallager first proposed the concept of LDPC codes in his doctoral dissertation and proposed two iterative decoding algorithms. Therefore, LDPC codes are also called Gallager codes. Gallager theoretically showed that using iterative decoding algorithms (or message passing algorithms), LDPC codes can approach channel capacity with low complexity.

[0005] The reason why LDPC codes were neglected in the early days may be that the level of computer hardware and software at the time was low, and people could not know the excellent performance of LDPC codes from computer simulation results. Another possible reason is that LDPC codes require a large storage space, which was unaffordable at the time. In addition, other code types such as Reed-Solomon codes and Hamming codes were available at the time. In other words, there were temporarily available channel coding schemes, so people did not deliberately study LDPC codes.

[0006] Currently, LDPC codes are increasingly being used in various communication systems. Satellite broadcasting systems achieve large-scale, integrated broadcast coverage across the earth and sky through satellites and ground base stations, delivering multi-channel audio and video broadcast services, which users can receive on the go. However, due to the limited power of satellite signals and the high altitude of geostationary satellite orbits at 36,000 kilometers, downlink signal path loss is severe, resulting in minimal link margin at the receiving terminal. Therefore, the design of high-performance LDPC codes is crucial. Furthermore, practical communication system design also requires low-complexity encoding and decoding processes. Obtaining high-performance LDPC codes through computer search requires significant computing power, and storing and encoding the parity check matrix requires a significant amount of storage and processing units.

[0007] Therefore, it is necessary to propose corresponding technical solutions that can not only construct LDPC codes with excellent performance at multiple code rates, but also solve the problems of storage of the check matrix and low-complexity fast encoding.

[0008] Summary of the Invention

[0009] The present invention aims to solve at least one of the above technical deficiencies and can be used to generate LDPC codes with excellent performance at multiple code rates.

[0010] The first aspect of the embodiment of the present invention proposes a construction and encoding method of an LDPC code. The construction and encoding method of the LDPC code includes: constructing a basic matrix B of MB×NB dimensions for generating an LDPC code with a code rate of R and a code length of N, wherein MB=M / K, NB=N / K, M=N×(1-R), K is the expansion ratio of the basic matrix, K∈Φ, Φ is a set of common factors of M and N; selecting the number of "1"s in each row and each column of the basic matrix B so that the row weight and column weight distribution of the basic matrix B meet the predetermined node degree distribution and the first f columns have a relatively large column weight; in the basic matrix B, the row weight and column weight distribution meet the predetermined node degree distribution and the first f columns have a relatively large column weight. When the column weight is relatively large, the position of "1" in each row and each column of the basic matrix B is adjusted so that the MB×MB-dimensional submatrix composed of the last MB columns of the basic matrix B is full-rank; the elements in the basic matrix B are replaced with a K×K matrix, and the basic matrix B is expanded to an M×N-dimensional check matrix H; based on the M×N-dimensional check matrix H, an LDPC code with a code rate of R and a code length of N is generated; the first information bits of the LDPC code are punctured, where the first preset length is less than or equal to the second preset length, and the second preset length is the product of the expansion ratio and f.

[0011] A second aspect of an embodiment of the present invention further provides an LDPC code construction and encoding device. The LDPC code construction and encoding device includes a processor and a memory: the memory stores a computer program, and when the computer program is executed by the processor, the steps of the LDPC code construction and encoding method as described in any embodiment of the first aspect of the present invention are implemented.

[0012] The LDPC code construction and encoding scheme proposed in the embodiments of the present invention can generate an LDPC code with a suitable code rate and excellent performance by selecting appropriate row weight and column weight distribution for a basic matrix.

[0013] The LDPC code construction and encoding scheme proposed in the embodiments of the present invention requires that the first f columns of the basic matrix have a relatively large column weight when constructing the basic matrix, thereby supporting the puncturing of the information bits of the front preset length of the LDPC code, so that the final LDPC code can better meet the requirements of supporting high-order modulation, and is also conducive to better recovery through the decoding algorithm without losing too much performance.

[0014] In addition, the LDPC code construction and coding scheme proposed in the embodiments of the present invention can solve the problems of storage of the check matrix and low-complexity fast coding.

[0015] Additional aspects and advantages of the present invention will be set forth in part in the description which follows and, in part, will be obvious from the description which follows, or may be learned through practice of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] The above and / or additional aspects and advantages of the present invention will become apparent and readily understood from the following description of the embodiments with reference to the accompanying drawings, in which:

[0017] FIG1 is a flow chart of a method for constructing and encoding an LDPC code according to an embodiment of the present invention;

[0018] FIG2 is a schematic diagram of a basic matrix of a constructed 40 / 61 rate LDPC code;

[0019] FIG3 is a schematic diagram of the structure of an LDPC code and an encoding device according to an embodiment of the present invention. DETAILED DESCRIPTION

[0020] The following describes embodiments of the present invention in detail, examples of which are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are intended only to explain the present invention and are not to be construed as limiting the present invention.

[0021] To achieve the purpose of the present invention, an embodiment of the present invention provides a method for constructing and encoding an LDPC code. As shown in FIG1 , the method for constructing and encoding an LDPC code includes steps S101-S106.

[0022] Step S101: Construct an M for generating an LDPC code with a code rate of R and a code length of N. B ×N B The basic matrix B, M B =M / K,N B =N / K, M=N×(1-R), K is the expansion ratio of the basic matrix, K∈Φ, Φ is the set of common factors of M and N.

[0023] Step S102: Select the number of "1"s in each row and each column of the basic matrix B so that the row weight and column weight distribution of the basic matrix B satisfies the predetermined node degree distribution and the first f columns have a relatively large column weight, wherein the first f columns of the basic matrix B have a relatively large column weight, that is, the column weight of the first f columns of the basic matrix B is greater than the column weight of other columns.

[0024] Step S103: When the row weight and column weight distribution of the basic matrix B meet the predetermined node degree distribution and the first f columns have a relatively large column weight, adjust the position of "1" in each row and each column of the basic matrix B so that the last M columns of the basic matrix B are equal to B M B ×M B The submatrix of dimension is full rank.

[0025] Step S104: Replace the elements in the basic matrix B with a K×K matrix, and expand the basic matrix B into an M×N-dimensional check matrix H.

[0026] Step S105 : Generate an LDPC code with a code rate of R and a code length of N based on the M×N dimensional check matrix H.

[0027] Step S106: Puncturing the first information bits of a preset length of the LDPC code, where the first preset length is less than or equal to a second preset length, and the second preset length is the product of the expansion ratio and f. The first information bits of the preset length of the LDPC code are information bits of the preset length starting from bit 1 in the codeword sequence of the LDPC code.

[0028] First, steps S101-S103 are described regarding how to construct the basic matrix B.

[0029] To achieve the purpose of the present invention, an LDPC code with a code rate of R and a code length of N is constructed. It is necessary to construct an M×N dimensional check matrix H, where R=1-M / N. First, a basic matrix B is constructed, and then the basic matrix B is expanded to obtain the check matrix H. The basic matrix B is M B ×N B Dimension, where M B =M / K,N B =N / K, M=N×(1-R), K is the expansion ratio of the basic matrix, K∈Φ, Φ is the set of common factors of M and N.

[0030] Randomly construct an M B ×N B dimensional basic matrix, set the number of "1" in each row and each column of the basic matrix so that the row weight and column weight distribution of the basic matrix meet the predetermined node degree distribution and the first f columns have a relatively large column weight. That is, f is a positive integer and f is less than N B , the first f columns of the constructed fundamental matrix have a greater column weight than the other columns. In one example, f is 2.

[0031] When the row and column weight distribution of the basic matrix meets the predetermined node degree distribution and the first f columns have relatively large column weights, the position of "1" in each row and column of the basic matrix is ​​adjusted so that the last M of the basic matrix B M B ×M B The submatrix of dimension is full rank.

[0032] In this example, the row weight and column weight distribution satisfy the predetermined node degree distribution, so that the row weight and column weight distribution of the basic matrix B can meet the node degree distribution requirements of the LDPC code set with excellent performance.

[0033] In one example, if certain restrictions are imposed on the selection of the position of "1", such as the shortest cycle length, the performance of the LDPC code can be improved.

[0034] In an example, the structure of the basic matrix B can be stored in the form of a table, where each row of the table records the column number of "1" in each row of B.

[0035] In one example, step S104, replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H, may include the following steps:

[0036] The "-1" in the basic matrix B is replaced by a K×K dimensional all-"0" matrix Z, and the non-"-1" in the basic matrix B is replaced by a K×K dimensional circulant permutation matrix P, where the row number i and column number j of the "1" in the circulant permutation matrix P satisfies j=(i+L)mod K, L is the offset of the circulant permutation matrix, and mod represents the modulo operation.

[0037] In this example, non--1 values ​​in the base matrix B are mapped to binary elements of "1," and "-1" values ​​in the base matrix B are mapped to binary elements of "0." Accordingly, the "selecting the number of 1s in each row and column of the base matrix B" in step S102 is equivalent to selecting the number of non--1 values ​​in each row and column of the base matrix B, and the "adjusting the positions of the 1s in each row and column of the base matrix B" in step S103 is equivalent to adjusting the positions of the non--1 values ​​in each row and column of the base matrix B.

[0038] In this example, since the number of "1" in each row and column of the cyclic permutation matrix P is 1, the expanded check matrix H maintains the optimal row and column weight distribution of the basic matrix B. B M B ×M B The M×M dimensional submatrix composed of the last M columns of the check matrix H is also full rank.

[0039] In one example, the offset L of each cyclic permutation matrix P can be arbitrarily selected. In one example, certain restrictions can be imposed on the selection of the cyclic permutation matrix offset L, such as the shortest cycle length, to further improve the performance of the code.

[0040] The offset of the circulant permutation matrix P may be stored in the form of a table, where each row of the table records the offset of the circulant permutation matrix corresponding to "1" in each row of the base matrix B.

[0041] In this way, the structure of the check matrix H can be stored in the form of a basic matrix table and a circulant permutation matrix offset table, thereby solving the storage problem of the check matrix.

[0042] Next, step S105 is described, in which an LDPC code with a code rate of R and a code length of N is generated based on the M×N dimensional check matrix H. Step S105 may include steps S201-S203.

[0043] Step S201: Divide the check matrix H into two sub-matrices H = [H1|H2], where the H1 sub-matrix includes columns 0, 1, ..., k-1 in the H matrix, and the H2 sub-matrix includes columns k, ..., N-1 in the H matrix; where k = NM.

[0044] Step S202: According to the input information sequence m=(m0,m1,m2,…,m k-1 ), calculate the check sequence p = m × (H2 -1 ×H1) T The information sequence m includes k information bits.

[0045] Step S203: Combine the information sequence m and the check sequence p into a codeword sequence c=[m|p], where the code rate of the LDPC code is R and the code length is N.

[0046] In one example, the H2 -1 ×H1 has a block-circular structure and can be stored in blocks.

[0047] The LDPC code construction and encoding scheme proposed in the embodiments of the present invention facilitates the construction of high-performance LDPC codes with suitable code rates by appropriately selecting appropriate row and column weights for the basis matrix. Furthermore, the technical solutions proposed in the embodiments of the present invention can address the issues of parity check matrix storage and low-complexity fast encoding.

[0048] Next, step S106 is described, in which a puncturing process is performed on the first information bits of the LDPC code of a first preset length, wherein the first preset length is less than or equal to a second preset length, and the second preset length is the product of the expansion ratio and f.

[0049] That is, g = K × f, K is the expansion ratio of the basic matrix, and f is less than N B , g is a second preset length, and puncturing can be performed within the range of the first g information bits of the LDPC code.

[0050] In the disclosed embodiment, puncturing the first information bits of the LDPC code may involve deleting the first information bits of the LDPC code. Upon receiving the punctured LDPC code, the receiver inserts "0"s at the deleted positions before decoding. In one example, upon receiving the punctured LDPC code, the receiver inserts "0"s at the deleted positions before performing belief propagation (BP) decoding.

[0051] The LDPC code construction and encoding scheme proposed in the embodiments of the present invention performs puncturing on the first information bits of a preset length of the LDPC code, so that the resulting LDPC code can better meet the requirements of supporting high-order modulation. Specifically, the LDPC code construction and encoding method provided in the embodiments of the present invention, through the careful design of the basic matrix B, makes the first f columns of the basic matrix B have a large weight, that is, makes the first g columns of the check matrix H have a large weight, which means that most check equations are more likely to contain the first g information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first g information bits of the LDPC code. In addition, since most check equations are more likely to contain the first g information bits of the LDPC code, deleting the first g information bits of the LDPC code is conducive to better recovery by the decoding algorithm without losing too much performance.

[0052] In one example, the code length N is 61488, the expansion ratio is 504, and f is 2, then the preset length is 1008. The information bits 1-1008 in the codeword sequence of the LDPC code are punctured, ultimately resulting in an LDPC code with a code length of 60480 bits. The punctured LDPC code has a code length of 60480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiments of the present invention, through the careful design of the base matrix B, gives a high weight to the first two columns of the base matrix B, that is, the first 1008 columns of the check matrix H. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 information bits of the LDPC code. In addition, since most check equations have a greater probability of containing the first 1008 information bits of the LDPC code, deleting the first 1008 information bits of the LDPC code facilitates better recovery by the decoding algorithm without losing too much performance.

[0053] <Specific embodiment 1>:

[0054] Construct an LDPC code with a code rate of 2 / 3 suitable for satellite transmission system.

[0055] First, the code length N is selected as 61488, and the initial code rate is selected as 40 / 61, that is, the check matrix H to be constructed is a first check matrix H1 with a dimension of 21168×61488.

[0056] Calculate the set Φ of common factors of 21168 and 61488, and select a suitable expansion ratio K∈Φ. The expansion ratio K is selected as 504. Thus, the basic matrix B to be constructed in Example 1 is set as the first basic matrix B1, and the dimension of the first basic matrix B1 is 42×122.

[0057] The row weights and column weights of the first base matrix B1 are selected.

[0058] For example, the row redistribution of the first basic matrix B1 is {λ9,λ10,λ11,λ12,λ15,λ20,λ36}={1 / 42,13 / 42,21 / 42,4 / 42,1 / 42,1 / 42,1 / 42}, and the column redistribution is {ρ1,ρ2,ρ3,ρ4,ρ6,ρ7,ρ8,ρ9,ρ30,ρ31}={1 / 122,1 / 122,91 / 122,12 / 122,4 / 122,9 / 122,1 / 122,1 / 122,1 / 122,1 / 122}.

[0059] For another example, the first two columns of the first basic matrix B1 are restricted to have relatively large column weights, that is, the column weights of the first column and the second column are greater than the column weights of other columns.

[0060] Under the premise of satisfying the row and column weight distribution, the non-"-1" positions in each row and each column of the first basic matrix B1 are arbitrarily selected, but the 42×42-dimensional submatrix composed of the last 42 columns of the first basic matrix B1 is guaranteed to be full rank, while avoiding the existence of short cycles in the first basic matrix B1.

[0061] The first basic matrix B1 finally obtained is shown in FIG2 , specifically:

[0062] First line:

[0063] -1,25,-1,-1,20,-1,-1,113,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,188,-1,-1,-1,-1,-1,-1,-1,100,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,471,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0064] Second line:

[0065] 35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,325,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,73,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,10,-1,-1,-1,-1, 30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,178,-1,-1,-1,-1,211,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0066] Third line:

[0067] 2,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,260,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,380,339,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0068] Fourth line:

[0069] 9,-1,-1,-1,-1,-1,-1,-1,-1,-1,375,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,121,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,397,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,24,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,280,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0070] Fifth line:

[0071] 29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,332,-1,-1,-1,-1,-1,325, 45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,354,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,133,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0072] Line 6:

[0073] -1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,221,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,87,-1,-1,4,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,450,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,16,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,430,272,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0074] Line 7:

[0075] -1,21,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,150,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,167,117,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0076] Line 8:

[0077] -1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,196,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,208,-1,-1,28,-1 ,-1,-1,-1,-1,-1,-1,-1,438,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,410,13,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0078] Line 9:

[0079] -1,8,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,70,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,14,59,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,458,322,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0080] Line 10:

[0081] -1,0,-1,-1,9,-1,-1,121,280,-1,-1,-1,-1,-1,-1,-1,10,-1 ... 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,188,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,426,306,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0082] Line 11:

[0083] 18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,4,-1 ... 1,-1,-1,-1,-1,-1,16,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,166,334,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0084] Line 12:

[0085] -1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,33,- 1,373,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,81,472,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0086] Line 13:

[0087] 29,-1,-1,-1,-1,-1,-1,-1,-1,-1,265,190,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,263,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,5,-1,-1,179,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,85,182,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0088] Line 14:

[0089] -1,36,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,448,-1,-1,-1 ,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,496,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0090] Line 15:

[0091] 13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,143,-1,-1,-1,-1,-1,492,-1,-1,312,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,18 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,465,280,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0092] Line 16:

[0093] 2,-1,129,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,23,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,422,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,161,264,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0094] Line 17:

[0095] 0,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,91,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,365,-1,291,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 34,224,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,451,474,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0096] Line 18:

[0097] 45,0,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,393,-1,-1,35,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,485,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,422,478,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0098] Line 19:

[0099] 17,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,279,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,361,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,104,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,329,150,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0100] Line 20:

[0101] -1, -1,226,19,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,110,-1,-1,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,376,-1,-1,-1,-1,-1,-1,-1,219,222,-1,-1,-1,-1,-1,-1,13,-1,456,-1,-1,405,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,232,-1,174,225,-1,464,-1,-1,-1,420,-1,488,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,139,38,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0102] Line 21:

[0103] 43,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,260,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,247,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,338,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,290,365,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0104] Line 22:

[0105] 23,-1,-1,-1,15,337,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,475,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,462,354,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0106] Line 23:

[0107] -1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,310,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,240,-1,-1,-1,-1,-1,19,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,145,121,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0108] Line 24:

[0109] 15,52,-1,-1,-1,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,236,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,142,131,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0110] Line 25:

[0111] 23,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,61,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,434,14,-1,-1,250,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,178,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,177,244,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0112] Line 26:

[0113] -1,24,-1,424,-1,-1,29,216,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,210,-1,-1,-1,197,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,190,-1,-1,-1,-1,-1,-1,-1,38,-1,-1 ,-1,-1,187,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,440,72,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,429,254,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0114] Line 27:

[0115] 53,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,438,8,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,494,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,60,154,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0116] Line 28:

[0117] 40,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,180,-1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,346,227,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0118] Line 29:

[0119] 26,32,-1,-1,-1,-1,-1,-1,91,- ... 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,457,403,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,445,75,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0120] Line 30:

[0121] 54,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,139,-1,5,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,81,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,27,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0122] Line 31:

[0123] 39,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,436,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,307,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,299,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,315,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0124] Line 32:

[0125] 32,36,309,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,223,396,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,229,-1,-1,-1,-1,-1,20,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,206,381,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0126] Line 33:

[0127] 23,33,-1,-1,10,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,166,-1,-1,-1,-1,-1,-1,-1, -1,-1,48,-1,-1,-1,-1,-1,-1,-1,-1,6,-1 ...

[0128] Line 34:

[0129] 47,10,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,169,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,451,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,136,482,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0130] Line 35:

[0131] 48,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,152,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35 ,-1,-1,-1,8,-1,-1,6,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,144,239,0,-1,-1,-1,-1,-1,-1,-1,-1,

[0132] Line 36:

[0133] -1, -1, -1,16, -1, -1,372, -1,242, -1,149,415, -1, -1, -1,247,10,237, -1,478, -1,449,105,3,152, -1, -1, -1, -1, -1,171, -1, -1, -1,47, -1, -1, -1,163,414, -1, -1, -1,151, -1, -1,269, -1, -1,330,406,368,59, -1, -1, -1,165, -1, -1, 1,-1,-1,162,459,223,-1,376,-1,-1,-1,10,-1,233,302,215,-1,305,-1 ...

[0134] Line 37:

[0135] 1,23,-1,-1,-1,464,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,451,-1,317,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 18,-1 ...

[0136] Line 38:

[0137] 27, 6, -1, -1, -1, -1, -1, -1, 14, -1, 346, -1, -1, -1, -1, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,194,370,0,-1,-1,-1,-1,

[0138] Line 39:

[0139] 66,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,26,-1,27,-1,-1,-1,-1,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2 4,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,36,0,-1,-1,-1,40th row:

[0140] 56, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, -1, 15, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, 9, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,11,0,-1,-1,41st row:

[0141] 43,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1, -1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,12,0,-1,42nd row:

[0142] 19,45,-1,-1,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,7,-1,34,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,25,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,38,0,

[0143] The first basic matrix B1 is expanded by an expansion ratio of 504 to obtain a 21168×61488-dimensional first parity check matrix H1. In one example, the "-1"s in the first basic matrix B1 are replaced with a 504×504-dimensional matrix Z consisting of all "0s," and the non-"-1"s in B1 are replaced with a 504×504-dimensional circulant permutation matrix P to obtain the first parity check matrix H1. The row number i and column number j of the "1"s in P satisfy j = (i+L) mod 504, where L is the offset of the circulant permutation matrix.

[0144] The offset of each cyclic permutation matrix P is arbitrarily selected and appropriately adjusted to further increase the shortest cycle length of the first check matrix H1.

[0145] A basic matrix table is generated according to the basic matrix, a circulant permutation matrix offset table is generated according to the offset of the circulant permutation matrix, and the basic matrix table and the circulant permutation matrix offset table are stored to solve the storage problem of the check matrix.

[0146] After obtaining the first check matrix H1, LDPC encoding is performed using the first check matrix H1. In one example, an information sequence containing 40320 information bits is input, and after encoding according to the first check matrix H1, a first LDPC code with a code length of 61488 is obtained.

[0147] In order to support high-order modulation, the information bits 1 to 1008 of the first LDPC code are deleted to obtain an LDPC code with a code length of 60480 bits and a code rate of 2 / 3, which is then output.

[0148] The punctured LDPC code has a code length of 60,480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiment of the present invention, through the careful design of the check matrix H, gives the first 1008 columns of the check matrix H a high weight. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 bits of the LDPC code. In addition, since most check equations are more likely to include the first 1008 information bits of the LDPC code, deleting the first 1008 bits of the LDPC code facilitates better recovery by the decoding algorithm without significantly losing performance.

[0149] <Specific embodiment 2>:

[0150] Construct an LDPC code with a code rate of 1 / 3 suitable for satellite transmission system.

[0151] First, the code length N is selected as 61488, and the initial code rate N is selected as 20 / 61, that is, the check matrix H to be constructed is a second check matrix H2 with dimensions of 41328×61488.

[0152] Calculate the set Φ of common factors of 41328 and 61488, and select a suitable expansion ratio K∈Φ. The expansion ratio K is selected to be 504. In Example 2, the basic matrix B to be constructed is set to be the second basic matrix B2, so that the dimension of the second basic matrix B2 is 82×122.

[0153] Select the row and column weights of the second base matrix B2. For example, the row weight distribution of B2 is {λ4,λ5, λ6,λ7,λ9,λ13,λ14,λ15,λ16,λ23,λ35,λ38,λ45,λ74,λ79} = {1 / 82,1 / 82,55 / 82,3 / 82,1 / 82,9 / 82,2 / 82,1 / 82,2 / 82,1 / 82,1 / 82,1 / 82,1 / 82,2 / 82,1 / 82,1 / 82},

[0154] Column redistribution {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ9,ρ10,ρ11,ρ12,ρ13,ρ14,ρ15,ρ16,ρ17,ρ21,ρ26,ρ52,ρ61}={3 / 122,32 / 122,16 / 122,5 / 1 22,9 / 122,6 / 122,6 / 122,4 / 122,3 / 122,5 / 122,7 / 122,9 / 122,3 / 122,4 / 122,4 / 122,1 / 122,1 / 122,1 / 122,1 / 122,1 / 122,1 / 122}.

[0155] For another example, the first two columns of the second basic matrix B2 are restricted to have relatively large column weights, that is, the column weights of the first column and the second column are greater than the column weights of other columns.

[0156] Under the premise of satisfying the row and column weight distribution, the non-"-1" positions in each row and each column of the second basic matrix B2 are arbitrarily selected, but the 82×82-dimensional submatrix composed of the last 82 columns of the second basic matrix B2 is guaranteed to be full rank, while avoiding the existence of short cycles in the second basic matrix B2.

[0157] The final second basic matrix B2 is specifically:

[0158] First line:

[0159] 47,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0160] Second line:

[0161] 16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0162] Third line:

[0163] -1,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,14,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0164] Fourth line:

[0165] 28,43,-1,-1,-1,-1,21,-1,-1,-1,-1,36,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0166] Fifth line:

[0167] 63,46,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0168] Line 6:

[0169] 98,0,6,14,58,12,62,0,59,32,-1,68,18,48,41,6,0,16,49,-1,-1,-1,0,71,7,69,-1,-1,78,-1,53,64,249,39,-1,23,36,-1,36,54,63,34,-1,-1,19,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0170] Line 7:

[0171] -1,30,17,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0172] Line 8:

[0173] -1, 27, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1, 30, -1, -1, 25, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0174] Line 9:

[0175] -1,0,-1,21,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0176] Line 10:

[0177] -1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0178] Line 11:

[0179] 52,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0180] Line 12:

[0181] -1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0182] Line 13:

[0183] 22,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1, -1, -1, 25, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0184] Line 14:

[0185] 30,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,63,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0186] Line 15:

[0187] 5,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0188] Line 16:

[0189] 15,-1,-1,-1,14,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0190] Line 17:

[0191] 42,-1,-1,-1,-1,38,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0192] Line 18:

[0193] -1,40,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,28,-1,-1,-1,17,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0194] Line 19:

[0195] 32,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,24,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0196] Line 20:

[0197] 48,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0198] Line 21:

[0199] -1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,10,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0200] Line 22:

[0201] 42,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 -1, -1, -1, -1, 19, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0202] Line 23:

[0203] 33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0204] Line 24:

[0205] -1,30,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0206] Line 25:

[0207] 14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,18,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0208] Line 26:

[0209] -1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,9,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0210] Line 27:

[0211] -1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,8,12,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0212] Line 28:

[0213] -1, -1, 1, -1, 18, -1, -1, -1, -1, -1, -1, -1, 45, -1, 42, -1, -1, -1, -1, -1, -1, 38, -1, 32, -1, -1, 36, -1, 25, -1, -1, -1, -1, -1, 142, 7, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, 44, 29, -1, -1, -1, -1,45,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0214] Line 29:

[0215] 44,9,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,19,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0216] Line 30:

[0217] 15,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,5,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0218] Line 31:

[0219] -1, 39, -1, 30, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1 ... ,-1,-1,-1,-1,-1,-1,-1,31,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0220] Line 32:

[0221] 6,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0222] Line 33:

[0223] 6,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,1,-1,17,-1,27,33,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4 ,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0224] Line 34:

[0225] 19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,29,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,68,-1,-1,-1,11,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,191 ,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0226] Line 35:

[0227] 39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0228] Line 36:

[0229] 27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0230] Line 37:

[0231] -1,-1,51,19,-1,43,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,26,-1,-1,-1,-1,24,-1,-1,2,58,-1,-1,-1,-1,14,-1,2,-1,44,-1,-1,62,-1,-1,45,-1,-1,57,-1,-1,-1,-1,6,16,-1,-1,-1,33,29,-1,-1,126,-1,-1,- 1,73,-1,-1,-1,-1,-1,56,-1,-1,-1,24,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0232] Line 38:

[0233] -1,43,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0234] Line 39:

[0235] 16,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0236] Line 40:

[0237] 25,11,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,45,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0238] Line 41:

[0239] -1, 60, -1, -1, -1, 20, -1, -1, 40, -1, -1, 27, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, 12, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, 33 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0240] Line 42:

[0241] 27,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0242] Line 43:

[0243] 19, 25, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0244] Line 44:

[0245] 9,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0246] Line 45:

[0247] -1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,5,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0248] Line 46:

[0249] 6,37,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0250] Line 47:

[0251] -1, 27, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, -1, 15, -1, -1, -1, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0252] Line 48:

[0253] -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0254] Line 49:

[0255] 40,94,-1,29,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,39,-1,13,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,10,-1,-1,-1,6,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0256] Line 50:

[0257] -1,37,-1,-1,22,11,-1,-1,-1,-1,-1,-1,-1,26,17,-1,-1,-1,-1,-1,-1,16,-1,11,-1,7,-1,-1,-1,-1,-1,12,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1 ,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0258] Line 51:

[0259] -1,8,-1,38,-1,-1,34,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,90,5,-1,-1,-1,-1,-1,146,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,144,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,191,250,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0260] Line 52:

[0261] 25,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0262] Line 53:

[0263] -1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,-1,-1,-1,-1,11,-1,-1,-1,6,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,20,39,-1,-1,23,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0264] Line 54:

[0265] 54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,-1,48,-1,-1,-1,-1,42,3,-1,-1,-1,-1,-1,-1,-1,51,-1,-1,-1,34,24,-1,-1,12,-1,-1,-1,19,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,279,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0266] Line 55:

[0267] -1,37,18,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1 ... 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0268] Line 56:

[0269] 62,0,-1,-1,21,-1,-1,-1,25,-1,-1,-1,-1,66,-1,51,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,10,52,-1,-1,-1,-1,49,-1,-1,17,-1,-1,-1,-1,-1,-1,12,-1,-1,30,-1,-1,-1,-1,-1,-1, -1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0270] Line 57:

[0271] 3,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0272] Line 58:

[0273] 42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0274] Line 59:

[0275] 44,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,238,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0276] Line 60:

[0277] 34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0278] Line 61:

[0279] 26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0280] Line 62:

[0281] 0,-1,9,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0282] Line 63:

[0283] -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0284] Line 64:

[0285] 11,11,-1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0286] Line 65:

[0287] 19,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,303,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0288] Line 66:

[0289] -1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,55,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,47,-1,-1,54,-1,-1,-1,40,-1,-1,-1,43,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,41,-1,-1,-1,-1,-1,-1,26,-1,31,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0290] Line 67:

[0291] -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, 20, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,83,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0292] Line 68:

[0293] 3,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,20,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0294] Line 69:

[0295] -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,44,0,-1,-1,-1,3,-1,-1,14,4,-1,-1,-1,-1,-1,7,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0296] Line 70:

[0297] 40,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,33,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0298] Line 71:

[0299] 23, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0300] Line 72:

[0301] 20,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,372,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,175,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0302] Line 73:

[0303] -1,26,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,93,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0304] Line 74:

[0305] 48,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0306] Line 75:

[0307] 70, 20, -1, -1, -1, -1, -1, 52, -1, -1, -1, 52, 24, -1, -1, -1, -1, 24, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, 21, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ,-1,20,-1,-1,-1,-1,-1,-1,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0308] Line 76:

[0309] 20,7,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1,

[0310] Line 77:

[0311] -1, -1, -1, -1, -1, -1, -1, -1, -1, 379, -1, 12, -1, -1, -1, -1, 39, 44, 304, -1, -1, -1, -1, -1, 17, -1, -1, 31, -1, -1, -1, -1, 123, -1, 3, -1, 18, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, - 1,-1,50,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,275,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,

[0312] Line 78:

[0313] 98,136,62,73,-1,39,84,78,78,321,-1,-1,67,63,-1,4,64,-1,-1,-1,20,20,2,-1,68,16,51,353,66,171,11,37,56,42,143,-1,96,37,80,48,-1,80,472,42,3,-1,76,49,24,16,-1,-1,67,70,-1,-1,18,-1,-1,-1,458, 14,62,274,-1,36,-1,-1,39,8,291,22,-1,104,201,-1,-1,103,-1,-1,24,-1,184,-1,229,79,90,-1,-1,7,-1,-1,54,-1,-1,-1,-1,-1,9,58,-1,-1,-1,33,-1,24,76,10,-1,472,23,-1,130,47,8,-1,65,0,-1,-1,-1,-1,

[0314] Line 79:

[0315] 123,171,68,-1,31,75,57,119,2,336,-1,31,-1,13,-1,0,68,40,35, 192,-1,0,96,70,-1,-1,61,-1,-1,322,94,1,409,-1,244,79,55,71,41,26,142,18,113,-1,70,445,46,6,85,11,-1,-1,91,-1,31,-1,40,-1,177,286,394,21,65,353,26,-1,91,17,83,40,369,- 1,-1,-1,371,285,175,-1,503,105,-1,303,-1,8,-1,119,-1,-1,14,-1,234,142,-1,380,249,109,-1,28,-1,364,-1,54,371,-1,216,-1,-1,-1,178,-1,-1,27,-1,-1,-1,285,93,66,0,-1,-1,-1

[0316] Line 80:

[0317] -1, -1, -1,55,8,-1, -1, -1, -1,-1,439,53,43,-1, -1, -1, -1,29,2,308,34,-1, -1, -1,55,50,-1,249,45,-1, -1, -1, -1,7,-1, -1,11,-1,40,-1, -1,60,-1, -1,6,-1,48,50,-1, -1, -1, -1,-1,-1,12,-1,59,-1,85,-1,64,-1,1 9,203,-1,349,-1,-1,-1,-1,426,-1,-1,-1,299,-1,-1,494,207,-1,-1,-1,-1,-1,-1,-1,-1,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,153,-1,-1,93,-1,-1,-1,90,356,173,0,-1,-1

[0318] Line 81:

[0319] 20, 59, 32, -1, -1, 75, 31, 441, 26, 486, -1, -1, -1, 47, -1, 6, -1, -1, -1, -1, 89, 45, 9, -1, 57, 68, 484, 48, 49, 24, -1, 353, -1, 28, -1, -1, 444, -1, 68, 113, -1, 315, -1, -1, -1, -1, 76, 42, -1, -1, 11, -1, -1, -1, -1, -1, 186, -1, 9 5,-1,-1,-1,-1,291,-1,45,62,-1,-1,-1,-1,-1,168,-1,-1,-1,241,-1,-1,482,-1,129,-1,-1,-1,-1,-1,-1,-1,-1,490,-1,-1,-1,-1,361,12,136,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,318,84,186,0,-1,

[0320] Line 82:

[0321] 13,113,68,-1,-1,46,-1,296,12,483,-1,-1,-1,89,53,33,21,-1,-1,-1,-1,84,53,15,37,-1,2,-1,-1,-1,22,49,281,-1,438,25,-1,266,-1,15,158,-1,48,-1,-1,-1,-1,-1,55,34,-1,-1,81,-1,-1,-1,-1,-1,-1,-1 ,169,-1,-1,-1,-1,282,-1,3,46,-1,-1,-1,-1,-1,-1,-1,-1,432,54,-1,217,-1,-1,-1,6,-1,-1,-1,-1,-1,63,-1,-1,-1,63,-1,-1,-1,429,-1,-1,255,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,-1,16,260,208,-1,0,

[0322] The second basic matrix B2 is expanded by an expansion ratio of 504 to obtain a 41328×61488-dimensional second parity check matrix H2. In one example, the "-1"s in the second basic matrix B2 are replaced with a 504×504-dimensional matrix Z consisting of all "0s," and the non-"-1"s in B2 are replaced with a 504×504-dimensional circulant permutation matrix P to obtain the second parity check matrix H2. The row number i and column number j of the "1"s in P satisfy j = (i+L) mod 504, where L is the offset of the circulant permutation matrix.

[0323] An offset for each cyclic permutation matrix P is arbitrarily selected and appropriately adjusted to further increase the shortest cycle length of the second check matrix H2. A base matrix table is generated based on the base matrix, and a cyclic permutation matrix offset table is generated based on the offsets of the cyclic permutation matrices. The base matrix table and the cyclic permutation matrix offset table are stored to address the storage problem of the check matrix.

[0324] After obtaining the second check matrix H2, LDPC encoding is performed using the second check matrix H2. In one example, an information sequence containing 20160 information bits is input, and after encoding according to the second check matrix H2, a second LDPC code with a code length of 61488 is obtained.

[0325] In order to support high-order modulation, the information bits 1 to 1008 of the second LDPC code are deleted to obtain an LDPC code with a code length of 60480 bits and a code rate of 1 / 3, which is then output.

[0326] The punctured LDPC code has a code length of 60,480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiment of the present invention, through the careful design of the check matrix H, gives the first 1008 columns of the check matrix H a high weight. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 bits of the LDPC code. In addition, since most check equations are more likely to include the first 1008 information bits of the LDPC code, deleting the first 1008 bits of the LDPC code facilitates better recovery by the decoding algorithm without significantly losing performance.

[0327] <Specific embodiment 3>:

[0328] Construct an LDPC code with code rate 1 / 2 suitable for satellite transmission system.

[0329] First, the code length N is selected as 61488, and the initial code rate is selected as 30 / 61, that is, the check matrix H to be constructed is a third check matrix H3 with a dimension of 31248×61488.

[0330] Calculate the set Φ of common factors of 31248 and 61488, and select a suitable expansion ratio K∈Φ. The expansion ratio K is selected as 504. Thus, the basic matrix B to be constructed in Example 3 is set to the third basic matrix B3, and the dimension of the third basic matrix B3 is 62×122.

[0331] Select the row weight and column weight of the third basic matrix B3. For example, the row weight distribution of B3 is {λ6,λ7,λ8,λ9,λ10,λ16,λ47,λ56}={3 / 62,11 / 62,30 / 62,12 / 62,3 / 62,1 / 62,1 / 62,1 / 62},

[0332] The column redistribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ9,ρ10,ρ36,ρ51}={3 / 122,6 / 122,42 / 122,13 / 122,38 / 122,13 / 122,1 / 122,3 / 122,1 / 122,1 / 122,1 / 122}.

[0333] For another example, the first two columns of the third basic matrix B3 are restricted to have relatively large column weights, that is, the column weights of the first column and the second column are greater than the column weights of other columns.

[0334] Under the premise of satisfying row and column weight distribution, non-"-1" positions in each row and each column of the third basic matrix B3 are arbitrarily selected, but the 62×62-dimensional submatrix composed of the last 62 columns of the third basic matrix B3 is guaranteed to be full rank, and the existence of short cycles in the third basic matrix B3 is avoided.

[0335] The final third basic matrix B is specifically:

[0336] First line:

[0337] 6,40,-1,-1,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,140,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,314,-1,-1,0, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0338] Second line:

[0339] -1,32,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,227,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,129,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3 3,0,-1 ...

[0340] Third line:

[0341] -1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,25 ,3,0,-1 ...

[0342] Fourth line:

[0343] -1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36, 38,26,0,-1 ...

[0344] Fifth line:

[0345] 47,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15 ,0,13,21,0,-1 ...

[0346] Line 6:

[0347] 46,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,- ... ,39,41,5,24,0,-1 ...

[0348] Line 7:

[0349] 43,42,-1 ... -1,24,-1,27,27,0,-1 ...

[0350] Line 8:

[0351] -1,35,-1 ... 1,-1,-1,35,19,6,35,0,-1 ...

[0352] Line 9:

[0353] -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, -1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,15,31,35,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0354] Line 10:

[0355] -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ,-1,-1,-1,-1,25,18,8,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0356] Line 11:

[0357] 33,-1 ... ,-1,26,-1,-1,-1,0,10,23,28,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0358] Line 12:

[0359] 22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,73,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,31,-1,19,13,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0360] Line 13:

[0361] 14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1 ... 1,-1,-1,-1,-1,-1,-1,-1,32,25,8,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0362] Line 14:

[0363] 18,-1 ... -1,-1,-1,-1,-1,-1,-1,3,21,28,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0364] Line 15:

[0365] 29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,21,17,18,35,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0366] Line 16:

[0367] 24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,12,37,25,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0368] Line 17:

[0369] 46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,11,32,40,37,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0370] Line 18:

[0371] 20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,33,15,4,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0372] Line 19:

[0373] 14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,41,24,29,4,21,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0374] Line 20:

[0375] 20,-1,-1,-1,-1,-1,8,-1 ... -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,23,21,31,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0376] Line 21:

[0377] 25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,7,1,32,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0378] Line 22:

[0379] 37,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,42,31,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0380] Line 23:

[0381] 51,16,-1 ... -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,36,-1,19,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0382] Line 24:

[0383] 31,- ... 1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,6,-1,-1,-1,-1,-1,27,1,0,14,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0384] Line 25:

[0385] 32,3,-1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,7,37,25,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0386] Line 26:

[0387] 22,-1,28,-1 ... ,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,35,7,18,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0388] Line 27:

[0389] 27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,29,35,11,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0390] Line 28:

[0391] 52,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,7, 8,11,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0392] Line 29:

[0393] -1, 21, -1, -1, -1, -1, -1, 23, -1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,33,20,22,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0394] Line 30:

[0395] 43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1 ...12,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,4,14,12,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0396] Line 31:

[0397] 21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,19,17,27,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0398] Line 32:

[0399] -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 158, -1, -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,6,35,7,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0400] Line 33:

[0401] 19,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,4,25,20,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0402] Line 34:

[0403] 15, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,32,39,24,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0404] Line 35:

[0405] 61,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,17,35,3,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0406] Line 36:

[0407] -1,-1,181,50,65,437,38,152,209,36,236,500,-1,-1,34,60,347,430,-1,7,-1,178,472,-1,-1,-1,417,-1,-1,37,60,212,-1,56,73,1,429,254,49,282,79,419,450,143,-1,103,295,63,88,408,-1,-1,415,479,-1,252,-1 ,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,15,44,2,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0408] Line 37:

[0409] 22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,164,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,119,-1 ... 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,19,14,41,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0410] Line 38:

[0411] 39, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,14,26,31,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0412] Line 39:

[0413] 59,18,-1,17,-1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,7,23,19,23,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0414] Line 40:

[0415] 10, 22, -1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,7,36,24,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0416] Line 41:

[0417] 27, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1 ... 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,30,16,15,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0418] Line 42:

[0419] 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,10,33,21,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0420] Line 43:

[0421] 61, 24, -1, -1, -1, -1, -1, 30, -1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,12,33,2,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0422] Line 44:

[0423] -1,-1,52,309,454,296,341,372,242,128,36,37,-1,-1,430,476,4,211,456,-1,129,214,349,134,3,113,448,-1,112,-1,112,332,400,54,298,-1,183,65,354,376,487,320,313,215,192,29,270,373,416,366,290,-1,337,157,-1,3 17,140,225,14,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,12,38,17,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0424] Line 45:

[0425] 10, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, -1 ... 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,1,9,17,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0426] Line 46:

[0427] 46,46,-1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,4,14,17,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0428] Line 47:

[0429] 14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,11,18,-1,2,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0430] Line 48:

[0431] 15, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,13,8,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0432] Line 49:

[0433] 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,25,8,36,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0434] Line 50:

[0435] 16, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,34,31,34,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0436] Line 51:

[0437] 65,38,-1 ... 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,3,-1,7,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0438] Line 52:

[0439] -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, 163, -1, 192, -1, 11, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, 33, - 1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,28,33,3,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0440] Line 53:

[0441] 31, 22, -1, -1, -1, -1, -1, -1, -1, -1, 14, -1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,11,19,6,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0442] Line 54:

[0443] 16,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,39,11,1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0444] Line 55:

[0445] 6,-1,-1,-1,-1,30,-1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,24,28,5,0,-1,-1,-1,-1,-1,-1,-1,-1,

[0446] Line 56:

[0447] 40,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,32,18,0,-1,-1,-1,-1,-1,-1,

[0448] Line 57:

[0449] 7,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,137,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,384,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,41,19,30,0,-1,-1,-1,-1,-1,-1,

[0450] Line 58:

[0451] 38,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,37,28,9,0,-1,-1,-1,-1,-1,

[0452] Line 59:

[0453] 2,29,-1 ... -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,28,23,34,0,-1,-1,-1,

[0454] Line 60:

[0455] 7,40,-1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0,15,34,22,0,-1,-1,

[0456] Line 61:

[0457] 7,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,- ...

[0458] Line 62:

[0459] 54,7,-1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,22,33,-1,0,

[0460] The third basic matrix B3 is expanded by an expansion ratio of 504 to obtain a 31248×61488-dimensional third parity check matrix H3. In one example, the "-1"s in the third basic matrix B3 are replaced with a 504×504-dimensional matrix Z consisting of all "0s," and the non-"-1"s in B3 are replaced with a 504×504-dimensional circulant permutation matrix P to obtain the third parity check matrix H3. The row number i and column number j of the "1"s in P satisfy j = (i+L) mod 504, where L is the offset of the circulant permutation matrix.

[0461] The offset of each cyclic permutation matrix P is arbitrarily selected and appropriately adjusted to further increase the shortest cycle length of the third check matrix H3.

[0462] A basic matrix table is generated according to the basic matrix, a circulant permutation matrix offset table is generated according to the offset of the circulant permutation matrix, and the basic matrix table and the circulant permutation matrix offset table are stored to solve the storage problem of the check matrix.

[0463] After obtaining the third check matrix H3, LDPC encoding is performed using the third check matrix H3. In one example, an information sequence containing 30240 information bits is input, and after encoding according to the third check matrix H3, a third LDPC code with a code length of 61488 is obtained.

[0464] In order to support high-order modulation, the information bits 1 to 1008 of the third LDPC code are deleted to obtain an LDPC code with a code length of 60480 bits and a code rate of 1 / 2, which is then output.

[0465] The punctured LDPC code has a code length of 60,480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiments of the present invention, through the careful design of the check matrix H, gives the first 1008 columns of the check matrix H a high weight. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 bits of the LDPC code. In addition, since most check equations are more likely to include the first 1008 information bits of the LDPC code, deleting the first 1008 bits of the LDPC code facilitates better recovery by the decoding algorithm without significantly compromising performance.

[0466] <Specific embodiment 4>:

[0467] Construct an LDPC code with a code rate of 3 / 4 suitable for satellite transmission system.

[0468] First, the code length N is selected as 61488, and the initial code rate R is 45 / 61, that is, the check matrix H to be constructed is a fourth check matrix H4 with a dimension of 16128×61488.

[0469] Calculate the set Φ of common factors of 16128 and 61488, and select a suitable expansion ratio K∈Φ. The expansion ratio K is selected as 504. Set the basic matrix B to be constructed in Example 4 as the fourth basic matrix B4, so that the dimension of the fourth basic matrix B4 is 32×122.

[0470] The row weights and column weights of the fourth basic matrix B4 are selected. For example, the row weight distribution of the fourth basic matrix B4 is {λ12,λ13,λ14,λ15,λ16,λ17,λ25,λ33}={3 / 32,12 / 32,5 / 32,7 / 32,2 / 32,1 / 32,1 / 32,1 / 32}, and the column weight distribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ21,ρ24}={1 / 122,1 / 122,89 / 122,12 / 122,6 / 122,2 / 122,3 / 122,6 / 122,1 / 122,1 / 122}.

[0471] For another example, the first two columns of the fourth basic matrix B4 are restricted to have relatively large column weights, that is, the column weights of the first column and the second column are greater than the column weights of other columns.

[0472] On the premise of satisfying row and column weight distribution, non-"-1" positions in each row and each column of the fourth basic matrix B4 are arbitrarily selected, but the 32×32-dimensional submatrix composed of the last 32 columns of the fourth basic matrix B4 is guaranteed to be full rank, and the existence of short cycles in the fourth basic matrix B4 is avoided.

[0473] The final fourth basic matrix B4 is specifically:

[0474] First line:

[0475] 40,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,325,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,235,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,8,204,-1,-1 ,-1,-1,-1,-1,-1,340,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,419,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0476] Second line:

[0477] -1,16,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,307,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,21,-1,-1,-1,35,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,288,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0478] Third line:

[0479] 13,7,-1,-1,-1,-1,-1,-1,415,-1,-1,5,-1,-1,-1,-1,-1,4,-1,33,-1 ... 1,-1,-1,-1,24,-1,-1,-1,-1,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,119,-1,-1,-1,448,35,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0480] Fourth line:

[0481] 26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,348,-1,20,-1,-1,-1,-1,-1,35,-1,411,-1,-1,-1,-1,-1,-1,-1,-1,60,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,420,278,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0482] Fifth line:

[0483] 11,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,321,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,17,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,271,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,157,79,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0484] Line 6:

[0485] -1,47,-1,-1,-1,-1,-1,11,-1,-1,-1,4,-1 ... ,-1,-1,-1,-1,22,-1,-1,-1,-1,12,-1,-1,0,-1,-1,-1,7,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,170,-1,-1,-1,-1,232,294,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0486] Line 7:

[0487] -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, 258, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, -1, 388, -1, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,78,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,386,-1,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,27,-1,-1,-1,374,-1,-1,-1,-1, 233,-1,-1,-1,-1,-1,-1,-1,-1,-1,212,442,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0488] Line 8:

[0489] 4,-1,-1,-1,21,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,37,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,34,-1,-1,73,180,-1,-1,-1,2,-1,5,-1,-1,-1,-1,379,-1,-1,-1,-1,450,-1,-1,-1,-1,-1,-1,-1,-1,-1,390,90,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0490] Line 9:

[0491] -1,28,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,65,-1,-1,-1,-1,-1,-1,-1,-1,-1,78,-1,-1,-1,-1,-1,-1,316,-1,-1,-1,-1,-1,360,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,167,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,125,130,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0492] Line 10:

[0493] -1,15,444,-1,-1,119,-1,12,460,-1,-1,-1,458,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1 ... 1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,266,214,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0494] Line 11:

[0495] 27,-1,-1,-1,11,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,453,479,24,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,17,-1,-1,-1,-1,-1,-1,-1,-1,498,-1,-1,21,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,145,-1,-1,-1,-1,-1,-1,-1,-1,-1,368,235,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0496] Line 12:

[0497] 1,17,-1,-1,-1,-1,366,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17, -1,14,-1,-1,-1,353,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,356,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,192,98,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0498] Line 13:

[0499] 5,-1,44,-1,-1,-1,-1,-1,-1,16,25,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,285,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,245,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,28,-1,-1,465,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,254,456,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0500] Line 14:

[0501] -1,35,-1,-1,-1,-1,142,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,114,-1,-1,-1,-1,317,388,-1,-1,-1,-1,-1,-1,-1,27 2,-1,58,275,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,501,241,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0502] Line 15:

[0503] 16, 21, -1, -1, -1, 376, -1, -1, -1, -1, 21, 115, -1, 440, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,462,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,287,331,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0504] Line 16:

[0505] 33,36,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,37,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,473,-1,-1,-1,-1,-1,-1,-1,-1,90,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,44,183,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0506] Line 17:

[0507] 1,-1,-1,5,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,28,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,- ... 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,-1,-1,-1,251,-1,-1,40,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,356,428,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0508] Line 18:

[0509] -1,18,-1 ... 1,-1,-1,-1,-1,-1,255,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,347,-1,151,-1,311,-1,291,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,354,445,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0510] Line 19:

[0511] -1,4,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,28,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,134,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,245,324,-1 ,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,119,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,218,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,141,15,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0512] Line 20:

[0513] -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 379, 37, -1, 483, -1, -1, -1, -1, -1, -1, 188, -1, 43, -1, -1, 313, -1, 129, -1, 11, -1, 20, -1, -1, -1, 58, -1, -1, -1, -1, -1, 45, -1, 492, -1, 6, -1, -1, -1, 38, 133, -1, -1, -1, -1, 345, 3 58,429,-1,144,-1,-1,91,-1,-1,340,-1,-1,347,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0514] Line 21:

[0515] 23, 27, -1, -1, -1, 286, -1, -1, -1, 418, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, 107, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,462,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,5,-1,238, -1,-1,119,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,109,334,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0516] Line 22:

[0517] 11,12,-1,-1,-1,-1,-1,-1,-1,76,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,496,-1,-1,-1,-1,-1,-1,206,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,75,-1,-1,-1,-1,141,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,213,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,173,56,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0518] Line 23:

[0519] 38,49,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,79,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,262,-1,-1,-1,-1,-1,96,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,36,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,228,312,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0520] Line 24:

[0521] 3,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,388,102,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,159,-1,2,-1,-1,348,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,251,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,283,383,0,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0522] Line 25:

[0523] 15,14,-1,-1,-1,-1,-1,-1,-1,27,-1,17,-1,-1,-1,-1,-1,-1,281,-1,-1,-1,-1,494,-1,-1,-1,-1,-1,-1,-1,-1,-1,194,-1 ... 1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,231,498,0,-1,-1,-1,-1,-1,-1,-1,-1

[0524] Line 26:

[0525] -1,-1,322,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,92,-1,101,135,-1,483,52,372,-1,-1,4,218,-1,-1,-1,80,-1,403,-1,-1, 266,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,349,-1,237,491,-1,-1,-1,359,301,180,138,178,231,-1,-1,335,-1,-1,392,-1,336,1,-1,-1,-1,-1,10,-1, 99,-1,-1,-1,-1,-1,-1,-1,242,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,124,56,0,-1,-1,-1,-1,-1,-1,-1

[0526] Line 27:

[0527] 47, 28, -1, -1, -1, -1, -1, 488, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, 351, -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,77,131,0,-1,-1,-1,-1,-1

[0528] Line 28:

[0529] 23, 21, -1, -1, 23, -1, -1, 25, -1, -1, 37, -1, -1, 183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 471, -1, -1, -1, -1, -1, -1, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,286,-1,-1,207,296,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,284,380,0,-1,-1,-1,-1

[0530] Line 29:

[0531] 62,46,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,430,10,-1,8,-1,-1,-1,-1,223,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,147,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,11,-1,-1,281,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,94,70,0,-1,-1,-1

[0532] Line 30:

[0533] 39,58,-1,-1,-1,-1,-1,30,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,4,0,-1,-1

[0534] Line 31:

[0535] 31, 48, -1, -1, 26, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,45,0,0,-1

[0536] Line 32:

[0537] -1,43,-1,17,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,22,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,6,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,13,3,-1,-1,17,-1 ...

[0538] The fourth basic matrix B4 is expanded by an expansion ratio of 504 to obtain a 16128×61488-dimensional fourth check matrix H4. In one example, the "-1"s in the fourth basic matrix B4 are replaced with a 504×504-dimensional matrix Z consisting of all "0s," and the non-"-1"s in B4 are replaced with a 504×504-dimensional circulant permutation matrix P to obtain the fourth check matrix H4. The row number i and column number j of the "1"s in P satisfy j = (i+L) mod 504, where L is the offset of the circulant permutation matrix.

[0539] The offset of each cyclic permutation matrix P is arbitrarily selected and appropriately adjusted to further increase the shortest cycle length of the fourth check matrix H4.

[0540] A basic matrix table is generated according to the basic matrix, a circulant permutation matrix offset table is generated according to the offset of the circulant permutation matrix, and the basic matrix table and the circulant permutation matrix offset table are stored to solve the storage problem of the check matrix.

[0541] After obtaining the fourth check matrix H4, LDPC coding is performed using the fourth check matrix H4. In one example, an information sequence containing 45360 information bits is input, and after coding according to the fourth check matrix H4, a fourth LDPC code with a code length of 61488 is obtained.

[0542] In order to support high-order modulation, the information bits 1 to 1008 of the fourth LDPC code are deleted to obtain an LDPC code with a code length of 60480 bits and a code rate of 3 / 4, which is then output.

[0543] The punctured LDPC code has a code length of 60,480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiment of the present invention, through the careful design of the check matrix H, gives the first 1008 columns of the check matrix H a high weight. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 bits of the LDPC code. In addition, since most check equations are more likely to include the first 1008 information bits of the LDPC code, deleting the first 1008 bits of the LDPC code facilitates better recovery by the decoding algorithm without significantly losing performance.

[0544] <Specific embodiment 5>:

[0545] Construct an LDPC code with a code rate of 2 / 5 suitable for satellite transmission system.

[0546] First, the code length N is selected as 61488, and the initial code rate is 24 / 61, that is, the check matrix H to be constructed is a fifth check matrix H5 with a dimension of 37296×61488.

[0547] Calculate the set Φ of common factors of 37296 and 61488, and select a suitable expansion ratio K∈Φ. The expansion ratio K is selected as 504. Set the basic matrix B to be constructed in Example 5 as the fifth basic matrix B5, so that the dimension of the fifth basic matrix B is 74×122.

[0548] Select the row weight and column weight of the fifth basic matrix B5. For example, the row weight distribution of the fifth basic matrix B5 is {λ6,λ7,λ8,λ9,λ13,λ24,λ25,λ33,λ34}={35 / 74,16 / 74,13 / 74,5 / 74,1 / 74,1 / 74,1 / 74,1 / 74,1 / 74},

[0549] The column redistribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ9,ρ10,ρ11,ρ50,ρ56}={39 / 122,16 / 122,11 / 122,5 / 122,8 / 122,6 / 122,10 / 122,10 / 122,8 / 122,5 / 122,2 / 122,1 / 122,1 / 122}.

[0550] For another example, the first two columns of the fifth basic matrix B5 are restricted to have relatively large column weights, that is, the column weights of the first column and the second column are greater than the column weights of other columns.

[0551] On the premise of satisfying the row and column weight distribution, the non-"-1" positions in each row and each column of the fifth basic matrix B5 are arbitrarily selected, but the 74×74-dimensional submatrix composed of the last 74 columns of the fifth basic matrix B5 is guaranteed to be full rank, and the existence of short cycles in the fifth basic matrix B5 is avoided.

[0552] The fifth basic matrix B5 finally obtained is specifically:

[0553] First line:

[0554] 16,-1,-1,-1,-1,-1,33,132,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0555] Second line:

[0556] -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, 6, -1, 32, 29, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0557] Third line:

[0558] 36,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0559] Fourth line:

[0560] -1,20,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,89,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0561] Fifth line:

[0562] 0,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0563] Line 6:

[0564] -1,5,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0565] Line 7:

[0566] 38,31,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,41,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0567] Line 8:

[0568] -1,19,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,100,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0569] Line 9:

[0570] 36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0571] Line 10:

[0572] 0,-1,-1,-1,-1,41,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0573] Line 11:

[0574] 13,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0575] Line 12:

[0576] -1,19,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0577] Line 13:

[0578] -1,9,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,18,-1,34,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0579] Line 14:

[0580] 25,1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0581] Line 15:

[0582] 25,-1,11,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,- 1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0583] Line 16:

[0584] 20,-1,-1,32,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,15,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0585] Line 17:

[0586] 11,-1,-1,-1,81,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0587] Line 18:

[0588] -1, 23, -1, -1, -1, -1, -1, -1, 16, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0589] Line 19:

[0590] 38,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,75,116,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0591] Line 20:

[0592] 32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,162,-1,-1,-1,-1,366,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0593] Line 21:

[0594] 19,-1,-1,170,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,443,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0595] Line 22:

[0596] -1, 13, -1, 12, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, ,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0597] Line 23:

[0598] 4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0599] Line 24:

[0600] -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, 39, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0601] Line 25:

[0602] -1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,273,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0603] Line 26:

[0604] 20,-1,-1,57,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,63,-1,-1,-1,-1,-1,-1,-1,79,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0605] Line 27:

[0606] 11,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,202,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0607] Line 28:

[0608] -1,17,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,73,-1,-1,-1,-1,-1,-1,-1,1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0609] Line 29:

[0610] -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, 27, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0611] Line 30:

[0612] 16,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,233,-1,-1,-1,-1,0, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0613] Line 31:

[0614] 25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,3,-1,27,29,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0615] Line 32:

[0616] -1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0617] Line 33:

[0618] 42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1, -1, -1, -1, -1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0619] Line 34:

[0620] 24,51,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0621] Line 35:

[0622] 46,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0623] Line 36:

[0624] 4,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,52,-1,395,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0625] Line 37:

[0626] 20,3,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0627] Line 38:

[0628] 37,31,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0629] Line 39:

[0630] 11,53,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,84,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,74,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0631] Line 40:

[0632] 49,49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1 ... ,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0633] Line 41:

[0634] 15, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0635] Line 42:

[0636] 38,45,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,392,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,157,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0637] Line 43:

[0638] 22, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, 8, -1, -1, -1, 41, -1, -1, 21, -1, -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0639] Line 44:

[0640] 65,77,-1,-1,-1,-1,-1,-1,-1,-1,-1,331,-1,-1,4,39,298,-1,-1,-1,-1,308,400,50,207,38,-1,-1,-1,-1,464,32,-1,52,-1,-1,110,-1,4,187,-1,-1,-1,68,-1,34,95,-1,64,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,287,-1,42,387,-1,-1,216,385,12,-1,-1,270,-1,-1,-1,-1,13,246,-1,14,-1,-1,-1,434,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0641] Line 45:

[0642] 42,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0643] Line 46:

[0644] -1, 27, -1, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,61,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0645] Line 47:

[0646] -1,44,-1,-1,-1,32,-1,136,-1,22,30,461,28,-1,-1,-1,-1,-1,5,-1,408,267,337,-1,-1,23,61,37,-1,-1,285,12,-1,72,-1,-1,-1,125,216,-1,91,-1,71,255,-1,-1,214,-1,33,-1,-1,67,-1,-1,-1,-1,-1,70,-1,-1, -1, -1, -1, -1,133,-1, -1, -1, -1,220,-1, -1, -1, -1,433,-1, -1, 224,-1, -1, -1, -1, 4,34,-1, -1, -1, -1, -1, 463,-1, -1, -1, -1, 0,-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[0647] Line 48:

[0648] 1,47,-1,-1,-1,-1,-1,-1,5,-1,-1,279,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,56,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,146,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0649] Line 49:

[0650] 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 50th row:

[0651] 64,7,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0652] Line 51:

[0653] 43,3,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0654] Line 52:

[0655] 21,0,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0656] Line 53:

[0657] 9,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,45,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0658] Line 54:

[0659] 15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,19,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0660] Line 55:

[0661] 55,9,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,4,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1 ... 1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0662] Line 56:

[0663] 65,35,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,16,-1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0664] Line 57:

[0665] 33, 66, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,-1,-1,47,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0666] Line 58:

[0667] 21,61,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0668] Line 59:

[0669] 36,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0670] Line 60:

[0671] 28,38,-1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,65,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0672] Line 61:

[0673] 42,56,-1,85,-1,-1,-1,-1,-1,9,-1,-1,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,140,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,73,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,328,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0674] Line 62:

[0675] 45,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,47,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0676] Line 63:

[0677] 34,7,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0678] Line 64:

[0679] 26, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0680] Line 65:

[0681] 96, 65, 25, -1, -1, -1, 5, -1, -1, 39, 44, -1, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, 19, -1, -1, -1, -1, 27, -1, -1, 17, -1, -1, 18, -1, 34, -1, 13, 17, -1, 24, -1, -1, 2, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,-1,-1,22,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,24,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0682] Line 66:

[0683] -1, -1, -1, -1, -1, -1, -1, -1, 12, 24, 434, -1, -1, -1, 15, -1, -1, 21, 188, 130, 398, -1, -1, 14, -1, -1, -1, 34, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 25, -1, 76, 70, -1, -1, 28, -1, -1, -1, 10, -1, -1, -1, -1, -1, 225, -1, -1 ,-1,-1,-1,-1,7,-1,-1,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,456,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,41,-1,-1,-1,30,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0684] Line 67:

[0685] -1,36,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,139,0,-1,-1,-1,-1,-1,-1,-1,-1,

[0686] Line 68:

[0687] 25,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,

[0688] Line 69:

[0689] 28,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,2,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,

[0690] Line 70:

[0691] 29,6,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,0,-1,-1,-1,-1,-1,

[0692] Line 71:

[0693] 4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,11,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,

[0694] Line 72:

[0695] -1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,139,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,32,100,-1,-1,-1,0,-1,-1,

[0696] Line 73:

[0697] 42, 24, -1, -1, -1, -1, -1, 38, -1 ... ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,15,15,-1,-1,-1,-1,0,-1,

[0698] Line 74:

[0699] 15,-1,-1,9,-1,-1,-1,-1,-1,8,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,25,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,0,

[0700] The fifth basic matrix B5 is expanded by an expansion ratio of 504 to obtain a 37296×61488-dimensional fifth parity check matrix H5. In one example, the "-1"s in the fifth basic matrix B5 are replaced with a 504×504-dimensional matrix Z consisting of all "0s," and the non--1s in B5 are replaced with a 504×504-dimensional circulant permutation matrix P to obtain the fifth parity check matrix H5. The row number i and column number j of the "1"s in P satisfy j = (i+L) mod 504, where L is the offset of the circulant permutation matrix.

[0701] The offset of each cyclic permutation matrix P is arbitrarily selected and appropriately adjusted to further increase the shortest cycle length of the fifth check matrix H5.

[0702] A basic matrix table is generated according to the basic matrix, a circulant permutation matrix offset table is generated according to the offset of the circulant permutation matrix, and the basic matrix table and the circulant permutation matrix offset table are stored to solve the storage problem of the check matrix.

[0703] After obtaining the fifth check matrix H5, LDPC encoding is performed using the fifth check matrix H5. In one example, an information sequence containing 24192 information bits is input, and after encoding according to the fifth check matrix H5, a fifth LDPC code with a code length of 61488 is obtained.

[0704] In order to support high-order modulation, the information bits 1 to 1008 of the fifth LDPC code are deleted to obtain an LDPC code with a code length of 60480 bits and a code rate of 2 / 5, which is then output.

[0705] The punctured LDPC code has a code length of 60,480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiments of the present invention carefully designs the check matrix H, giving the first 1008 columns of the check matrix H a high weight. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 bits of the LDPC code. Furthermore, since most check equations are more likely to include the first 1008 information bits of the LDPC code, deleting the first 1008 bits of the LDPC code facilitates better recovery by the decoding algorithm without significantly compromising performance.

[0706] <Specific embodiment 6>:

[0707] Construct an LDPC code with a code rate of 3 / 5 suitable for satellite transmission system.

[0708] First, the code length N is selected as 61488, and the initial code rate is selected as 36 / 61, that is, the check matrix H to be constructed is a sixth check matrix H6 with a dimension of 25200×61488.

[0709] Calculate the set Φ of common factors of 25200 and 61488, and select a suitable expansion ratio K∈Φ. The expansion ratio K is selected as 504. Set the basic matrix B to be constructed in Example 6 as the sixth basic matrix B6, so that the dimension of the sixth basic matrix B6 is 50×122.

[0710] The row weights and column weights of the sixth basic matrix B6 are selected. For example, the row weight distribution of the sixth basic matrix B6 is {λ8,λ9,λ10,λ11,λ16,λ27,λ39}={1 / 50,13 / 50,24 / 50,9 / 50,1 / 50,1 / 50,1 / 50}, and the column weight distribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ10,ρ12,ρ38,ρ40}={4 / 122,17 / 122,50 / 122,19 / 122,12 / 122,7 / 122,2 / 122,3 / 122,4 / 122,2 / 122,1 / 122,1 / 122}.

[0711] For another example, the first two columns of the sixth basic matrix B6 are restricted to have relatively large column weights, that is, the column weights of the first column and the second column are greater than the column weights of other columns.

[0712] On the premise of satisfying the row and column weight distribution, the non-"-1" positions in each row and each column of the sixth basic matrix B6 are arbitrarily selected, but the 50×50-dimensional submatrix consisting of the last 50 columns of the sixth basic matrix B6 is guaranteed to be full rank, and the existence of short cycles in the sixth basic matrix B6 is avoided.

[0713] The final sixth basic matrix B6 is specifically:

[0714] First line:

[0715] 37,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,426,-1,-1,-1,-1,-1,-1,-1,-1,0,216,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0716] Second line:

[0717] 42,-1,37,-1,22,-1 ... -1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,37,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0718] Third line:

[0719] -1,11,6,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,90,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0720] Fourth line:

[0721] -1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,41,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0722] Fifth line:

[0723] -1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,298,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,447,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,75,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0724] Line 6:

[0725] -1,33,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,- 1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,30,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0726] Line 7:

[0727] 6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,173,31,-1,-1,17,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,8,91,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0728] Line 8:

[0729] 20,-1,-1,-1,10,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,310,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,76,-1,358,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,414,438,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0730] Line 9:

[0731] 10,-1,-1,-1,21,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,4,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,46,29,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0732] Line 10:

[0733] 39,-1,17,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0734] Line 11:

[0735] 45,-1,-1,-1,42,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0736] Line 12:

[0737] -1,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,111,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,187,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,47,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0738] Line 13:

[0739] 19,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,28,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0740] Line 14:

[0741] -1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,9,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,52,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,18,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0742] Line 15:

[0743] -1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,92,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0744] Line 16:

[0745] -1,6,-1,442,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1 ... -1,14,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0746] Line 17:

[0747] 14,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,12,-1,132,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,15,137,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0748] Line 18:

[0749] -1,44,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,14,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0750] Line 19:

[0751] 0,50,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,135,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,331,-1,7,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,8,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0752] Line 20:

[0753] 6,-1,-1,-1,13,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,125,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,107,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0754] Line 21:

[0755] 25, 15, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,147,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0756] Line 22:

[0757] 8, 23, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,28,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0758] Line 23:

[0759] 2,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,105,-1,-1,-1,-1,-1,-1,-1,1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,28 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,71,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0760] Line 24:

[0761] 23,0,-1,-1,-1,-1,-1,-1,-1,37,-1 ... -1,-1,-1,-1,-1,27,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,36,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0762] Line 25:

[0763] 5,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,28,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,9,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0764] Line 26:

[0765] 29,11,48,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,19,-1 ... ,-1,-1,-1,17,453,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0766] Line 27:

[0767] 38,48,-1,-1,-1,-1,145,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,75,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0768] Line 28:

[0769] 67,17,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,13,3,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0770] Line 29:

[0771] 50,42,-1,-1,-1,-1,-1,43,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,3,2,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,428,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,108,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0772] Line 30:

[0773] -1,26,13,-1,-1,-1,-1,-1,282,-1,260,-1,437,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,488,-1,-1,-1,-1,-1,-1,-1,-1,362,48,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,10,-1,-1,-1,-1,-1,17,-1,325,-1,-1,2,265,-1,-1,-1,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,157,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0774] Line 31:

[0775] 26,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,59,-1,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,109,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,297,261,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0776] Line 32:

[0777] 13,13,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,405,-1,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,123,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0778] Line 33:

[0779] 56,0,-1,-1,-1,-1,-1,31,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1 ... 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,77,131,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0780] Line 34:

[0781] 32,52,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,33,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0782] Line 35:

[0783] 54,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,94,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,79,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0784] Line 36:

[0785] -1, -1, -1,162, -1, -1,441, -1, -1, -1, -1, -1,176, -1, -1, -1, -1, -1, -1, -1,40, -1,81, -1,21, -1, -1, -1, -1,101, -1,49, -1,195,404, -1, -1,498, -1,46, -1, -1, -1, -1, -1, -1, -1,84,373, -1,258,484, -1, -1, -1,81, -1, -1, -1, 74,474,428,-1,-1,111,-1,-1,-1,-1,476,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,267,312,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0786] Line 37:

[0787] 54,56,23,-1,-1,-1,-1,-1,-1,36,-1,-1,356,6,-1 ... -1,-1,-1,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,53,436,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0788] Line 38:

[0789] 40, 51, -1, -1, -1, -1, -1, -1, 84, 26, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,403,11,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0790] Line 39:

[0791] 3,8,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,116,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,74,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0792] Line 40:

[0793] 53,42,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,3,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0794] Line 41:

[0795] 2,6,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,65,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,102,-1,-1,-1,-1,-1,-1,-1,36,4,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,502,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0796] Line 42:

[0797] 1,55,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,432,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,38,-1,-1,-1,-1,113,-1,12,-1,-1,-1,-1,-1,-1, 266,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,313,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0798] Line 43:

[0799] 25, 23, 40, -1, 3, -1, -1, 35, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,285,353,0,-1,-1,-1,-1,-1,-1,-1,-1,

[0800] Line 44:

[0801] -1, -1, -1,164, -1, -1,473, -1,14, -1,199, -1, -1,31, -1, -1, -1, -1, -1, -1, -1, 503, 196, 476, 473, -1, -1, 427, 4, 117, -1, -1, -1, 25, -1, -1, -1, 38 1,-1,-1,126,-1,43,-1,151,86,-1,201,335,193,480,-1,235,-1,24,324,39,-1,-1,-1,63,-1,-1,-1,4,-1,-1,12,-1,202,-1,224,-1,-1,-1,-1, -1,-1,-1,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,151,-1,-1,-1,-1,-1,-1,-1,-1,269,-1,17,-1,198,-1,-1,-1,-1,-1,-1,337,440,0,-1,-1,-1,-1,-1,-1,-1,

[0802] Line 45:

[0803] 43,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,227,378,0,-1,-1,-1,-1,-1,

[0804] Line 46:

[0805] 36, 24, 43, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, -1, 3, -1, -1, 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,304,19,0,-1,-1,-1,-1,

[0806] Line 47:

[0807] 12, 26, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, 65,-1 ...

[0808] Line 48:

[0809] 16, 19, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, -1, -1, -1, 26, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,-1,38,0,-1,-1,

[0810] Line 49:

[0811] 60,53,-1,-1,0,-1,-1,-1,-1,-1,26,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,

[0812] Line 50:

[0813] 13,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,18,-1,13,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,0,

[0814] The sixth basic matrix B6 is expanded by an expansion ratio of 504 to obtain a 25200×61488-dimensional sixth parity check matrix H6. In one example, the "-1"s in the sixth basic matrix B6 are replaced with a 504×504-dimensional matrix Z consisting of all "0s," and the non-"-1"s in B6 are replaced with a 504×504-dimensional circulant permutation matrix P to obtain the sixth parity check matrix H6. The row number i and column number j of the "1"s in P satisfy j = (i + L) mod 504, where L is the offset of the circulant permutation matrix.

[0815] The offset of each cyclic permutation matrix P is arbitrarily selected and appropriately adjusted to further increase the shortest cycle length of the sixth check matrix H6.

[0816] A basic matrix table is generated according to the basic matrix, a circulant permutation matrix offset table is generated according to the offset of the circulant permutation matrix, and the basic matrix table and the circulant permutation matrix offset table are stored to solve the storage problem of the check matrix.

[0817] After obtaining the sixth check matrix H6, LDPC coding is performed using the sixth check matrix H6. In one example, an information sequence containing 36288 information bits is input, and after coding according to the sixth check matrix H6, a sixth LDPC code with a code length of 61488 is obtained.

[0818] In order to support high-order modulation, the information bits 1 to 1008 of the sixth LDPC code are deleted to obtain an LDPC code with a code length of 60480 bits and a code rate of 3 / 5, which is then output.

[0819] The punctured LDPC code has a code length of 60,480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiment of the present invention, through the careful design of the check matrix H, gives the first 1008 columns of the check matrix H a high weight. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 bits of the LDPC code. In addition, since most check equations are more likely to include the first 1008 information bits of the LDPC code, deleting the first 1008 bits of the LDPC code facilitates better recovery by the decoding algorithm without significantly losing performance.

[0820] <Specific embodiment 7>:

[0821] Construct an LDPC code with code rate 4 / 5 suitable for satellite transmission system.

[0822] First, the code length N is selected as 61488, and the initial code rate is 48 / 61, that is, the check matrix H to be constructed is a seventh check matrix H7 with a dimension of 13104×61488.

[0823] Calculate the set Φ of common factors of 13104 and 61488, and select a suitable expansion ratio K∈Φ. The expansion ratio K is selected as 504. Set the basic matrix B to be constructed in Example 7 to be the seventh basic matrix B7, so that the dimension of the seventh basic matrix B7 is 26×122.

[0824] Select the row weight and column weight of the seventh basic matrix B7. For example, the row weight distribution of the seventh basic matrix B7 is {λ15,λ16,λ17,λ18,λ19,λ20,λ23,λ34}={2 / 26,12 / 26,7 / 26,1 / 26,1 / 26,1 / 26,1 / 26,1 / 26},

[0825] The column weight distribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ19,ρ21}={1 / 122,8 / 122,80 / 122,16 / 122,5 / 122,4 / 122,3 / 122,3 / 122,1 / 122,122}.

[0826] For another example, the first two columns of the seventh basic matrix B7 are restricted to have relatively large column weights, that is, the column weights of the first column and the second column are greater than the column weights of other columns.

[0827] On the premise of satisfying row and column weight distribution, non-"-1" positions in each row and each column of the seventh basic matrix B7 are arbitrarily selected, but the 26×26-dimensional submatrix composed of the last 26 columns of the seventh basic matrix B7 is guaranteed to be full rank, and the existence of short cycles in the seventh basic matrix B7 is avoided.

[0828] The final seventh basic matrix B7 is specifically:

[0829] First line:

[0830] 11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,8,-1,-1,27,-1,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,-1,-1,-1,-1,17,-1,-1,27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,15,-1,-1,-1,-1, -1,-1,-1,1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,55,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0831] Second line:

[0832] -1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,-1,-1,22,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,0 ,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,38,-1,-1,-1,14,-1,24,-1,-1,-1,35,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0833] Third line:

[0834] -1,40,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,33,4,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,32,-1,34,-1,-1,-1,-1,31,-1,-1,11,-1,-1,-1,-1,-1,9,-1,-1,-1,44,11,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0835] Fourth line:

[0836] 39,-1,-1,-1,-1,73,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,45,-1,-1,-1,-1,238,-1,-1,-1,17,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,44,-1,-1,-1,12,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,95,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,29,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,78,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0837] Fifth line:

[0838] 48, 24, -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, 9, -1, 32, 28, 36, -1, -1, -1, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, 8, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,29,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0839] Line 6:

[0840] 9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,35,-1,309,-1,-1,-1,-1,40,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,75,-1,-1 ,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,28,-1,-1,-1,-1,-1,16,-1,-1,3,-1,28,-1,-1,-1,-1,-1,20,85,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0841] Line 7:

[0842] -1,37,-1,-1,-1,-1,-1,-1,-1,393,-1,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,174,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,79,-1,187,462,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,149,-1,-1,-1,-1,-1,-1,24,-1,-1,128,-1,6,-1,-1,-1,-1,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,117,228,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0843] Line 8:

[0844] -1,20,-1,-1,-1,-1,343,-1,-1,-1,491,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,457,-1,-1,444,89,-1,-1,331,-1,-1,-1,-1,371,-1,-1,-1,-1,-1,-1,107,387,-1,-1,-1,-1,6,84,-1,-1,-1,-1,454,-1,8 6,-1,-1,266,-1,-1,-1,-1,60,-1,-1,-1,338,108,-1,444,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,292,89,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0845] Line 9:

[0846] 26,-1,-1,-1,-1,-1,496,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,26,36,-1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,125,-1,176,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 89,-1,-1,-1,-1,475,-1,-1,289,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,261,215,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0847] Line 10:

[0848] 47,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,21,191,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,122,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,123,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,203,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,93,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,196,419,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0849] Line 11:

[0850] 1,14,-1,-1,189,-1,-1,311,-1,-1,-1,-1,-1,409,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,156,-1,-1,-1,66,474,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,342,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,24,87,292,-1,-1,91,-1,-1,-1,-1,-1,-1,-1,-1,317,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,391,234,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0851] Line 12:

[0852] -1,27,441,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,-1,-1,-1,-1,357,-1,-1,-1,91,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,440,-1,224,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,499,-1,-1,-1,-1,-1, -1,70,-1,74,-1,22,-1,-1,-1,148,12,-1,-1,57,-1,-1,-1,50,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,252,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0853] Line 13:

[0854] 5,0,-1,-1,-1,30,-1,-1,91,-1,-1,82,-1,-1,-1,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,399,-1 ,-1,-1,-1,-1,-1,-1,-1,452,-1,-1,-1,-1,201,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,176,147,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0855] Line 14:

[0856] -1,30,-1,-1,-1,-1,-1,31,-1,282,190,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,45,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,494,-1,465,-1,-1,-1,-1,-1,-1,-1,-1,485,-1,4,-1,-1,269,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,298,-1,-1,429,-1,-1,-1,-1,-1,283,-1,-1,19,157,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,83,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,197,195,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0857] Line 15:

[0858] 8,6,-1,-1,-1,-1,-1,-1,77,-1,-1,-1,-1,-1,-1,134,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,54,-1,-1,5,-1,221,-1,-1,-1,37,-1,-1,187,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,188,46,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0859] Line 16:

[0860] 39,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40,1,-1,0,-1,-1,-1,18,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,147,26,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,18,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,86,44,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0861] Line 17:

[0862] 7,45,-1,12,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,28,12,-1 ... -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,23,-1,-1,-1,-1,44,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,70,61,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0863] Line 18:

[0864] 38,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,-1,-1,14,-1,304,-1,-1,-1,-1,204,-1,-1,-1,-1,-1,-1,-1,-1,102,33,-1,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,152,-1,-1,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,53,15,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0865] Line 19:

[0866] 42,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,81,-1,-1,-1,197,-1,-1,-1,-1,-1,171,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,103,13,-1,39,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,289,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,224,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,23,29,0,-1,-1,-1,-1,-1,-1,-1,-1,

[0867] Line 20:

[0868] -1,-1,317,282,-1,-1,-1,98,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,496,-1,-1,4,-1,-1,207,122,-1,-1,71,468,380,-1,-1,-1,-1,-1,-1,-1,-1,-1,391,275,4,41,138,44,-1,-1,-1,472,-1,-1,161,-1,12 4,410,74,268,-1,-1,-1,-1,162,426,-1,208,133,-1,-1,354,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50,54,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,188,0,-1,-1,-1,-1,-1,-1,-1,

[0869] Line 21:

[0870] 13, 1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 75, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,300,-1,-1,-1,-1,-1,207,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,38,14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,186,72,0,-1,-1,-1,-1,-1,

[0871] Line 22:

[0872] 44,21,-1,-1,183,121,-1,-1,-1,-1,-1,77,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,239,89,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,46,-1,6,-1,-1,-1,468,-1,-1,-1,-1,36,-1,-1,-1,251,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,12,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,492,61,0,-1,-1,-1,-1,

[0873] Line 23:

[0874] 4,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,214,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,403,-1,-1,-1,-1,-1,23,-1,-1,-1,-1,301,-1,-1,-1,-1,-1,-1,12,168,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,103,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,-1,-1,4,16,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,106,50,0,-1,-1,-1,

[0875] Line 24:

[0876] 22,36,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,23,-1, -1, -1, -1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,-1,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,9,0,-1,-1,

[0877] Line 25:

[0878] 54,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,21,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,17,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,15,-1,-1,-1,9,-1,-1,23,-1,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,6,0,-1,

[0879] Line 26:

[0880] 39, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, 27, -1, -1, -1, -1, 28, 35, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,10,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,25,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,40,0,

[0881] The seventh basic matrix B7 is expanded by an expansion ratio of 504 to obtain a 13104×61488-dimensional seventh parity check matrix H7. In one example, the "-1"s in the seventh basic matrix B7 are replaced with a 504×504-dimensional matrix Z consisting of all "0s," and the non-"-1"s in B7 are replaced with a 504×504-dimensional circulant permutation matrix P to obtain the seventh parity check matrix H7. The row number i and column number j of the "1"s in P satisfy j = (i + L) mod 504, where L is the offset of the circulant permutation matrix.

[0882] The offset of each cyclic permutation matrix P is arbitrarily selected and appropriately adjusted to further increase the shortest cycle length of the seventh check matrix H7.

[0883] A basic matrix table is generated according to the basic matrix, a circulant permutation matrix offset table is generated according to the offset of the circulant permutation matrix, and the basic matrix table and the circulant permutation matrix offset table are stored to solve the storage problem of the check matrix.

[0884] After obtaining the seventh check matrix H7, LDPC coding is performed using the seventh check matrix H7. In one example, an information sequence containing 48384 information bits is input, and after coding according to the seventh check matrix H7, a seventh LDPC code with a code length of 61488 is obtained.

[0885] In order to support high-order modulation, the information bits 1 to 1008 of the seventh LDPC code are deleted to obtain an LDPC code with a code length of 60480 bits and a code rate of 4 / 5, which is then output.

[0886] The punctured LDPC code has a code length of 60,480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiment of the present invention, through the careful design of the check matrix H, gives the first 1008 columns of the check matrix H a high weight. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 bits of the LDPC code. In addition, since most check equations are more likely to include the first 1008 information bits of the LDPC code, deleting the first 1008 bits of the LDPC code facilitates better recovery by the decoding algorithm without significantly losing performance.

[0887] <Specific embodiment 8>:

[0888] Construct an LDPC code with a code rate of 5 / 6 suitable for satellite transmission system.

[0889] First, the code length N is selected as 61488, and the initial code rate is selected as 50 / 61, that is, the check matrix H to be constructed is an eighth check matrix H8 with a dimension of 11088×61488.

[0890] Calculate the set Φ of common factors of 11088 and 61488, and select a suitable expansion ratio K∈Φ. The expansion ratio K is selected as 504. Set the basic matrix B to be constructed in Example 8 to be the eighth basic matrix B8, so that the dimension of the eighth basic matrix B8 is 22×122.

[0891] The row weights and column weights of the eighth base matrix B8 are selected. For example, the row weight distribution of the eighth base matrix B8 is {λ18,λ19,λ20,λ21,λ22,λ36}={7 / 22,5 / 22,6 / 22,2 / 22,1 / 22,1 / 22}, and the column weight distribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ16,ρ19}={1 / 122,9 / 122,84 / 122,14 / 122,3 / 122,3 / 122,2 / 122,4 / 122,1 / 122,1 / 122}.

[0892] For another example, the first two columns of the eighth basic matrix B8 are restricted to have relatively large column weights, that is, the column weights of the first column and the second column are greater than the column weights of other columns.

[0893] On the premise of satisfying the row weight and column weight distribution, the non-"-1" position in each row and each column of the eighth basic matrix B8 is arbitrarily selected, but the 22×22-dimensional submatrix composed of the last 22 columns of the eighth basic matrix B8 is guaranteed to be full rank, and the existence of short cycles in the eighth basic matrix B8 is avoided.

[0894] The final eighth basic matrix B8 is specifically:

[0895] First line:

[0896] -1,61,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,363,-1,-1,-1,-1,-1,421,37,-1,-1,-1,-1,-1,-1,492,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,43,-1,-1,503,-1,-1,-1,-1,431,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,71,9,-1,-1,-1,-1,-1,-1,-1,8,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,34,174,-1,-1,-1,-1,-1,-1,15,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0897] Second line:

[0898] 23,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,-1,415,-1,20,6,-1,39,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,209,-1,-1,-1,-1,-1,-1,230,-1,-1,-1,255,-1,-1,33,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,188,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,32,-1,-1,-1,-1,-1,-1,24,-1,-1,-1,-1,39,-1,-1,-1,-1,33,-1,47,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0899] Third line:

[0900] -1,31,-1,-1,-1,-1,-1,-1,170,22,-1,-1,-1,-1,-1,-1,-1,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,55,-1,-1,-1,-1,-1,-1,382,-1,-1,41,- 1,-1,-1,-1,-1,-1,-1,-1,-1,221,-1,45,-1,-1,-1,155,-1,-1,-1,-1,145,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,21,-1,-1,-1,30,-1,-1,-1,-1,6,-1,-1,7,-1,153,346,0, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0901] Fourth line:

[0902] -1,33,328,-1,-1,452,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,373,157,251,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,478,-1,-1,-1,-1,148,-1,-1, 27,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,39,-1,353,-1,-1,105,-1,-1,-1,225,390,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0903] Fifth line:

[0904] 3, 26, -1, 49, 25, -1, -1, -1, -1, -1, -1, -1, -1, 452, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, 33, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,83,34,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,380,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,228,40,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0905] Line 6:

[0906] 38,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1,428,-1,-1,8,46,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,104,82,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,140,-1,-1,123,-1,-1,-1,-1,-1,-1,-1,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,265,112,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0907] Line 7:

[0908] -1,29,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,43,-1,-1,-1,-1,-1,-1,12,-1,-1,107,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,243,-1,-1,-1,-1,119,-1,-1,-1,-1,-1,-1,156,-1,-1,2,-1,22, -1,-1,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,34,-1,391,-1,152,-1,-1,-1,-1,23,-1,-1,-1,-1,32,-1,-1,36,-1,-1,-1,-1,-1,119,78,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0909] Line 8:

[0910] 8,-1,-1,-1,-1,-1,460,265,-1,-1,-1,-1,30,-1,-1,-1,-1,24,-1,-1,182,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,324,-1,-1,-1,-1,-1,-1,-1,-1,-1,171,236,-1,-1,260,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,98,-1,37,423,-1,-1,-1,318,109,-1,-1,6,-1,-1,271,-1,-1,-1,-1,-1,-1,-1,-1,89,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,16,431,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0911] Line 9:

[0912] -1,19,384,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,5,377,-1,-1,-1,-1,14,-1,10,-1,351,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,86,24,-1,-1,-1,-1,-1,-1,-1,-1,148,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,397,-1,-1,10,-1,-1,-1,-1,-1,-1,140,25,-1,-1,-1,-1,-1,15,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,15,394,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0913] Line 10:

[0914] 8,42,-1,-1,-1,-1,374,-1,-1,-1,-1,-1,-1,142,277,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,457,-1,75,133,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,18,-1,313,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,-1,-1,354,-1,-1,-1,-1,-1,-1,-1,-1,248,-1,-1,-1,-1,58,-1,-1,-1,-1,-1,-1,71,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,49,149,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0915] Line 11:

[0916] 20,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,150,-1,-1,-1,27,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,192,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,201,37,4 01,287,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,150,-1,-1,-1,-1,39,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,172,249,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0917] Line 12:

[0918] 47, 29, -1, -1, 37, -1, -1, -1, -1, 19, 456, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, 82, -1, 267, -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, 150, -1, 15, -1, -1, -1, -1, -1,302,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,120,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,110,61,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0919] Line 13:

[0920] 32,30,-1,-1,-1,-1,-1,-1,27,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,210,-1,-1,179,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,72,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,501,-1,-1,269,-1,-1,-1,70,-1,309,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,25,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,384,-1,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,235,35,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0921] Line 14:

[0922] 22,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,423,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,451,-1,-1,237,-1,-1,-1,-1,425,-1,-1,41,219,-1,-1,94,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1, -1, -1,96,-1, -1, -1,275,-1, -1, -1, -1, -1, -1, 164,289,-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26,-1, -1, -1, -1, -1, -1, -1, -1, 35,130,-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 419,368,0,-1, -1, -1, -1, -1, -1, -1, -1,

[0923] Line 15:

[0924] 18,21,-1,-1,-1,-1,-1,136,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,45,-1,-1,-1,-1,-1,-1,-1,-1,493,-1,155,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,256,-1,-1,-1,-1,501,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,147,471,29,118,16,-1,-1,-1,32,-1,-1,-1,-1,-1,347,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,198,307,0,-1,-1,-1,-1,-1,-1,-1,-1,

[0925] Line 16:

[0926] 21, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, 239, 320, -1, -1, -1, -1, 73, -1, 483, 267, -1, -1, -1, -1, -1, 88, -1, 21, 168, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,248,290,-1,-1,-1,-1,-1,-1,-1,-1,-1,253,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,502,-1,474,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,437,129,0,-1,-1,-1,-1,-1,-1,-1,

[0927] Line 17:

[0928] -1, -1, -1, -1, -1,280,425,457,86,-1, -1, -1,194,-1,366,-1, -1,324,-1, -1,390,-1,310,116,-1, -1, -1,317,-1, -1, -1, -1,330,33,-1, -1, -1,81,68,459,-1,8,-1,123,445,-1, -1, -1, -1, -1, -1,63,110,-1,468,-1, -1,-1 ,-1,-1,-1,335,-1,-1,369,-1,-1,197,271,-1,442,287,-1,132,-1,-1,251,83,-1,124,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,423,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,239,27,0, -1,-1,-1,-1,-1,

[0929] Line 18:

[0930] 0,17,-1,-1,-1,-1,-1,-1,-1,-1,204,-1,-1,-1,-1,-1,-1,354,-1,-1,-1,-1,-1,308,-1,-1,-1,22,-1,-1,-1,-1,47,-1,-1,-1,40,-1,-1,-1,-1,-1,-1,-1,337,-1,-1,-1,-1,-1,-1,-1,-1,-1,241,-1,-1,-1,-1,75,-1 ,-1,-1,-1,-1,341,-1,-1,-1,-1,-1,108,-1,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,67,-1,-1,-1,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,137,395,0,-1,-1,-1,-1,

[0931] Line 19:

[0932] 8,28,-1,64,-1,-1,-1,-1,-1,-1,491,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,172,-1,-1,-1,-1,114,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,127,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,64,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,-1,15,-1,-1,25,51,-1,-1,88,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,168,123,0,-1,-1,-1,

[0933] Line 20:

[0934] 9,36,148,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,421,-1,-1,-1,-1,-1,-1,47,-1,131,-1,-1,-1,-1,-1,-1,6,105,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,37,-1,-1,123,-1,-1,68,-1,16,-1,-1,-1,-1,-1,-1,25,-1,142,-1,-1,-1,-1,-1,-1,-1,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,211,92,0,-1,-1,

[0935] Line 21:

[0936] 25, 18, -1, 29, -1, -1, -1, -1, 25, -1, -1, -1, -1, -1, 27, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, 36, -1, 3 8,-1,-1,-1,-1,-1,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,0,-1,-1,10,-1,11,-1,21,-1,-1,-1,-1,-1,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,40,0,-1,

[0937] Line 22:

[0938] 31, 28, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, 8, -1, -1, 24, -1, -1, -1, -1, 26, -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, 10, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,41,-1,-1,-1,20,-1,-1,-1,31,1,-1,14,-1,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,47,0,

[0939] The eighth basic matrix B8 is expanded by an expansion ratio of 504 to obtain a 11088×61488-dimensional eighth parity check matrix H8. In one example, the "-1"s in the eighth basic matrix B8 are replaced with a 504×504-dimensional matrix Z consisting of all "0s," and the non-"-1"s in B8 are replaced with a 504×504-dimensional circulant permutation matrix P to obtain the eighth parity check matrix H8. The row number i and column number j of the "1"s in P satisfy j = (i+L) mod 504, where L is the offset of the circulant permutation matrix.

[0940] The offset of each cyclic permutation matrix P is arbitrarily selected and appropriately adjusted to further increase the shortest cycle length of the eighth check matrix H8.

[0941] A basic matrix table is generated according to the basic matrix, a circulant permutation matrix offset table is generated according to the offset of the circulant permutation matrix, and the basic matrix table and the circulant permutation matrix offset table are stored to solve the storage problem of the check matrix.

[0942] After obtaining the eighth check matrix H8, LDPC coding is performed using the eighth check matrix H8. In one example, an information sequence containing 50,400 information bits is input, and after coding according to the eighth check matrix H8, an eighth LDPC code with a code length of 61,488 is obtained.

[0943] In order to support high-order modulation, the information bits 1 to 1008 of the eighth LDPC code are deleted to obtain an LDPC code with a code length of 60480 bits and a code rate of 5 / 6, which is then output.

[0944] The punctured LDPC code has a code length of 60,480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiment of the present invention, through the careful design of the check matrix H, gives the first 1008 columns of the check matrix H a high weight. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 bits of the LDPC code. In addition, since most check equations are more likely to include the first 1008 information bits of the LDPC code, deleting the first 1008 bits of the LDPC code facilitates better recovery by the decoding algorithm without significantly losing performance.

[0945] <Specific embodiment 9>:

[0946] Construct an LDPC code with a code rate of 9 / 10 suitable for satellite transmission system.

[0947] First, the code length N is selected as 61488, and the initial code rate is selected as 54 / 61, that is, the check matrix H to be constructed is a ninth check matrix H9 with a dimension of 7056×61488.

[0948] Calculate the set Φ of common factors of 7056 and 61488, and select a suitable expansion ratio K∈Φ. The expansion ratio K is selected as 504. Set the basic matrix B to be constructed in Example 9 as the ninth basic matrix B9, so that the dimension of the ninth basic matrix B9 is 14×122.

[0949] The row and column weights of the ninth base matrix B9 are selected. For example, the row weight distribution of the ninth base matrix B9 is {λ22,λ24,λ25,λ26,λ28,λ29,λ30,λ32,λ34,λ41,λ45} = {1 / 14,1 / 14,1 / 14,1 / 14,1 / 14,3 / 14,1 / 14,2 / 14,1 / 14,1 / 14,1 / 14}, and the column weight distribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ8,ρ9,ρ12,ρ13} = {1 / 122,3 / 122,96 / 122,12 / 122,3 / 122,2 / 122,3 / 122,1 / 122,1 / 122}.

[0950] For another example, the first two columns of the ninth basic matrix B9 are restricted to have relatively large column weights, that is, the column weights of the first column and the second column are greater than the column weights of other columns.

[0951] On the premise of satisfying the row weight and column weight distribution, the non-"-1" position in each row and each column of the ninth basic matrix B9 is arbitrarily selected, but the 14×14-dimensional submatrix composed of the last 14 columns of the ninth basic matrix B9 is guaranteed to be full rank, and the existence of short cycles in the ninth basic matrix B9 is avoided.

[0952] The final ninth basic matrix B9 is specifically:

[0953] First line:

[0954] 18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,49,-1,80,445,-1,-1,100,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,364,-1,-1,-1,-1,-1,90,-1,-1,-1,48,94,15,-1,166,-1,-1,-1,477,-1,-1,-1,-1,-1,-1,19,17,-1,-1,- 1,-1,498,-1,-1,-1,-1,-1,-1,16,77,-1,419,-1,-1,-1,-1,137,48,-1,-1,174,-1,-1,264,234,-1,-1,-1,135,-1,-1,30,-1,-1,225,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0955] Second line:

[0956] 4,3,-1,-1,-1,-1,-1,392,-1,-1,28,-1,-1,276,-1,-1,-1,428,-1,-1,-1,348,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,123,-1,-1,-1,8,-1,34,-1,-1,-1,-1,-1,-1,383,-1,-1,61,-1,-1,41,-1,-1,139,-1 ,-1,-1,95,470,-1,-1,74,-1,5,20,-1,-1,356,473,-1,-1,-1,50,-1,-1,-1,-1,-1,-1,402,163,-1,-1,401,-1,395,24,-1,-1,-1,-1,105,179,490,-1,-1,65,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0957] Third line:

[0958] 35,32,-1,-1,418,-1,114,-1,-1,475,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,36,-1,369,-1,-1,-1,-1,114,-1,136,-1,-1,-1,65,-1,36,-1,-1,-1,390,-1,44,-1,-1,-1,7,-1,-1,398,-1,-1,-1,341,360,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,223,-1, -1,61,-1,50,481,-1,-1,-1,-1,-1,-1,488,161,-1,-1,164,-1,-1,-1,-1,-1,474,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,36,238,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0959] Fourth line:

[0960] -1,33,-1,-1,-1,-1,302,285,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,172,-1,-1,-1,-1,-1,132,-1,382,-1,-1,-1,-1,-1,-1,361,-1,29,-1,243,-1,-1,-1,-1,15,-1,24,-1,-1,-1,145,-1,484,-1,-1,-1,174,-1,-1,24,-1,-1, -1, -1, -1,155,464,39,-1, -1, -1, -1,9,16,-1,341,-1, -1, -1, -1, -1,13,-1,2,-1, -1, -1, -1, -1,405,-1,35,-1, -1, -1, -1, -1,447,-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,52,438,0,-1, -1, -1, -1, -1, -1, -1, -1, -1,

[0961] Fifth line:

[0962] 39,17,-1,-1,-1,-1,-1,-1,320,-1,69,-1,-1,-1,342,-1,-1,-1,-1,6,197,-1,84,-1,-1,-1,75,-1,-1,-1,158,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,411,-1,-1,49,-1,-1,-1,-1,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,449,-1,-1,-1,-1,-1,-1,14,460,-1,-1,-1,-1,-1,162,367,-1,-1,-1,-1,-1,-1,-1,-1,197,-1,13,-1,-1,-1,44,-1,-1,-1,-1,8,-1,-1,-1,163,403,0,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0963] Line 6:

[0964] 29, 21, -1, -1, -1, -1, -1, -1, 17, -1, -1, 421, -1, -1, 463, -1, 121, -1, -1, -1, 496, -1, -1, -1, 12, -1, 255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 242, 50, 168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,35,-1,35,-1,-1,-1,-1,427,-1,-1,-1,-1,22,-1,-1,-1,38,-1,-1,-1,-1,-1,-1,-1,-1,43,-1,-1,-1,-1,-1,-1,-1,-1,27,229,0,-1,-1,-1,-1,-1,-1,-1,-1,

[0965] Line 7:

[0966] -1,21,174,-1,-1,350,-1,-1,-1,17,-1,-1,195,-1,-1,76,19,-1,-1,-1,-1,-1,-1,255,-1,202,-1,64,461,-1,-1,225,-1,-1,104,-1,-1,-1,-1,58,-1,-1,7,-1,-1,-1,-1,58 ,60,15,-1,13,27,-1,59,-1,-1,17,-1,286,373,355,-1,-1,-1,-1,-1,-1,256,229,-1,-1,420,375,26,-1,188,179,28,-1,-1,-1,-1,131,-1,-1,-1,-1,-1,-1,396,-1,-1, -1, -1,74,391,-1,-1,-1,190,464,-1,502,146,-1,438,-1,-1,-1,-1,215,268,0,-1,-1,-1,-1,-1,-1,-1,

[0967] Line 8:

[0968] 39, 29, 260, -1, 93, -1, -1, -1, -1, -1, 294, 415, -1, -1, 24, -1, -1, -1, -1, 480, 316, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, -1, 439, -1, -1, 488, -1, -1, -1, -1, -1, 418, 242, 120, -1, -1, -1, 40, -1, 254, -1, 241, 40, -1, -1, 145, -1,-1,340,-1,492,-1,281,-1,-1,109,-1,-1,-1,-1,-1,-1,421,-1,-1,-1,-1,-1,-1,203,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,477,95,-1,-1,-1,-1,466,-1,-1,-1,-1,-1,-1,-1,-1,199,61,0,-1,-1,-1,-1,-1,-1,

[0969] Line 9:

[0970] 25,4,-1,215,-1,-1,-1,219,251,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,485,-1,-1,467,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,-1,-1,-1,-1,141,395,1,-1,41,-1,-1,-1,-1,-1,-1,-1,22,-1,-1,-1,-1,4,-1,-1,-1, 395,-1,96,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,73,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,42,-1,-1,-1,-1,202,-1,-1,-1,22,-1,-1,406,-1,-1,-1,-1,107,-1,-1,-1,-1,-1,-1,-1,416,129,0,-1,-1,-1,-1,-1,-1,

[0971] Line 10:

[0972] 45,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,313,-1,-1,-1,-1,-1,-1,255,-1,-1,-1,-1,-1,-1,-1,499,-1,-1,5,-1,-1,416,-1,48,-1,18,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,15,-1,-1, -1,-1,-1,-1,-1,-1,199,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,30,-1,-1,-1,482,-1,-1,-1,-1,481,5,-1,-1,76,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,44,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,96,305,0,-1,-1,-1,-1,-1,

[0973] Line 11:

[0974] 28, 23, 197, 187, 388, 223, -1, -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, 114, -1, 58, 316, -1, -1, -1, 361, 501, -1, -1, -1, 459, -1, 408, -1, 404, -1, -1, 457, 373, -1, -1, 301, -1, -1, -1, 387, -1, 36, -1, 388, 120, -1, -1, 116, -1, 495, 72, -1, -1, -1 ,-1,-1,431,-1,-1,-1,335,-1,-1,-1,-1,-1,124,-1,-1,-1,10,-1,-1,-1,-1,-1,-1,195,170,-1,-1,-1,-1,-1,-1,-1,-1,207,-1,-1,-1,-1,171,-1,-1,98,-1,427,233,-1,441,11,-1,-1,-1,-1,-1,-1,-1,409,56,0,-1,-1,-1,

[0975] Line 12:

[0976] 23,12,-1,270,-1,-1,-1,-1,-1,-1,-1,-1,185,-1,225,80,-1,-1,-1,75,-1,144,-1,-1,-1,-1,-1,-1,-1,-1,166,327,-1,-1,-1,-1,-1,249,-1,-1,-1,172,-1,175,38,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,-1, -1,-1,-1,-1,-1,-1,48,406,-1,158,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,44,81,-1,-1,133,-1,-1,-1,-1,-1,-1,-1,3,-1,39,-1,-1,55,-1,-1,-1,-1,-1,-1,-1,36,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,366,204,0,-1,-1,

[0977] Line 13:

[0978] 18,21,-1,-1,-1,464,296,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,96,-1,-1,-1,-1,-1,-1,-1,261,-1,-1,-1,311,-1,261,421,-1,-1,-1,294,-1,-1,-1,-1,45,-1,-1,-1,-1,-1,-1,-1,-1,29,231,-1,-1,34,499,-1,-1,336,-1,-1,-1,-1, 12,202,-1,-1,-1,-1,-1,90,-1,0,-1,-1,-1,-1,11,489,-1,159,10,-1,100,-1,-1,185,-1,-1,-1,-1,-1,-1,126,314,-1,-1,-1,-1,-1,-1,-1,133,-1,270,-1,-1,-1,-1,177,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,471,353,0,-1,

[0979] Line 14:

[0980] 18,58,-1,-1,-1,-1,-1,-1,-1,481,52,-1,-1,-1,-1,-1,-1,-1,-1,-1,174,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,273,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,59,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,24,63,-1,-1,-1 ,-1,-1,-1,-1,-1,-1,-1,-1,52,104,-1,-1,-1,-1,-1,-1,-1,36,484,171,-1,-1,-1,-1,-1,-1,290,20,470,-1,-1,-1,-1,-1,-1,85,-1,-1,-1,-1,46,426,-1,110,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,314,440,0,

[0981] The ninth basic matrix B9 is expanded by an expansion ratio of 504 to obtain a 7056×61488-dimensional ninth parity check matrix H9. In one example, the "-1"s in the ninth basic matrix B9 are replaced with a 504×504-dimensional matrix Z consisting of all "0s," and the non-"-1"s in B9 are replaced with a 504×504-dimensional circulant permutation matrix P to obtain the ninth parity check matrix H9. The row number i and column number j of the "1"s in P satisfy j = (i + L) mod 504, where L is the offset of the circulant permutation matrix.

[0982] The offset of each cyclic permutation matrix P is arbitrarily selected and appropriately adjusted to further increase the shortest cycle length of the ninth check matrix H9.

[0983] A basic matrix table is generated according to the basic matrix, a circulant permutation matrix offset table is generated according to the offset of the circulant permutation matrix, and the basic matrix table and the circulant permutation matrix offset table are stored to solve the storage problem of the check matrix.

[0984] After obtaining the ninth check matrix H9, LDPC encoding is performed using the ninth check matrix H9. In one example, an information sequence containing 54432 information bits is input and encoded according to the ninth check matrix H9 to obtain a ninth LDPC code with a length of 61488.

[0985] In order to support high-order modulation, the information bits 1 to 1008 of the ninth LDPC code are deleted to obtain an LDPC code with a code length of 60480 bits and a code rate of 9 / 10, which is then output.

[0986] The punctured LDPC code has a code length of 60,480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiment of the present invention, through the careful design of the check matrix H, gives the first 1008 columns of the check matrix H a high weight. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 bits of the LDPC code. In addition, since most check equations are more likely to include the first 1008 information bits of the LDPC code, deleting the first 1008 bits of the LDPC code facilitates better recovery by the decoding algorithm without significantly losing performance.

[0987] <Specific embodiment 10>:

[0988] Construct an LDPC code with code rate of 13 / 15 suitable for satellite transmission system.

[0989] First, the code length N is selected as 61488, and the initial code rate is 52 / 61, that is, the check matrix H to be constructed is a tenth check matrix H10 with a dimension of 9072×61488.

[0990] Calculate the set Φ of common factors of 9072 and 61488, and select a suitable expansion ratio K∈Φ. The expansion ratio K is selected as 504. Set the basic matrix B to be constructed in Example 10 as the tenth basic matrix B10, so that the dimension of the tenth basic matrix B10 is 18×122.

[0991] The row weights and column weights of the tenth basic matrix B10 are selected. For example, the row weight distribution of the tenth basic matrix B10 is {λ21,λ22,λ23,λ24,λ25,λ36}={2 / 18,4 / 18,4 / 18,5 / 18,2 / 18,1 / 18}, and the column weight distribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ7,ρ8,ρ9,ρ15,ρ16}={1 / 122,4 / 122,101 / 122,5 / 122,1 / 122,5 / 122,2 / 122,1 / 122,1 / 122,1 / 122}.

[0992] For another example, the first two columns of the tenth basic matrix B10 are restricted to have relatively large column weights, that is, the column weights of the first column and the second column are greater than the column weights of other columns.

[0993] On the premise of satisfying the row and column weight distribution, the non-"-1" positions in each row and each column of the tenth basic matrix B10 are arbitrarily selected, but the 18×18-dimensional submatrix composed of the last 18 columns of the tenth basic matrix B10 is guaranteed to be full rank, and the existence of short cycles in the tenth basic matrix B10 is avoided.

[0994] The final tenth basic matrix B10 is specifically:

[0995] First line:

[0996] -1,45,-1,-1,-1,-1,-1,-1,355,-1,-1,-1,-1,1,14,-1,-1,-1,-1,14,-1,-1,-1,-1,70,-1,445,-1,-1,-1,-1,-1,-1,-1,321,54,-1,9,-1,193,-1,-1,-1,-1,-1,-1,-1,-1,-1,437,-1,-1,-1,-1,-1,-1,-1,47,-1,-1,-1, -1,226,41,-1,-1,-1,-1,170,483,-1,-1,-1,-1,-1,-1,-1,-1,-1,286,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,282,-1,2,112,-1,-1,-1,-1,-1,-1,-1,299,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[0997] Second line:

[0998] 38,27,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,41,-1,-1,-1,465,-1,21,6,-1,254,-1,-1,251,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,-1,39,-1,-1,-1,168,-1,-1,234,-1,-1,-1,5,-1,-1,-1,-1,45,-1,-1, 229,-1,-1,-1,-1,-1,-1,-1,-1,350,-1,-1,490,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,398,-1,-1,-1,-1,21,-1,467,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[0999] Third line:

[1000] 44,46,357,-1,-1,-1,-1,-1,-1,50,-1,-1,225,8,28,439,-1,-1,-1,48,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,279,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,292,-1,323,-1,-1,-1,15,-1,-1,-1,-1,146,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,63,19,109,-1,-1,-1,29,-1,-1,-1,-1,-1,-1,-1,22,-1,449,23,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[1001] Fourth line:

[1002] 38,-1,-1,-1,-1,-1,262,-1,-1,-1,-1,-1,-1,-1,-1,-1,166,-1,-1,-1,-1,-1,-1,-1,73,-1,-1,-1,-1,-1,-1,-1,350,425,429,-1,-1,-1,17,-1,-1,-1,-1,23,-1,-1,-1,-1,284,-1,-1,-1,-1,420,-1,-1,-1,332,-1,-1,-1, -1,466,-1,-1,409,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,41,2,-1,-1,-1,-1,-1,438,129,-1,-1,-1,352,30,-1,-1,52,58,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[1003] Fifth line:

[1004] 20,-1,-1,94,-1,-1,-1,355,270,-1,-1,-1,-1,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,305,73,-1,-1,-1,-1,-1,-1,232,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,150,-1,68,-1,34,-1,-1 ,-1,24,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,365,262,385,214,263,-1,-1,-1,-1,-1,55,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,345,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

[1005] Line 6:

[1006] 32, 4, -1, 90, 43, -1, -1, -1, -1, 291, -1, 387, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 369, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 300, -1, -1, 469, -1, -1, -1, -1, -1, -1, -1, 198, 434, 405, -1, -1, -1, 364, -1, -1, -1, -1, -1, -1,-1,199,-1,-1,142,-1,-1,-1,-1,-1,-1,-1,491,-1,-1,-1,-1,-1,-1,386,-1,-1,-1,-1,434,-1,-1,-1,-1,316,-1,-1,-1,-1,-1,376,105,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[1007] Line 7:

[1008] -1,28,-1,34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,143,-1,265,-1,-1,-1,-1,205,-1,456,432,-1,148,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,34,-1,-1,-1,-1,-1,116,-1,209,444,-1,234,-1,-1,-1,-1,-1,-1,-1, -1,-1,21,-1,26,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,377,-1,-1,-1,-1,-1,-1,87,-1,32,-1,-1,-1,-1,-1,-1,-1,-1,126,377,-1,-1,15,226,-1,-1,-1,-1,36,329,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[1009] Line 8:

[1010] 43, 11, -1, -1, -1, 210, -1, -1, -1, 413, -1, -1, -1, -1, -1, 224, -1, -1, 18, -1, 328, -1, -1, 264, -1, -1, -1, -1, -1, -1, -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 434, -1, -1, 484, -1, -1, -1, -1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,211,-1,-1,8,-1,-1,-1,-1,160,-1,-1,-1,94,-1,-1,501,-1,-1,41,-1,-1,-1,3,35,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,295,268,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,

[1011] Line 9:

[1012] 23, 8, -1, -1, 63, -1, 73, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, 183, -1, 478, -1, -1, 171, -1, 109, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, 423, -1, 375, 327, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, -1, -1, 225, -1, 102, -1, -1, 93, -1, -1, -1, -1, 468, -1, -1, -1, -1, -1, -1, 23, 468, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 427, 420, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1,

[1013] Line 10:

[1014] 10,36,-1,-1,-1,-1,-1,471,-1,-1,153,-1,-1,-1,34,-1,-1,141,197,-1,-1,-1,186,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,376,-1,-1,328,-1,-1,-1,-1,-1,-1,-1,-1,-1,- 1,-1,-1,-1,494,-1,-1,205,-1,90,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,398,-1,-1,-1,-1,-1,-1,-1,322,-1,-1,-1,-1,-1,-1,-1,-1,223,-1,-1,-1,-1,79,-1,-1,-1,99,-1,-1,215,-1,24, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,56,0,-1,-1,-1,-1,-1,-1,-1,-1,

[1015] Line 11:

[1016] 5,49,-1,-1,-1,-1,-1,-1,-1,6,-1,-1,-1,-1,-1,130,-1,-1,-1,-1,206,-1,-1,30,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,246,-1,-1,40,77,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,14,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,200,-1,339,72,-1,-1,-1,-1,-1,-1,-1,361,0,-1,-1,232,-1,-1,-1,446,-1,-1,-1,-1,-1,-1,-1,-1,124,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,177,118,0,-1,-1,-1,-1,-1,-1,-1,-1,

[1017] Line 12:

[1018] 17, 22, -1, -1, -1, -1, -1, 249, -1, -1, -1, 399, 31, 18, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 452, 233, -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, 91 ,-1,414,-1,-1,-1,-1,-1,497,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,494,68,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,260,475,0,-1,-1,-1,-1,-1,-1,-1,

[1019] Line 13:

[1020] 7,21,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,4,-1,-1,-1,-1,-1,42,-1,-1,215,-1,-1,-1,357,-1,-1,237,-1,-1,-1,-1,-1,-1,-1,-1,-1,245,-1,-1,20,-1,257,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,56,-1,-1,-1,-1,-1,499 ,-1,-1,100,-1,-1,-1,187,-1,28,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,-1,-1,415,-1,-1,-1,-1,-1,-1,-1,-1,37,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,405,0,-1,-1,-1,-1,-1,

[1021] Line 14:

[1022] 33, 16, -1, -1, 419, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, 17, -1, -1, -1, -1, -1, -1, 212, -1, -1, 314, 292, 112, -1, 408, -1, -1, -1, -1, 29, -1, -1, 161, 252, -1, -1, 173, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1 ,-1,-1,-1,-1,-1,-1,-1,-1,46,-1,-1,-1,-1,-1,-1,219,-1,-1,-1,-1,-1,185,-1,-1,330,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,316,40,-1,-1,33,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,499,20,0,-1,-1,-1,-1,

[1023] Line 15:

[1024] 41,31,-1,-1,-1,-1,-1,-1,-1,-1,-1,358,-1,22,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,291,-1,-1,-1,-1,33,291,-1,-1, -1,4,265,-1,-1,-1,-1,-1,-1,-1,13,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,436,-1,-1,-1,-1,-1,102,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 ,-1,-1,-1,-1,24,291,288,11,191,-1,150,-1,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,378,75,0,-1,-1,-1,

[1025] Line 16:

[1026] 21,54,352,-1,-1,51,-1,-1,-1,-1,-1,-1,-1,-1,39,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,27,122,-1,472,-1,7,463,500,-1,-1,-1,-1,-1,-1,-1,-1,-1,25,-1,97,-1,-1,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,111,498,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,-1,32,43,-1,-1,-1,-1,-1,3,-1,25,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,375,368,0,-1,-1,

[1027] Line 17:

[1028] -1,24,-1,-1,-1,84,-1,-1,-1,491,-1,261,-1,-1,-1,-1,301,-1,418,-1,-1,111,-1,-1,-1,-1,174,14,-1,-1,156,14,-1,-1,-1,-1,30,-1,-1,-1,-1,277,-1,-1,-1,341,372,-1,18,-1,-1,-1,-1,-1,-1,-1,72,35,-1,247, -1,-1,-1,-1,-1,-1,-1,-1,93,-1,-1,340,2,-1,-1,20,459,56,-1,-1,6,290,-1,471,47,404,-1,46,-1,-1,-1,-1,-1,-1,-1,-1,269,-1,-1,-1,-1,19,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,388,268,0,-1,

[1029] Line 18:

[1030] 62,32,-1,-1,-1,120,-1,232,-1,-1,-1,-1,-1,29,9,-1,-1,-1,-1,41,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,-1,-1,-1,-1,21,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,-1,-1,-1,-1,3,-1,-1,- 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,38,-1,-1,-1,34,37,-1,-1,-1,-1,113,67,-1,57,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,142,416,0,

[1031] The tenth basic matrix B10 is expanded by an expansion ratio of 504 to obtain the tenth parity check matrix H10, which is 9072×61488 in dimension. In one example, the "-1"s in the tenth basic matrix B10 are replaced with a 504×504 all-zero matrix Z, and the non--1s in B10 are replaced with a 504×504 circulant permutation matrix P, to obtain the tenth parity check matrix H10. The row number i and column number j of the "1"s in P satisfy j = (i+L) mod 504, where L is the offset of the circulant permutation matrix.

[1032] The offset of each cyclic permutation matrix P is arbitrarily selected and appropriately adjusted to further increase the shortest cycle length of the tenth check matrix H10.

[1033] A basic matrix table is generated according to the basic matrix, a circulant permutation matrix offset table is generated according to the offset of the circulant permutation matrix, and the basic matrix table and the circulant permutation matrix offset table are stored to solve the storage problem of the check matrix.

[1034] After obtaining the tenth check matrix H10, LDPC coding is performed using the tenth check matrix H10. In one example, an information sequence containing 52416 information bits is input and coded according to the tenth check matrix H10 to obtain a tenth LDPC code with a code length of 61488.

[1035] In order to support high-order modulation, the information bits 1 to 1008 of the tenth LDPC code are deleted to obtain an LDPC code with a code length of 60480 bits and a code rate of 13 / 15, which is then output.

[1036] The punctured LDPC code has a code length of 60,480 bits, which is divisible by multiple numbers and meets the requirements of high-order modulation such as QPSK, 8APSK, 16APSK, 32APSK, 64APSK, 128APSK, and 256APSK. The LDPC code construction and encoding method provided in the embodiment of the present invention, through the careful design of the check matrix H, gives the first 1008 columns of the check matrix H a high weight. This means that most check equations are more likely to include the first 1008 information bits of the LDPC code, thereby providing performance guarantees and making it possible to delete the first 1008 bits of the LDPC code. In addition, since most check equations are more likely to include the first 1008 information bits of the LDPC code, deleting the first 1008 bits of the LDPC code facilitates better recovery by the decoding algorithm without significantly losing performance.

[1037] Embodiments of the present invention also provide an LDPC code construction and encoding apparatus. As shown in FIG3 , the LDPC code construction and encoding apparatus 900 includes a processor 910 and a memory 920. The memory 920 stores a computer program that, when executed by the processor 910, implements the steps of the LDPC code construction and encoding method of any of the aforementioned embodiments.

[1038] The LDPC code construction and encoding device proposed in the embodiments of the present invention can generate an LDPC code with a suitable code rate and excellent performance by selecting appropriate row weight and column weight distribution for a basic matrix.

[1039] The LDPC code construction and encoding device proposed in the embodiments of the present invention require that the first f columns of the basic matrix have a relatively large column weight when constructing the basic matrix, thereby supporting the puncturing processing of the information bits of the front preset length of the LDPC code, so that the final LDPC code can better meet the requirements of supporting high-order modulation.

[1040] In addition, the LDPC code structure and encoding device proposed in the embodiments of the present invention can solve the problems of storage of the check matrix and low-complexity fast encoding.

[1041] Those skilled in the art will understand that all or part of the steps carried out in the method of the above embodiment can be completed by instructing the relevant hardware through a program, and the program can be stored in a computer-readable storage medium. When the program is executed, it includes one of the steps of the method embodiment or a combination thereof.

[1042] The present invention may be a system, a method and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for causing a processor to implement various aspects of the present invention.

[1043] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination thereof. As used herein, a computer-readable storage medium is not to be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through an electrical wire.

[1044] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.

[1045] The computer program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, and conventional procedural programming languages ​​such as "C" language or similar programming languages. The computer readable program instructions can be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer, partially on a remote computer, or completely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer through any type of network including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (e.g., using an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), is personalized by utilizing the state information of the computer readable program instructions, and the electronic circuit can execute the computer readable program instructions, thereby realizing various aspects of the present invention.

[1046] Various aspects of the present invention are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[1047] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[1048] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[1049] The flowcharts and block diagrams in the accompanying drawings show the possible implementation architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present invention. In this regard, each box in the flowchart or block diagram can represent a module, program segment or part of an instruction, and the module, program segment or part of the instruction contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions marked in the box can also occur in an order different from that marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of boxes in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system that performs the specified function or action, or can be implemented by a combination of dedicated hardware and computer instructions. It is well known to those skilled in the art that implementation by hardware, implementation by software, and implementation by a combination of software and hardware are all equivalent.

[1050] While various embodiments of the present invention have been described above, the foregoing description is intended to be illustrative, not exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, their practical applications, or technical improvements to existing technologies, or to enable others skilled in the art to understand the embodiments disclosed herein. The scope of the present invention is defined by the appended claims.

Claims

1. A construction and encoding method of an LDPC code, characterized in that: include: Construct an M for generating LDPC codes with code rate R and code length N B ×N B dimensional basis matrix B, where M B =M / K,N B =N / K, M=N×(1-R), K is the expansion ratio of the basic matrix, K∈Φ, Φ is the set of common factors of M and N; Select the number of "1"s in each row and each column of the base matrix B so that the row weight and column weight distribution of the base matrix B satisfies the predetermined node degree distribution and the first f columns have relatively large column weights; When the row weight and column weight distribution of the basic matrix B satisfies the predetermined node degree distribution and the first f columns have a relatively large column weight, the position of "1" in each row and column of the basic matrix B is adjusted so that the last M columns of the basic matrix B are B M B ×M B The submatrix of dimension is full rank; Replace the elements in the basic matrix B with a K×K matrix, and expand the basic matrix B into an M×N-dimensional check matrix H; Based on the M×N-dimensional check matrix H, an LDPC code with a code rate of R and a code length of N of 61488 is generated; Puncturing is performed on the first information bits of the LDPC code of a first preset length, where the first preset length is less than or equal to a second preset length, and the second preset length is the product of the expansion ratio and f.

2. The method according to claim 1, characterized in that The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H includes: The "-1" in the basic matrix B is replaced by a K×K dimensional all-"0" matrix Z, and the non-"-1" in the basic matrix B is replaced by a K×K dimensional circulant permutation matrix P, wherein the row number i and column number j of "1" in the circulant permutation matrix P satisfies j=(i+L)mod K, L is the offset of the circulant permutation matrix, and mod represents a modulo operation.

3. The method according to claim 2, characterized in that The method of generating an LDPC code with a code rate of R and a code length of N based on an M×N-dimensional check matrix H includes: Divide the check matrix H into two sub-matrices H = [H1|H2], wherein the H1 sub-matrix includes 0, 1, ..., k-1 columns in the H matrix, and the H2 sub-matrix includes k, ..., N-1 columns in the H matrix; wherein k = NM; According to the input information sequence m=(m0,m1,m2,…,m k-1 ), calculate the check sequence p, where p = m × (H2 -1 ×H1) T ; The information sequence m and the check sequence p are combined into an LDPC code, and the codeword sequence of the LDPC code is c=[m|p].

4. The method according to any one of claims 1 to 3, characterized in that: When the code rate R is 40 / 61, the code length N is 61488, and the expansion ratio K is 504, the basic matrix B is set to be the first basic matrix B1; The row weight distribution of the first basic matrix B1 is {λ9,λ10,λ11,λ12,λ15,λ20,λ36}={1 / 42,13 / 42,21 / 42,4 / 42,1 / 42,1 / 42,1 / 42}, and the column weight distribution is {ρ1,ρ2,ρ3,ρ4,ρ6,ρ7,ρ8,ρ9,ρ30,ρ31}={1 / 122,1 / 122,91 / 122,12 / 122,4 / 122,9 / 122,1 / 122,1 / 122,1 / 122,1 / 122}, and the first two columns of the first basic matrix B1 have relatively large column weights; The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H comprises: replacing elements in the first basic matrix B1 with a 504×504-dimensional matrix to expand the first basic matrix B1 into a 21168×61488-dimensional first check matrix H1; The method of generating an LDPC code with a code rate of R and a code length of 61488 based on the M×N-dimensional check matrix H comprises: inputting an information sequence including 40320 information bits, and encoding based on the first check matrix H1 to obtain a first LDPC code with a code length of 61488; The puncturing of the first information bits of the LDPC code having a preset length includes: puncturing the first to 1008 information bits of the first LDPC code to obtain an LDPC code with a code length of 60480 bits and a code rate of 2 / 3.

5. The method according to any one of claims 1 to 4, characterized in that: When the code length N is 61488, the code rate R is 20 / 61, and the expansion ratio K is 504, the basic matrix B is set to be a second basic matrix B2; the row redistribution of the second basic matrix B2 is {λ4,λ5,λ6,λ7,λ9,λ13,λ14,λ15,λ16,λ23,λ35,λ38,λ45,λ74,λ79}={1 / 82,1 / 82,55 / 82,3 / 82,1 / 82,9 / 82,2 / 82,1 / 82,2 / 82,1 / 82,1 / 82,1 / 82,1 / 82,2 / 82,1 / 82}, and the column The redistribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ9,ρ10,ρ11,ρ12,ρ13,ρ14,ρ15,ρ16,ρ17,ρ21,ρ26,ρ52,ρ61}={3 / 122,32 / 122,16 / 122,5 / 12 2,9 / 122,6 / 122,6 / 122,4 / 122,3 / 122,5 / 122,7 / 122,9 / 122,3 / 122,4 / 122,4 / 122,1 / 122,1 / 122,1 / 122,,1 / 122,1 / 122,1 / 122}; The first two columns of the second basic matrix B2 have relatively large column weights; The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H comprises: replacing elements in the second basic matrix B2 with a 504×504-dimensional matrix to expand the second basic matrix B2 into a 41328×61488-dimensional second check matrix H2; The generating of an LDPC code with a code rate of R and a code length of N of 61488 based on an M×N-dimensional check matrix H comprises: inputting an information sequence including 20160 information bits, and encoding based on the second check matrix H2 to obtain a second LDPC code with a code length of 61488; The puncturing of the first information bits of the LDPC code having a first preset length comprises: Puncturing is performed on the 1st to 1008th bits of information of the second LDPC code to obtain an LDPC code with a code length of 60480 bits and a code rate of 1 / 3.

6. The method according to any one of claims 1 to 5, characterized in that: When the code rate R is 30 / 61, the code length N is 61488, and the expansion ratio K is 504, the basic matrix B is set to a third basic matrix B3; The row redistribution of the third basic matrix B3 is {λ6,λ7,λ8,λ9,λ10,λ16,λ47,λ56}={3 / 62,11 / 62,30 / 62,12 / 62,3 / 62,1 / 62,1 / 62,1 / 62}, The column redistribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ9,ρ10,ρ36,ρ51}={3 / 122,6 / 122,42 / 122,13 / 122,38 / 122,13 / 122,1 / 122,3 / 122,1 / 122,1 / 122,1 / 122}; The first two columns of the third basic matrix B3 have relatively large column weights; The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H comprises: replacing elements in a third basic matrix B3 with a 504×504-dimensional matrix to expand the third basic matrix B3 into a 31248×61488-dimensional third check matrix H3; The generating of an LDPC code with a code rate of R and a code length of N of 61488 based on the M×N-dimensional check matrix H comprises: inputting an information sequence including 30240 information bits, and encoding based on the third check matrix H3 to obtain a third LDPC code with a code length of 61488; The puncturing of the first information bits of the preset length in front of the LDPC code includes: puncturing the 1st to 1008th information bits of the third LDPC code to obtain an LDPC code with a code length of 60480 bits and a code rate of 1 / 2.

7. The method according to any one of claims 1 to 6, characterized in that: When the code rate R is 45 / 61, the code length N is 61488, and the expansion ratio K is 504, the basic matrix B is set to be a fourth basic matrix B4; The row redistribution of the fourth basic matrix B4 is {λ12,λ13,λ14,λ15,λ16,λ17,λ25,λ33}={3 / 32,12 / 32,5 / 32,7 / 32,2 / 32,1 / 32,1 / 32,1 / 32}, The column weight distribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ21,ρ24}={1 / 122,1 / 122,89 / 122,12 / 122,6 / 122,2 / 122,3 / 122,6 / 122,1 / 122,1 / 122}; The first two columns of the fourth basic matrix B4 have relatively large column weights; The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H comprises: replacing elements in the fourth basic matrix B4 with a 504×504-dimensional matrix to expand the fourth basic matrix B4 into a 16128×61488-dimensional fourth check matrix H4; The LDPC code with a code rate of R and a code length of N of 61488 is generated based on the M×N-dimensional check matrix H. The method comprises: inputting an information sequence including 45360 information bits, and encoding based on the fourth check matrix H4 to obtain a fourth LDPC code with a code length of 61488; The puncturing of the first preset length of information bits of the LDPC code includes: puncturing the 1st to 1008th bits of information of the fourth LDPC code to obtain an LDPC code with a code length of 60480 bits and a code rate of 3 / 4.

8. The method according to any one of claims 1 to 7, characterized in that: When the code rate R is 24 / 61, the code length N is 61488, and the expansion ratio K is 504, the basic matrix B is set to be a fifth basic matrix B5; The row redistribution of the fifth basic matrix B5 is {λ6,λ7,λ8,λ9,λ13,λ24,λ25,λ33,λ34}={35 / 74,16 / 74,13 / 74,5 / 74,1 / 74,1 / 74,1 / 74,1 / 74,1 / 74}, The column redistribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ9,ρ10,ρ11,ρ50,ρ56}={39 / 122,16 / 122,11 / 122,5 / 122,8 / 122,6 / 122,10 / 122,10 / 122,8 / 122,5 / 122,2 / 122,1 / 122,1 / 122}; The first two columns of the fifth basic matrix B5 have relatively large column weights; The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H comprises: replacing elements in the fifth basic matrix B5 with a 504×504-dimensional matrix to expand the fifth basic matrix B5 into a 37296×61488-dimensional fifth check matrix H5; The generating of an LDPC code with a code rate of R and a code length of N of 61488 based on the M×N-dimensional check matrix H comprises: inputting an information sequence including 24192 information bits, and encoding based on the fifth check matrix H5 to obtain a fifth LDPC code with a code length of 61488; The puncturing of the first information bits of the preset length in front of the LDPC code includes: puncturing the 1st to 1008th information bits of the fifth LDPC code to obtain an LDPC code with a code length of 60480 bits and a code rate of 2 / 5.

9. The method according to any one of claims 1 to 8, characterized in that: When the code rate R is 36 / 61, the code length N is 61488, and the expansion ratio K is 504, the basic matrix B is set to be a sixth basic matrix B6; The row redistribution of the sixth basic matrix B6 is {λ8,λ9,λ10,λ11,λ16,λ27,λ39}={1 / 50,13 / 50,24 / 50,9 / 50,1 / 50,1 / 50,1 / 50}, The column redistribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ10,ρ12,ρ38,ρ40}={4 / 122,17 / 122,5 0 / 122,19 / 122,12 / 122,7 / 122,2 / 122,3 / 122,4 / 122,2 / 122,1 / 122,1 / 122}; The first two columns of the sixth basic matrix B6 have relatively large column weights; The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H comprises: replacing elements in the sixth basic matrix B6 with a 504×504-dimensional matrix to expand the sixth basic matrix B6 into a 25200×61488-dimensional sixth check matrix H6; The first two columns of the sixth basic matrix B6 have relatively large column weights; The generating of an LDPC code with a code rate of R and a code length of N of 61488 based on an M×N-dimensional check matrix H comprises: inputting an information sequence including 36288 information bits, and encoding based on the sixth check matrix H6 to obtain a sixth LDPC code with a code length of 61488; The puncturing of the first preset length of information bits of the LDPC code includes: puncturing the 1st to 1008th bits of information of the sixth LDPC code to obtain an LDPC code with a code length of 60480 bits and a code rate of 3 / 5.

10. The method according to any one of claims 1 to 9, characterized in that: When the code rate R is 48 / 61, the code length N is 61488, and the expansion ratio K is 504, the basic matrix B is set to be the seventh basic matrix B7; The row redistribution of the seventh basic matrix B7 is {λ15,λ16,λ17,λ18,λ19,λ20,λ23,λ34}={2 / 26,12 / 26,7 / 26,1 / 26,1 / 26,1 / 26,1 / 26,1 / 26}, and the column redistribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ19,ρ21}={1 / 122,8 / 122,80 / 122,16 / 122,5 / 122,4 / 122,3 / 122,3 / 122,1 / 122,1 / 122}; The first two columns of the seventh basic matrix B7 have relatively large column weights; The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H comprises: replacing elements in the seventh basic matrix B7 with a 504×504-dimensional matrix to expand the seventh basic matrix B7 into a 13104×61488-dimensional ground-to-ground check matrix H7; The generating of an LDPC code with a code rate of R and a code length of N of 61488 based on the M×N-dimensional check matrix H comprises: inputting an information sequence including 48384 information bits, and encoding based on the seventh check matrix H7 to obtain a seventh LDPC code with a code length of 61488; The puncturing of the first preset length of information bits of the LDPC code includes: puncturing the 1st to 1008th bits of information of the seventh LDPC code to obtain an LDPC code with a code length of 60480 bits and a code rate of 4 / 5.

11. The method according to any one of claims 1 to 10, characterized in that: When the code rate R is 50 / 61, the code length N is 61488, and the expansion ratio K is 504, the basic matrix B is set to be an eighth basic matrix B8; The row redistribution of the eighth basic matrix B8 is {λ18,λ19,λ20,λ21,λ22,λ36}={7 / 22, 5 / 22,6 / 22,2 / 22,1 / 22,1 / 22}, The column redistribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ6,ρ7,ρ8,ρ16,ρ19}={1 / 122,9 / 122,84 / 122,14 / 122,3 / 122,3 / 122,2 / 122,4 / 122,1 / 122,1 / 122}; The first two columns of the eighth basic matrix B8 have relatively large column weights; The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H comprises: replacing elements in the eighth basic matrix B8 with a 504×504-dimensional matrix to expand the eighth basic matrix B8 into an eighth check matrix H8 of 11088×61488 dimensions; The generating of an LDPC code with a code rate of R and a code length of N of 61488 based on the M×N-dimensional check matrix H comprises: inputting an information sequence including 50400 information bits, and encoding based on the eighth check matrix H8 to obtain an eighth LDPC code with a code length of 61488; The puncturing of the first information bits of the preset length in front of the LDPC code includes: puncturing the 1st to 1008th information bits of the eighth LDPC code to obtain an LDPC code with a code length of 60480 bits and a code rate of 5 / 6.

12. The method according to any one of claims 1 to 11, characterized in that: When the code rate R is 54 / 61, the code length N is 61488, and the extension ratio K is 504, the basic matrix B is set to be a ninth basic matrix B9; The row redistribution of the ninth basic matrix B9 is {λ22,λ24,λ25,λ26,λ28,λ29,λ30,λ32,λ34,λ41,λ45}={1 / 14,1 / 14,1 / 14,1 / 14,1 / 14,3 / 14,1 / 14,2 / 14,1 / 14,1 / 14,1 / 14}, The column weight distribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ8,ρ9,ρ12,ρ13}={1 / 122,3 / 122,96 / 122,12 / 122,3 / 122,2 / 122,3 / 122,1 / 122,1 / 122}; The first two columns of the ninth basic matrix B9 have relatively large column weights; The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H comprises: replacing elements in the ninth basic matrix B9 with a 504×504-dimensional matrix to expand the ninth basic matrix B9 into a 7056×61488-dimensional ninth check matrix H; The generating of an LDPC code with a code rate of R and a code length of N of 61488 based on the M×N-dimensional check matrix H comprises: inputting an information sequence including 54432 information bits, and encoding based on the ninth check matrix H9 to obtain a ninth LDPC code with a code length of 61488; The puncturing of the first information bits of the preset length in front of the LDPC code includes: puncturing the 1st to 1008th information bits of the ninth LDPC code to obtain an LDPC code with a code length of 60480 bits and a code rate of 9 / 10.

13. The method according to any one of claims 1 to 12, characterized in that: When the code rate R is 52 / 61, the code length N is 61488, and the expansion ratio K is 504, the basic matrix B is set to be the tenth basic matrix B10; The row redistribution of the tenth basic matrix B10 is {λ21,λ22,λ23,λ24,λ25,λ36}={2 / 18,4 / 18,4 / 18,5 / 18,2 / 18,1 / 18}, The column weight distribution is {ρ1,ρ2,ρ3,ρ4,ρ5,ρ7,ρ8,ρ9,ρ15,ρ16}={1 / 122,4 / 122,101 / 122,5 / 122,1 / 122,5 / 122,2 / 122,1 / 122,1 / 122,1 / 122}; The first two columns of the tenth basic matrix B10 have relatively large column weights; The step of replacing elements in the basic matrix B with a K×K matrix to expand the basic matrix B into an M×N-dimensional check matrix H comprises: replacing elements in the tenth basic matrix B10 with a 504×504-dimensional matrix to expand the tenth basic matrix B10 into a 9072×61488-dimensional tenth check matrix H10; The generating of an LDPC code with a code rate of R and a code length of N of 61488 based on the M×N-dimensional check matrix H comprises: inputting an information sequence including 52416 information bits, and encoding based on the tenth check matrix H10 to obtain a tenth LDPC code with a code length of 61488; The puncturing of the first preset length of information bits of the LDPC code includes: puncturing the 1st to 1008th bits of information of the tenth LDPC code to obtain an LDPC code with a code length of 60480 bits and a code rate of 13 / 15.

14. A structure and encoding device of LDPC code, characterized in that: It comprises a processor and a memory: the memory stores a computer program, and when the computer program is executed by the processor, the steps of the LDPC code construction and encoding method as described in any one of claims 1 to 13 are implemented.

Citation Information

Patent Citations

  • Method for constructing low density parity check (LDPC) code check matrix, and method and device for encoding LDPC code

    CN102025441A

  • Quasi-cyclic LDPC code data processing device and processing method

    CN108234064A

  • Coding method and device, computer storage medium

    CN108988871A

  • Method for constructing shortened code words based on perforated LDPC (Low Density Parity Check)

    CN115882872A

  • Construction and coding method and device of LDPC (Low Density Parity Check) code

    CN116436475A