GetWiki
Communication complexity
ARTICLE SUBJECTS
being →
database →
ethics →
fiction →
history →
internet →
language →
linux →
logic →
method →
news →
policy →
purpose →
religion →
science →
software →
truth →
unix →
wiki →
ARTICLE TYPES
essay →
feed →
help →
system →
wiki →
ARTICLE ORIGINS
critical →
forked →
imported →
original →
Communication complexity
please note:
- the content below is remote from Wikipedia
- it has been imported raw for GetWiki
{{Use American English|date=January 2019}}{{Short description|Complexity of sending information in a distributed algorithm}}In theoretical computer science, communication complexity studies the amount of communication required to solve a problem when the input to the problem is distributed among two or more parties. The study of communication complexity was first introduced by Andrew Yao in 1979, while studying the problem of computation distributed among several machines.{{Citation
- the content below is remote from Wikipedia
- it has been imported raw for GetWiki
| last = Yao
| first = A. C.
| title = Some Complexity Questions Related to Distributive Computing
| journal = Proc. Of 11th STOC
| volume = 14
| pages = 209â213
| year = 1979 }}
The problem is usually stated as follows: two parties (traditionally called Alice and Bob) each receive a (potentially different) n-bit string x and y. The goal is for Alice to compute the value of a certain function, f(x, y), that depends on both x and y, with the least amount of communication between them.While Alice and Bob can always succeed by having Bob send his whole n-bit string to Alice (who then computes the function f), the idea here is to find clever ways of calculating f with fewer than n bits of communication. Note that, unlike in computational complexity theory, communication complexity is not concerned with the amount of computation performed by Alice or Bob, or the size of the memory used, as we generally assume nothing about the computational power of either Alice or Bob.This abstract problem with two parties (called two-party communication complexity), and its general form with more than two parties, is relevant in many contexts. In VLSI circuit design, for example, one seeks to minimize energy used by decreasing the amount of electric signals passed between the different components during a distributed computation. The problem is also relevant in the study of data structures and in the optimization of computer networks. For surveys of the field, see the textbooks by {{harvtxt|Rao|Yehudayoff|2020}} and {{harvtxt|Kushilevitz|Nisan|2006}}.| first = A. C.
| title = Some Complexity Questions Related to Distributive Computing
| journal = Proc. Of 11th STOC
| volume = 14
| pages = 209â213
| year = 1979 }}
Formal definition
Let f: X times Y rightarrow Z where we assume in the typical case that X=Y={0,1}^n and Z={0,1}. Alice holds an n-bit string x in X while Bob holds an n-bit string y in Y. By communicating to each other one bit at a time (adopting some communication protocol which is agreed upon in advance), Alice and Bob wish to compute the value of f(x,y) such that at least one party knows the value at the end of the communication. At this point the answer can be communicated back so that at the cost of one extra bit, both parties will know the answer. The worst case communication complexity of this communication problem of computing f, denoted as D(f) , is then defined to be
D(f) = minimum number of bits exchanged between Alice and Bob in the worst case.
As observed above, for any function f: {0, 1}^n times {0, 1}^n rightarrow {0, 1}, we have D(f) leq n.Using the above definition, it is useful to think of the function f as a matrix A (called the input matrix or communication matrix) where the rows are indexed by x in X and columns by y in Y. The entries of the matrix are A_{x,y}=f(x,y). Initially both Alice and Bob have a copy of the entire matrix A (assuming the function f is known to both parties). Then, the problem of computing the function value can be rephrased as “zeroing-in” on the corresponding matrix entry. This problem can be solved if either Alice or Bob knows both x and y. At the start of communication, the number of choices for the value of the function on the inputs is the size of matrix, i.e. 2^{2n}. Then, as and when each party communicates a bit to the other, the number of choices for the answer reduces as this eliminates a set of rows/columns resulting in a submatrix of A.More formally, a set R subseteq X times Y is called a (combinatorial) rectangle if whenever (x_1,y_1) in R and (x_2,y_2) in R then (x_1,y_2) in R. Equivalently, R is a combinatorial rectangle if it can be expressed as R = M times N for some M subseteq X and N subseteq Y. Consider the case when k bits are already exchanged between the parties. Now, for a particular h in {0,1}^k, let us define a matrix
T_{h} = { (x, y) : text{ the }ktext{-bits exchanged on input } (x , y) text{ is }h}
Then, T_{h} subseteq X times Y, and it is not hard to show that T_{h} is a combinatorial rectangle in A.EQ“>Example: EQ
We consider the case where Alice and Bob try to determine whether or not their input strings are equal. Formally, define the Equality function, denoted EQ : {0, 1}^n times {0, 1}^n rightarrow {0, 1}, by EQ(x, y) = 1 if x = y. As we demonstrate below, any deterministic communication protocol solving EQ requires n bits of communication in the worst case. As a warm-up example, consider the simple case of x, y in {0, 1}^3. The equality function in this case can be represented by the matrix below. The rows represent all the possibilities of x, the columns those of y.{| class=“wikitable” style="font-family: monospace; text-align: right; margin-left: auto; margin-right: auto; border: none;“! EQ! 000! 001! 010! 011! 100! 101! 110! 111Theorem: D(EQ) n
Proof. Assume that D(EQ) leq n-1. This means that there exists x neq x’ such that (x, x) and (x’, x’) have the same communication transcript h. Since this transcript defines a rectangle, f(x, x’) must also be 1. By definition x neq x’ and we know that equality is only true for (a, b) when a = b. This yields a contradiction.This technique of proving deterministic communication lower bounds is called the fooling set technique.BOOK, Kushilevitz, EyalRandomized communication complexity
In the above definition, we are concerned with the number of bits that must be deterministically transmitted between two parties. If both the parties are given access to a random number generator, can they determine the value of f with much less information exchanged? Yao, in his seminal paperanswers this question by defining randomized communication complexity.A randomized protocol R for a function f has two-sided error.Example: EQ
Returning to the previous example of EQ, if certainty is not required, Alice and Bob can check for equality using only {{tmath|O(log n)}} messages. Consider the following protocol: Assume that Alice and Bob both have access to the same random string z in {0,1}^n. Alice computes z cdot x and sends this bit (call it b) to Bob. (The (cdot) is the dot product in GF(2).) Then Bob compares b to z cdot y. If they are the same, then Bob accepts, saying x equals y. Otherwise, he rejects.Clearly, if x = y, then z cdot x = z cdot y, so Prob_z[Accept] = 1. If x does not equal y, it is still possible that z cdot x = z cdot y, which would give Bob the wrong answer. How does this happen?If x and y are not equal, they must differ in some locations:
begin{cases}
x = c_1 c_2 ldots p ldots p’ ldots x_n y = c_1 c_2 ldots q ldots q’ ldots y_n z = z_1 z_2 ldots z_i ldots z_j ldots z_n end{cases}Where {{mvar|x}} and {{mvar|y}} agree, z_i * x_i = z_i * c_i = z_i * y_i so those terms affect the dot products equally. We can safely ignore those terms and look only at where {{mvar|x}} and {{mvar|y}} differ. Furthermore, we can swap the bits x_i and y_i without changing whether or not the dot products are equal. This means we can swap bits so that {{mvar|x}} contains only zeros and {{mvar|y}} contains only ones:
begin{cases}
x’ = 0 0 ldots 0 y’ = 1 1 ldots 1 z’ = z_1 z_2 ldots z_{n’} end{cases}Note that z’ cdot x’ = 0 and z’ cdot y’ = Sigma_i z’_i. Now, the question becomes: for some random string z’, what is the probability that Sigma_i z’_i = 0? Since each z’_i is equally likely to be {{val|0}} or {{val|1}}, this probability is just 1/2. Thus, when {{mvar|x}} does not equal {{mvar|y}},Prob_z[Accept] = 1/2. The algorithm can be repeated many times to increase its accuracy. This fits the requirements for a randomized communication algorithm.This shows that if Alice and Bob share a random string of length n, they can send one bit to each other to compute EQ(x,y). In the next section, it is shown that Alice and Bob can exchange only {{tmath|O(log n)}} bits that are as good as sharing a random string of length n. Once that is shown, it follows that EQ can be computed in {{tmath|O(log n)}} messages.Example: GH
For yet another example of randomized communication complexity, we turn to an example known as the gap-Hamming problem (abbreviated GH). Formally, Alice and Bob both maintain binary messages, x,y in {-1, +1}^n and would like to determine if the strings are very similar or if they are not very similar. In particular, they would like to find a communication protocol requiring the transmission of as few bits as possible to compute the following partial Boolean function,Public coins versus private coins
Creating random protocols becomes easier when both parties have access to the same random string, known as a shared string protocol. However, even in cases where the two parties do not share a random string, it is still possible to use private string protocols with only a small communication cost. Any shared string random protocol using any number of random string can be simulated by a private string protocol that uses an extra O(log n) bits.Intuitively, we can find some set of strings that has enough randomness in it to run the random protocol with only a small increase in error. This set can be shared beforehand, and instead of drawing a random string, Alice and Bob need only agree on which string to choose from the shared set. This set is small enough that the choice can be communicated efficiently. A formal proof follows.Consider some random protocol P with a maximum error rate of 0.1. Let R be 100n strings of length n, numbered r_1, r_2, dots, r_{100n}. Given such an R, define a new protocol P’_R which randomly picks some r_i and then runs P using r_i as the shared random string. It takes O(log 100n) = O(log n) bits to communicate the choice of r_i.Let us define p(x,y) and p’_R(x,y) to be the probabilities that P and P’_R compute the correct value for the input (x,y).For a fixed (x,y), we can use Hoeffding’s inequality to get the following equation:
Pr_R[|p’_R(x,y) - p(x,y)| geq 0.1] leq 2 exp(-2(0.1)^2 cdot 100n)
Pr_R[exists (x,y): |p’_R(x,y) - p(x,y)| geq 0.1] leq sum_{(x,y)} Pr_R[|p’_R(x,y) - p(x,y)| geq 0.1] < sum_{(x,y)} 2^{-2n} = 1
The last equality above holds because there are 2^{2n} different pairs (x,y). Since the probability does not equal 1, there is some R_0 so that for all (x,y):
|p’_{R_0}(x,y) - p(x,y)| < 0.1
Since P has at most 0.1 error probability, P’_{R_0} can have at most 0.2 error probability.Collapse of Randomized Communication Complexity
Let’s say we additionally allow Alice and Bob to share some resource, for example a pair of entangle particles. Using that ressource, Alice and Bob can correlate their information and thus try to ‘collapse’ (or ‘trivialize’) communication complexity in the following sense.Definition. A resource R is said to be “collapsing” if, using that resource R, only one bit of classical communication is enough for Alice to know the evaluation f(x,y) in the worst case scenario for any Boolean function f. The surprising fact of a collapse of communication complexity is that the function f can have arbitrarily large entry size, but still the number of communication bit is constant to a single one.Some resources are shown to be non-collapsing, such as quantum correlations BOOK,doi.org/10.1007/3-540-49208-9_4, 10.1007/3-540-49208-9_4, Quantum Entanglement and the Communication Complexity of the Inner Product Function, Quantum Computing and Quantum Communications, Lecture Notes in Computer Science, 1999, Cleve, Richard, Van Dam, Wim, Nielsen, Michael, Tapp, Alain, 1509, 61â74, 978-3-540-65514-5,digital.library.unt.edu/ark:/67531/metadc706249/, or more generally almost-quantum correlations,JOURNAL,doi.org/10.1038/ncomms7288, 10.1038/ncomms7288, Almost quantum correlations, 2015, Navascués, Miguel, Guryanova, Yelena, Hoban, Matty J., AcÃn, Antonio, Nature Communications, 6, 25697645, 1403.4621, whereas on the contrary some other resources are shown to collapse randomized communication complexity, such as the PR-box,W. van Dam, Nonlocality & Communication Complexity,Ph.d. thesis, University of Oxford (1999). or some noisy PR-boxes satisfying some conditions.G. Brassard, H. Buhrman, N. Linden, A. A. M Ìethot,A. Tapp, and F. Unger, Phys. Rev. Lett. 96, 250401(2006).N. Brunner and P. Skrzypczyk, Phys. Rev. Lett. 102,160403 (2009).P. Botteron, A. Broadbent and M.-O. Proulx, arXiv:2302.00488.Distributional Complexity
One approach to studying randomized communication complexity is through distributional complexity.Given a joint distribution mu on the inputs of both players, the corresponding distributional complexity of a function f is the minimum cost of a deterministic protocol R such that Pr[f(x,y) = R(x,y)] ge 2/3, where the inputs are sampled according to mu.Yao’s minimax principleCONFERENCE,ieeexplore.ieee.org/document/4567946, Probabilistic computations: Toward a unified measure of complexity, Yao, Andrew Chi-Chih, Andrew Yao, 1977, IEEE, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977), 0272-5428, 10.1109/SFCS.1977.24, (a special case of von Neumann’s minimax theorem) states that the randomized communication complexity of a function equals its maximum distributional complexity, where the maximum is taken over all joint distributions of the inputs (not necessarily product distributions!).Yao’s principle can be used to prove lower bounds on the randomized communication complexity of a function: design the appropriate joint distribution, and prove a lower bound on the distributional complexity. Since distributional complexity concerns deterministic protocols, this could be easier than proving a lower bound on randomized protocols directly.As an example, let us consider the disjointness function DISJ: each of the inputs is interpreted as a subset of {1,dots,n}, and DISJ({{mvar|x}},{{mvar|y}})=1 if the two sets are disjoint. RazborovJOURNAL, Razborov, Alexander, Alexander Razborov, 1992, On the distributional complexity of disjointness, Theoretical Computer Science, 106, 2, 385â390, 10.1016/0304-3975(92)90260-M, free, proved an Omega(n) lower bound on the randomized communication complexity by considering the following distribution: with probability 3/4, sample two random disjoint sets of size n/4, and with probability 1/4, sample two random sets of size n/4 with a unique intersection.Information Complexity
A powerful approach to the study of distributional complexity is information complexity. Initiated by Bar-Yossef, Jayram, Kumar and Sivakumar,JOURNAL, Bar-Yossef, Ziv, Jayram, T. S., Kumar, Ravi, Sivakumar, D., 2004, An information statistics approach to data stream and communication complexity,people.seas.harvard.edu/~madhusudan/courses/Spring2016/papers/BJKS.pdf, Journal of Computer and System Sciences, 68, 4, 702â732, 10.1016/j.jcss.2003.11.006, 1 December 2023, the approach was codified in work of Barak, Braverman, Chen and RaoJOURNAL, Barak, Boaz, Boaz Barak, Braverman, Mark, Mark Braverman, Chen, Xi, Rao, Anup, 2013, How to Compress Interactive Communication,www.boazbarak.org/Papers/directsum.pdf, SIAM Journal on Computing, 42, 3, 1327â1363, 10.1137/100811969, and by Braverman and Rao.JOURNAL, Braverman, Mark, Mark Braverman, Rao, Anup, Information equals amortized communication, 2014, IEEE Transactions on Information Theory, 60, 10, 6058â6069, 10.1109/TIT.2014.2347282, 1106.3595, The (internal) information complexity of a (possibly randomized) protocol {{mvar|R}} with respect to a distribution {{mvar|μ}} is defined as follows. Let (X,Y) sim mu be random inputs sampled according to {{mvar|μ}}, and let {{mvar|Î }} be the transcript of {{mvar|R}} when run on the inputs X,Y. The information complexity of the protocol isQuantum communication complexity
Quantum communication complexity tries to quantify the communication reduction possible by using quantum effects during a distributed computation.At least three quantum generalizations of communication complexity have been proposed; for a survey see the suggested text by G. Brassard.The first one is the qubit-communication model, where the parties can use quantum communication instead of classical communication, for example by exchanging photons through an optical fiber.In a second model the communication is still performed with classical bits, but the parties are allowed to manipulate an unlimited supply of quantum entangled states as part of their protocols. By doing measurements on their entangled states, the parties can save on classical communication during a distributed computation.The third model involves access to previously shared entanglement in addition to qubit communication, and is the least explored of the three quantum models.Nondeterministic communication complexity
In nondeterministic communication complexity, Alice and Bob have access to an oracle. After receiving the oracle’s word, the parties communicate to deduce f(x,y). The nondeterministic communication complexity is then the maximum over all pairs (x,y) over the sum of number of bits exchanged and the coding length of the oracle word.Viewed differently, this amounts to covering all 1-entries of the 0/1-matrix by combinatorial 1-rectangles (i.e., non-contiguous, non-convex submatrices, whose entries are all one (see Kushilevitz and Nisan or Dietzfelbinger et al.)). The nondeterministic communication complexity is the binary logarithm of the rectangle covering number of the matrix: the minimum number of combinatorial 1-rectangles required to cover all 1-entries of the matrix, without covering any 0-entries.Nondeterministic communication complexity occurs as a means to obtaining lower bounds for deterministic communication complexity (see Dietzfelbinger et al.), but also in the theory of nonnegative matrices, where it gives a lower bound on the nonnegative rank of a nonnegative matrix.JOURNAL, Yannakakis, M., Expressing combinatorial optimization problems by linear programs, J. Comput. Syst. Sci., 43, 3, 441â466, 1991, 10.1016/0022-0000(91)90024-y,Unbounded-error communication complexity
In the unbounded-error setting, Alice and Bob have access to a private coin and their own inputs (x, y). In this setting, Alice succeeds if she responds with the correct value of f(x, y) with probability strictly greater than 1/2. In other words, if Alice’s responses have any non-zero correlation to the true value of f(x, y), then the protocol is considered valid.Note that the requirement that the coin is private is essential. In particular, if the number of public bits shared between Alice and Bob are not counted against the communication complexity, it is easy to argue that computing any function has O(1) communication complexity.{{Citation|last=Lovett|first=Shachar|title=CSE 291: Communication Complexity, Winter 2019 Unbounded-error protocols|url=https://cseweb.ucsd.edu/classes/wi19/cse291-b/4-unbounded.pdf|access-date=June 9, 2019}} On the other hand, both models are equivalent if the number of public bits used by Alice and Bob is counted against the protocol’s total communication.JOURNAL, Göös, Mika, Pitassi, Toniann, Watson, Thomas, 2018-06-01, The Landscape of Communication Complexity Classes, Computational Complexity, 27, 2, 245â304, 10.1007/s00037-018-0166-6, 4333231, 1420-8954,drops.dagstuhl.de/opus/volltexte/2016/6199/, Though subtle, lower bounds on this model are extremely strong. More specifically, it is clear that any bound on problems of this class immediately imply equivalent bounds on problems in the deterministic model and the private and public coin models, but such bounds also hold immediately for nondeterministic communication models and quantum communication models.BOOK, Sherstov, Alexander A., 2008 49th Annual IEEE Symposium on Foundations of Computer Science, The Unbounded-Error Communication Complexity of Symmetric Functions, October 2008, 384â393, 10.1109/focs.2008.20, 978-0-7695-3436-7, 9072527, ForsterJOURNAL, Forster, Jürgen, A linear lower bound on the unbounded error probabilistic communication complexity, Journal of Computer and System Sciences, 65, 4, 612â625, 2002, 10.1016/S0022-0000(02)00019-3, free, was the first to prove explicit lower bounds for this class, showing that computing the inner product langle x, y rangle requires at least Omega(n) bits of communication, though an earlier result of Alon, Frankl, and Rödl proved that the communication complexity for almost all Boolean functions f: {0, 1}^n times {0, 1}^n to {0, 1} is Omega(n).BOOK, Alon, N., Frankl, P., Rodl, V., 26th Annual Symposium on Foundations of Computer Science (SFCS 1985), Geometrical realization of set systems and probabilistic communication complexity, October 1985, Portland, OR, USA, IEEE, 277â280, 10.1109/SFCS.1985.30, 9780818606441, 10.1.1.300.9711, 8416636,Lifting
Lifting is a general technique in complexity theory in which a lower bound on a simple measure of complexity is “lifted” to a lower bound on a more difficult measure.This technique was pioneered in the context of communication complexity by Raz and McKenzie,JOURNAL, Raz, Ran, Ran Raz, McKenzie, Pierre, Separation of the Monotone NC Hierarchy, Combinatorica, 19, 403â435, 1999, 3, 10.1007/s004930050062, who proved the first query-to-communication lifting theorem, and used the result to separate the monotone NC hierarchy.Given a function fcolon {0,1}^n to {0,1} and a gadget gcolon {0,1}^a times {0,1}^b to {0,1}, their composition f circ gcolon {0,1}^{na} times {0,1}^{nb} to {0,1} is defined as follows:Open problems
Considering a 0 or 1 input matrix M_f=[f(x,y)]_{x,yin {0,1}^n}, the minimum number of bits exchanged to compute f deterministically in the worst case, D(f), is known to be bounded from below by the logarithm of the rank of the matrix M_f. The log rank conjecture proposes that the communication complexity, D(f), is bounded from above by a constant power of the logarithm of the rank of M_f. Since D(f) is bounded from above and below by polynomials of log rank(M_f), we can say D(f) is polynomially related to log rank(M_f). Since the rank of a matrix is polynomial time computable in the size of the matrix, such an upper bound would allow the matrix’s communication complexity to be approximated in polynomial time. Note, however, that the size of the matrix itself is exponential in the size of the input.For a randomized protocol, the number of bits exchanged in the worst case, R(f), was conjectured to be polynomially related to the following formula:
log min(textrm{rank}(M’_f): M’_fin mathbb{R}^{2^ntimes 2^n}, (M_f - M’_f)_inftyleq 1/3).
Such log rank conjectures are valuable because they reduce the question of a matrix’s communication complexity to a question of linearly independent rows (columns) of the matrix. This particular version, called the Log-Approximate-Rank Conjecture, was recently refuted by Chattopadhyay, Mande and Sherif (2019)Chattopadhyay, Arkadev; Mande, Nikhil S.; Sherif, Suhail (2019). “The Log-Approximate-Rank Conjecture is False”. 2019, Proceeding of the 51st Annual ACM Symposium on Theory of Computing: 42-53doi.org/10.1145/3313276.3316353 using a surprisingly simple counter-example. This reveals that the essence of the communication complexity problem, for example in the EQ case above, is figuring out where in the matrix the inputs are, in order to find out if they’re equivalent.Applications
Lower bounds in communication complexity can be used to prove lower bounds in decision tree complexity, VLSI circuits, data structures, streaming algorithms, spaceâtime tradeoffs for Turing machines and more.Conitzer and SandholmBOOK, Conitzer, Vincent, Sandholm, Tuomas, Communication complexity of common voting rules, 2005-06-05, Proceedings of the 6th ACM conference on Electronic commerce,doi.org/10.1145/1064009.1064018, EC ‘05, New York, NY, USA, Association for Computing Machinery, 78â87, 10.1145/1064009.1064018, 978-1-59593-049-1,figshare.com/articles/journal_contribution/6604214, studied the communication complexity of some common voting rules, which are essential in political and non political organizations. Compilation complexity is a closely related notion, which can be seen as a single-round communication complexity.See also
Notes
{{Reflist}}References
- BOOK, Rao, Anup, Yehudayoff, Amir, Communication complexity and applications, Cambridge University Press, Cambridge, 2020, 9781108671644,
- BOOK, Kushilevitz, Eyal, Nisan, Noam, Noam Nisan, Communication complexity, Cambridge University Press, Cambridge, 2006, 978-0-521-02983-4, 70764786,
- Brassard, G. Quantum communication complexity: a survey. arxiv.org/abs/quant-ph/0101005
- Dietzfelbinger, M., J. Hromkovic, J., and G. Schnitger, “A comparison of two lower-bound methods for communication complexity”, Theoret. Comput. Sci. 168, 1996. 39-51.
- Raz, Ran. “Circuit and Communication Complexity.” In Computational Complexity Theory. Steven Rudich and Avi Wigderson, eds. American Mathematical Society Institute for Advanced Study, 2004. 129-137.
- A. C. Yao, “Some Complexity Questions Related to Distributed Computing”, Proc. of 11th STOC, pp. 209â213, 1979. 14
- I. Newman, Private vs. Common Random Bits in Communication Complexity, Information Processing Letters 39, 1991, pp. 67â71.
- content above as imported from Wikipedia
- "Communication complexity" does not exist on GetWiki (yet)
- time: 8:22am EDT - Wed, May 22 2024
- "Communication complexity" does not exist on GetWiki (yet)
- time: 8:22am EDT - Wed, May 22 2024
[ this remote article is provided by Wikipedia ]
LATEST EDITS [ see all ]
GETWIKI 21 MAY 2024
The Illusion of Choice
Culture
Culture
GETWIKI 09 JUL 2019
Eastern Philosophy
History of Philosophy
History of Philosophy
GETWIKI 09 MAY 2016
GetMeta:About
GetWiki
GetWiki
GETWIKI 18 OCT 2015
M.R.M. Parrott
Biographies
Biographies
GETWIKI 20 AUG 2014
GetMeta:News
GetWiki
GetWiki
© 2024 M.R.M. PARROTT | ALL RIGHTS RESERVED