
To elucidate the combinatorial architecture of neural codes, the neural ideal JC, an algebraic object, was introduced. Represented in its canonical form, JC provides a succinct characterization of the inherent receptive field architecture within the code. The polynomials in JC are also instrumental in determining the relationships among the neurons' receptive fields. Consequently, the computation of the collection of canonical forms is pivotal. In this paper, based on the study of relations between pseudo-monomials, the authors present a computationally efficient iterative algorithm for the canonical forms of the neural ideal. Additionally, we introduce a new relationship among the neurons' receptive fields, which can be characterized by if-and-only-if statements, relating both to JC and to a larger ideal of a code I(C).
Citation: Licui Zheng, Yiyao Zhang, Jinwang Liu. The algorithm for canonical forms of neural ideals[J]. Electronic Research Archive, 2024, 32(5): 3162-3170. doi: 10.3934/era.2024145
[1] | Liping Fan, Pengju Yang . Load forecasting of microgrid based on an adaptive cuckoo search optimization improved neural network. Electronic Research Archive, 2024, 32(11): 6364-6378. doi: 10.3934/era.2024296 |
[2] | Jian Liu, Zhen Yu, Wenyu Guo . The 3D-aware image synthesis of prohibited items in the X-ray security inspection by stylized generative radiance fields. Electronic Research Archive, 2024, 32(3): 1801-1821. doi: 10.3934/era.2024082 |
[3] | Yu Xue, Zhenman Zhang, Ferrante Neri . Similarity surrogate-assisted evolutionary neural architecture search with dual encoding strategy. Electronic Research Archive, 2024, 32(2): 1017-1043. doi: 10.3934/era.2024050 |
[4] | Xiangwen Yin . A review of dynamics analysis of neural networks and applications in creation psychology. Electronic Research Archive, 2023, 31(5): 2595-2625. doi: 10.3934/era.2023132 |
[5] | Karl Hajjar, Lénaïc Chizat . On the symmetries in the dynamics of wide two-layer neural networks. Electronic Research Archive, 2023, 31(4): 2175-2212. doi: 10.3934/era.2023112 |
[6] | Xiaochun Gu, Fang Han, Zhijie Wang, Kaleem Kashif, Wenlian Lu . Enhancement of gamma oscillations in E/I neural networks by increase of difference between external inputs. Electronic Research Archive, 2021, 29(5): 3227-3241. doi: 10.3934/era.2021035 |
[7] | Vladimir Lazić, Fanjun Meng . On Nonvanishing for uniruled log canonical pairs. Electronic Research Archive, 2021, 29(5): 3297-3308. doi: 10.3934/era.2021039 |
[8] | Xiaofang Jiang, Hui Zhou, Feifei Wang, Bingxin Zheng, Bo Lu . Bifurcation analysis on the reduced dopamine neuronal model. Electronic Research Archive, 2024, 32(7): 4237-4254. doi: 10.3934/era.2024191 |
[9] | Fabrizio Catanese, Luca Cesarano . Canonical maps of general hypersurfaces in Abelian varieties. Electronic Research Archive, 2021, 29(6): 4315-4325. doi: 10.3934/era.2021087 |
[10] | Xiaoping Zhao, Liwen Jiang, Adam Slowik, Zhenman Zhang, Yu Xue . Evolving blocks by segmentation for neural architecture search. Electronic Research Archive, 2024, 32(3): 2016-2032. doi: 10.3934/era.2024092 |
To elucidate the combinatorial architecture of neural codes, the neural ideal JC, an algebraic object, was introduced. Represented in its canonical form, JC provides a succinct characterization of the inherent receptive field architecture within the code. The polynomials in JC are also instrumental in determining the relationships among the neurons' receptive fields. Consequently, the computation of the collection of canonical forms is pivotal. In this paper, based on the study of relations between pseudo-monomials, the authors present a computationally efficient iterative algorithm for the canonical forms of the neural ideal. Additionally, we introduce a new relationship among the neurons' receptive fields, which can be characterized by if-and-only-if statements, relating both to JC and to a larger ideal of a code I(C).
One of the pivotal realms of neuroscience research revolves around unraveling the intricate mechanisms by which the brain perceives and interprets spatial information. Within this framework, neurons in the brain employ sophisticated neural codes to encapsulate and manifest external stimuli. With the continuous advancement of neuroscience technology, researchers' ability to collect neural data is also constantly increasing, hence the requirement for alternative methodologies to analyze and process these data. A significant challenge in current research is understanding how brain processes encode environmental spatial characteristics through neural activity patterns. In 2013, C. Curto and others studied the encoding of the stimulus space region corresponding to each neuron [1,2], introducing algebraic objects to present neural activity data in the form of neural codes, and mapping the corresponding codes to pseudo-monomials in F2, thereby defining the related neural ring and neural ideal. The neural ring is a quotient ring in F2, and the neural ideal encompasses the entire combinatorial dataset of neural coding. This concept is represented by a unique set of minimal pseudo-monomials within the neural ideal, known as the canonical form, which is the minimal representation of the receptive field structure in the stimulus space. Therefore, the study of stimulus space features can be transformed into the study of the neural ideal or its canonical form. Since then, this field has been very active, especially in recent years when some relatively important works have appeared. For example, the works [3,4,5,6,7,8,9] have done a good job of processing the receptive field structure formed in the brain. The study of the specific algorithm for the canonical form of neural ideals is a question of concern to many scholars at present. In 2013, C. Curto and others gave the original method for computing the canonical form [1]. This specific algorithm mainly uses ideas similar to monomial ideal theory and is implemented by computing the primary decomposition of the pseudo-monomial ideal. E. Petersen and others gave an iterative method [10]. In the same year, A. R. Perez and others also involved the calculation of the canonical form when studying the homomorphism that preserves the neural ideal on the neural ring [11]. We have more interest in [10]. In [10], the authors present an alternative specific algorithm that diverges from utilizing primary decomposition. Instead, it commences with the canonical form of a code made up of a solitary codeword, proceeding to incorporate the residual codewords singly while readjusting the canonical form correspondingly through iteration. But the specific algorithm should examine the multiplication of f with all possible linear terms (xi−ci) and it involves individually verifying whether f is indivisible by each xi−ci−1. We offer some criteria that, by employing these principles, allow for the efficient identification of those pseudo-monomials whose product with (xi−ci) need not be computed.
Besides, Curto et al. showed that the presence of certain types of polynomials in the neural ideal gives information about the relationships among receptive fields. They found three receptive field relationships, known as the Type 1–3 relationships, that can be read off from the neural ideal. Later, Garcia et al. discovered three more such relations, known as the Type 4–6 relations [2]. A. Morvant modified statements of Type 4–6 as a if-and-only-if statements to both JC and I(C) [9]. Within this study, we identify additional types of receptive field relationships that stem from non-pseudo-monomials.
The paper is organized as follows. Some basic concepts for neural ideals are introduced in Section 2. In Section 3, the main results are presented. And in Section 4, we have presented an improved, specific algorithm and clearly illustrated its modifications through a concrete example.
Moving on to the next section, we give a short overview of the neural ideal of neural code. For a more detailed background, including relevant theorems and proofs, please refer to [2].
Definition 1. A neural code on n neurons is a set of binary firing patterns C⊆{0,1}n, and any vector c within this set is referred to as a codeword.
Each individual codeword c within the context of a neural code represents a firing pattern of n neurons: 1 signifies an active neuron, whereas 0 denotes an inactive or quiescent neuron. For example, the presence of the word 0101 in a 4-neuron code would indicate an instance when neurons 2 and 4 were firing but neurons 1 and 3 were not.
Alternatively, a codeword is characterized by the collection of neurons that exhibit activity:
supp(c):={i∈[n]|ci=1}⊆[n]. |
Consequently, the entire neural code is associated with a set of subsets comprising neurons that fire simultaneously: supp(C)={supp(c)|c∈C}⊆2[n].
Neurons like place cells, are activated in specific areas of a stimulus space, known as receptive fields.
Definition 2. Assume X be a stimulus space (such as X⊆Rd) and U={U1,…,Un} as a set of open sets, where each Ui⊆X corresponds to the receptive field of the i-th neuron in a group of n neurons. The receptive field code (RF code) C(U)⊆{0,1}n is the set of all binary codewords corresponding to stimuli in X:
C(U)def={c∈{0,1}n|(⋂i∈supp(c)Ui)∖(⋃j∉supp(c)Uj)≠∅}. |
In the previous discussion, we frequently associated this code with the set of corresponding subsets within [n]. Moreover, when it comes to an empty intersection, we adhere to the following convention: ⋂i∈∅Ui=X.
Definition 3. A pseudo-monomial in F2[x1,...,xn] is a polynomial exemplified by the following structural expression:
f=∏i∈σxi∏j∈τ(1+xj), |
where σ,τ∈[n] with σ∩τ=∅.
For any v∈{0,1}n, consider the polynomial:
ρv=n∏i=1(1−vi−xi)=∏{i|vi=1}xi∏{j|vj=0}(1−xj). |
Notice that ρv(x) acts as a characteristic function for v, since it satisfies ρv(v)=1 and ρv(x)=0 for any x≠v.
Definition 4. Let C⊆{0,1}n be a neural code. The neural ideal JC⊂F2[x1,...,xn] associated to the neural code C is the ideal generated by the polynomials ρv with v∉C, that is:
JC:={ρv|v∉C}. |
Notice that this implies that if f∈JC, then f(c)=0 for any c∈C.
Definition 5. Let C⊆{0,1}n be a neural code, then the ideal of C is:
I(C):={f∈F2[x1,…,xn]|∀c∈C:f(c)=0}. |
By this definition, JC⊆I(C). A lemma is provided below, which gives a version in terms of algebra for the previous assertion.
Lemma 6. ([1]) Let C⊆{0,1}n be a neural code. Then:
I(C)=JC+⟨xi(1+xi)|i∈[n]⟩. |
The collection of polynomials that make up a neural ideal offers a way to understand the connections between the receptive fields within a stimulus space. These interconnections were initially explored by Curto, Itskov, Veliz-Cuba, and Youngs, who identified the first three types of relationships [1]. To abbreviate the notation, we introduce:
xσ=∏i∈σxi,andUσ=⋂i∈σUi. |
Note that if σ=∅, then xσ=∏i∈σxi=1 and Uσ=X.
Lemma 7. ([1]) Given a stimulus space X and a collection of sets U={Ui}ni=1 in X, we have the receptive field code C=C(U). For any two subsets σ,τ⊆[n],
xσ∏i∈τ(1+xi)∈JC⟺Uσ⊆⋃i∈τUi. |
In essence, three distinct types of receptive-field relationships (RF relationships) can be extracted from the pseudo-monomials within a neural ideal. For further details, please refer to reference [5].
Type 1: xσ∈JC⟺Uσ=∅ (where σ≠∅).
Type 2: xσ∏i∈τ(1+xi)∈JC⟺Uσ⊆⋃i∈τUi (where σ,τ≠∅).
Type 3: ∏i∈τ(1+xi)∈JC⟺X⊆⋃i∈τUi (where τ≠∅), so X=⋃i∈τUi.
In the present work, we identify additional types of receptive field relationships that stem from non-pseudo-monomials.
Definition 8. Let JC be a neural ideal. Then its canonical form, indicated as CF(JC), is the set of all minimal pseudo-monomials of JC.
Next, we will give the algorithm of the CF(JC).
We will present the main results of our paper in this section.
Theorem 9. If xi1xi2…xin+xin+1+⋯+xin+m+1∈JC⟺(n⋂k=1Uik)∪(m⋃l=1Uil)=X and Ui1,…,Uin+m are pairwise disjoint.
Proof. "⇐" Suppose that (n⋂k=1Uik)⋃(m⋃l=1Uil)=X and M={in+1,...,im+n},N={i1,...,in}. Then n⋂k=1Uik=∅ as Ui1,…,Uin are pairwise disjoint, and it follows that X=m⋃l=1Uil. By the Type 3 relation, we know that ∏i∈M(1+xi)∈JC, whereas ∏i∈M(1+xi)=∑τ⊆Mxτ. Furthermore, considering that Uin+1,…,Uin+m are pairwise disjoint, by the Type 1 relation, xτ⊆JC for all τ⊆M where|τ|≥2. Therefore,
∏σ⊆Nxσ∑τ⊆Mxτ+∑τ⊆M |τ|≥2xτ=∏σ⊆Nxσ∑τ⊆M |τ|<2xτ=1+xin+1+⋯+xin+m+xi1xi2…xin∈JC. |
"⇒" Let h=xi1xi2...xin+xin+1+xin+2+...+xim+n+1, r∈X, then c(r)∈C. Next, we just need to prove r∈(n⋂k=1Uik)⋃(m⋃l=1Uil).
Then h(c(r))=0 as h∈JC, it follows:
c(r)i1c(r)i2...c(r)in+c(r)in+1+c(r)in+2+...+c(r)im+n+1=0, |
so:
(1) There exist k∈[n],p∈[m], such that c(r)ip=0 and c(r)ik=1, where k is odd, or
(2) c(r)is=1 for all s∈{1,...,n} and c(r)in+1+c(r)in+2+...+c(r)im+n=0.
It follows that r∈Uil when (1) is correct, and r∈(n⋂l=1Uil)⋃(m⋃k=1Uik).
If (2) is true, then r∈∩mk=1Uik, similarly obtained r∈(n⋂l=1Uil)⋃(m⋃k=1Uik).
We can extend the above theorem from ideal JC to a larger ideal I(C).
Theorem 10. If xi1xi2…xin+xin+1+⋯+xin+m+1∈I(C)⟺(n⋂k=1Uik)∪(m⋃l=1Uil)=X and Ui1,…,Uin+m are pairwise disjoint.
Proof. Having established the validity of the reverse directions via the theorem above and the inclusion relation JC⊆I(C), our remaining task is to establish the forward implications.
However, the demonstration procedure for the forward implications parallels that of the above theorem, with the sole modification being the substitution of "h∈JC" for "h∈I(C)".
It can be gleaned from the above- mentioned theorem that JC and I(C) yield equivalent information with regards to the stimulus space.
Definition 11. Let m1,m2∈F2[x1,…,xn] be two pesudo-monomials. We say m1 and m2 share an index i if xi divides one of them and 1+xi divides the other. If a single pesudo-monomial is divisible by xi(1+xi), we do not count this as sharing an index with itself.
For example, x5(1+x6) and x7(1+x5) share the index 5. However, x5(1+x6) and x5(1+x7) share no index, even though x5 divides both.
Before introducing the following theorem, let us first briefly review the algorithm mentioned in [10]. In [10], they must consider the product of f (which is a pseudo-monomial) with every possible linear term (xj−cj) as a potential candidate for CF(JC); however, they also have to eliminate any such products deemed redundant. The process of scrutinizing each product individually results in significant redundancy, which not only demands substantial memory usage but also reduces computational efficiency. In the following, we introduce some criteria that can be used not only to swiftly identify which pseudo-monomial products with (xj−cj) need not be computed but also to directly discern which of these products are superfluous.
Theorem 12. Let f∈F2[x1,…,xn]. If f and (xi−ci) share indices i, then there is no need to calculate their product.
Proof. Set f=∏i∈σxi∏l∈τ(1+xl), then there exists a specific index i∈τ or i∈σ such that under one condition where (1+xi)|f, xi also divides (xi−ci); Conversely, when f can be divided by xi, in this case (1+xi) also divides (xi−ci). Regardless of the given conditions, f×(xi−ci) will consistently contain both xi and (1+xi). As such, it can safely be removed.
According to the aforementioned theorem, there is no need to individually compute the product of f and (xi−ci) like in the original specific algorithm; instead, we only need to compute the products of f and (xi−ci) that do not share any indices. Furthermore, in the original specific algorithm after calculating the product of f and (xi−ci), we still need to verify whether (xi−ci−1) divides f or not. Next, we present another determining condition under which verification of whether (xi−ci−1) divides f becomes unnecessary.
Theorem 13. Let f∈F2[x1,…,xn],lt(f),(xi−ci) share no indices and gcd(lt(f),xi−ci)=1, then (xi−ci−1)∤f, where lt(f) refers to the leading term of the polynomial f under a given monomial order.
Proof. Using proof by contradiction, suppose (xi−ci−1)|f, in that case, (xi−ci−1)|lt(f); hence, (xi−ci) shares indices with lt(f), which contradicts the premise.
Based on the above theorem, in this section we have presented an improved specific algorithm and clearly illustrated its modifications using a concrete example.
To further improve the efficiency of the specific algorithm given in [10], we propose some criteria to detect the useless production of f and (xi−ci). First, we propose the conception of sharing an index and prove that the production is useless if lt(f) and (xi−ci) share an index. Second, we propose the leading term coprime to detect not only useless production but also eliminate the process of examining whether f is divisible by (xi−ci−1). Hence, the proposed algorithm has the potential to significantly enhance the computational efficiency of the initial, specific algorithm. We refer to the improved, specific algorithm in Figure 1.
Subsequently, we shall furnish a demonstration of the specific algorithm's validity.
Lemma 14. The set L∪N in the specific algorithm does not contain elements that are multiples of each other.
Proof. We will complete the proof from four aspects.
(1) The set L does not contain elements that are multiples of each other. According to the specific algorithm, set L belongs to CF(JC), so it is evident that there are no elements in L that are multiples of each other.
(2) According to the specific algorithm, we discard them if they are a multiples of anything in L, so the elements in N cannot be multiples of the elements in L.
(3) There are no elements in N that are multiples of any other elements in N.
We shall employ proof by contradiction to demonstrate that this scenario is untenable.
Suppose f(xi−ci),h(xk−ck)∈N, and there is a pseudo-monomial m, such that f(xi−ci)=mh(xk−ck), then it follows that i≠k as f∤h and h∤f, so (xk−ck)∣f, and furthermore f(xk−ck)=f. Similarly, if h(xi−ci)=h, then:
ff(xi−ci)=mh(xk−ck)f⇒f(xi−ci)=mh |
and
f(xi−ci)h=mhh⇒f=mh, |
which is a contradiction. So (3) is correct.
(4) There are no elements in L that are multiples of any other elements in N.
Assuming that f(xi−ci)m=h, where f(xi−ci)∈N,h∈L, and m is a pseudo-monomial, then f∣h; however, this is impracticable due to the fact that f,h∈CF(JC).
In summary, the lemma holds.
Theorem 15. If C,c∈{0,1}n, and L, N are the sets mentioned pertain to those described in the specific algorithm, then L∪N=CF(JC∪{c}).
Proof. First, we show L∪N⊂CF(JC∪{c}). For any h∈L∪N, there exist fj∈CF(JC) and (xi−ci)∈CF(J{c}) such that h=fj(xi−ci). It follows that h∈JC as fj∣h and h∈J{c} as (xi−ci)∣h. Then h(c′)=0 for any c′∈C∪{c}, which means h∈JC∪{c}. Thus, there exists f′i∈CF(JC∪{c}), such that h=h1f′i. But as there are no elements in L∪N that are multiples of any other elements in L∪N, h=f′i, furthermore, h∈CF(JC∪{c}).
For the converse inclusion, let us postulate h∈CF(JC∪{c}), then there is some fj∈CF(JC), such that h=h1fj as JC∪{c}⊂JC, where h1 is a pseudo-monomial. Similarly, there are some elements of CF(J{c}), and let us just assume it is (xi−ci) such that h=(xi−ci)h2, where h2 is a pseudo-monomial. So h is a multiple of fj(xi−ci). Therefore, fj(xi−ci) either belongs to L∪N or is a multiple of elements in L∪N. But as h∈CF(JC∪{c}), h can-not be a multiple of elements in L∪N. Then h∈L∪N, and CF(JC∪{c})∈L∪N.
Next, we will illustrate the operational steps and improvements of the new specific algorithm through a specific example.
Example 1: Let C=(001,010,110), then the canonical form of it is CF(JC)=(x1x2,(1+x1)(1+x2),x0(1+x1),x0x2), and we denote them as f1,f2,f3,f4, respectively.
Now add a new code c=(111).
Next, we calculate CF(JC∪{c}) according to the specific algorithm.
f1(c)=1,f2(c)=0,f3(c)=0,f4(c)=1. |
Add f2,f3 to L and f1,f4 to M. Chose f1 from M, then lt(f1)=x1x2. Besides, (xi−ci) is (x0−1),(x1−1), and (x2−1), respectively. After verification, it was found that lt(f1) and x1−1,x2−1, share indicators, respectively. Therefore, according to Theorem 3.3, there is no need to calculate the product of them.
gcd(lt(f1),x0−1)=1 and f1(x0−1)=x1x2(x0−1), which cannot be expressed as the product of an elemental constituent of the set L, so add it to N and label it as f5.
We chose f4, which shares indicators respectively with (x0−1) and (x2−1), as a result, it would be unnecessary to proceed with calculating the product between them. Hence, we will simply skip this step.
But gcd(lt(f4),(x1−1))=1, therefore, we need to calculate the product of them,
f4(x1−1)=x0x2(x1−1), |
which is not divisible by any element of L, so add it to N, label it as f6.
Finally, we obtained the CF(JC)=(f2,f3,f5,f6).
Remark To further clarify, the aforementioned calculation examples demonstrate the benefits of reducing the number of multiplication operations required for calculating the products of f1 and (x1−1),(x2−1), as well as f2 and (x0−1),(x2−1). and we also do not need to verify whether (xj−cj−1) divides fi. By eliminating these additional multiplication calculations and simplifying the process, we achieve improved efficiency and significantly reduce the amount of time required for the overall computation.
In this study, we introduce an improved, specific algorithm for computing canonical forms of neural ideals. This new specific algorithm provides several criteria, resulting in a reduction of computational requirements and increased efficiency. Moreover, we introduce a new RF-relation and extend it from JC to I(C). Identifying such receptive field relationships is an interesting direction for future work.
The authors declare they have not used Artificial Intelligence (AI) tools in the creation of this article.
This research was supported by the National Natural Science Foundation of China under Grant Nos. 12201204, 11971161, and 12271154, and the Natural Science Foundation of Hunan Provincial under Grant Nos. 2022JJ30234 and 2023JJ40275, Scientific Research Fund of Hunan Province Education Department under Grant Nos. 21A0299 and 22A0334.
The authors declare there is no conflict of interest.
[1] |
C. Curto, V. Itskov, A. Veliz-Cuba, N. Youngs, The neural ring: an algebraic tool for analyzing the intrinsic structure of neural codes, Bull. Math. Biol., 75 (2013), 1571–1611. https://doi.org/10.1007/s11538-013-9860-3 doi: 10.1007/s11538-013-9860-3
![]() |
[2] | C. Curto, N. Youngs, Neural ring homomorphisms and maps between neural codes, in Topological Data Analysis, (2020), 163–180. https://doi.org/10.1007/978-3-030-43408-3_7 |
[3] |
C. Giusti, E. Pastalkova, C. Curto, V. Itskov, Clique topology reveals intrinsic geometric structure in neural correlations, PNAS, 112 (2015), 13455–13460. https://doi.org/10.1073/pnas.1506407112 doi: 10.1073/pnas.1506407112
![]() |
[4] |
C. S. Gunturkun, J. Jeffries, J. Sun, Polarization of neural rings, J. Algebra Appl., 19 (2020), 2050146. https://doi.org/10.1142/S0219498820501467 doi: 10.1142/S0219498820501467
![]() |
[5] | H. Geller, R. G. Rebecca, Canonical forms of neural ideals, preprint, arXiv: 2209.09948. |
[6] |
D. Li, J. Liu, L. Zheng, A zero-dimensional valuation ring is 1- Gröbner, J. Algebra, 484 (2017), 334–343. https://doi.org/10.1016/j.jalgebra.2017.04.015 doi: 10.1016/j.jalgebra.2017.04.015
![]() |
[7] |
L. Zheng, D. Li, J. Liu, An improvement for GVW, J. Syst. Sci. Complexity, 35 (2022), 427–436. https://doi.org/10.1007/s11424-021-9051-5 doi: 10.1007/s11424-021-9051-5
![]() |
[8] |
L. Zheng, D. Li, J. Liu, Some improvements for the specific algorithm of Gröbner bases over dual valuation domain, Electron. Res. Arch., 31 (2023), 3999–4010. https://doi.org/10.3934/era.2023203 doi: 10.3934/era.2023203
![]() |
[9] | A. Morvant, Strengthening relationships between neural ideals and receptive fields, preprint, arXiv: 1803.03204. |
[10] | E. Petersen, N. Youngs, R. Kruse, D. Miyata, R. Garcia, L. D. G. Puente, Neural ideals in SageMath, in Mathematical Software – ICMS 2018, (2018), 182–190. https://doi.org/10.1007/978-3-319-96418-8_22 |
[11] |
A. R. Perez, L. F. Matusevich, A. Shiu, Neural codes and the factor complex, Adv. Appl. Math., 114 (2020), 101977. https://doi.org/10.1016/j.aam.2019.101977 doi: 10.1016/j.aam.2019.101977
![]() |