{"action":"created","comment":{"url":"https://api.github.com/repos/highfidelity/hifi/pulls/comments/26718590","id":26718590,"diff_hunk":"@@ -109,91 +107,53 @@ float ShapeInfo::computeVolume() const {\n }\n \n const DoubleHashKey& ShapeInfo::getHash() const {\n-    // NOTE: we cache the hash so we only ever need to compute it once for any valid ShapeInfo instance.\n+    // NOTE: we cache the key so we only ever need to compute it once for any valid ShapeInfo instance.\n     if (_doubleHashKey.isNull() && _type != SHAPE_TYPE_NONE) {\n-        // cast this to non-const pointer so we can do our dirty work\n+        // The key is not yet cached therefore we must compute it!  To this end we bypass the const-ness\n+        // of this method by grabbing a non-const pointer to \"this\" and a non-const reference to _doubleHashKey.\n         ShapeInfo* thisPtr = const_cast<ShapeInfo*>(this);\n+        DoubleHashKey& key = thisPtr->_doubleHashKey;\n+\n         // compute hash1\n         // TODO?: provide lookup table for hash/hash2 of _type rather than recompute?\n         uint32_t primeIndex = 0;\n-        thisPtr->_doubleHashKey.computeHash((uint32_t)_type, primeIndex++);\n+        key.computeHash((uint32_t)_type, primeIndex++);\n     \n-        const QVector<glm::vec3>* data = getData();\n-        if (data) {\n-            // if externalData exists we use it to continue the hash\n-\n-            // compute hash\n-            uint32_t hash = _doubleHashKey.getHash();\n+        // compute hash1 \n+        uint32_t hash = key.getHash();\n+        for (int j = 0; j < 3; ++j) {\n+            // NOTE: 0.49f is used to bump the float up almost half a millimeter\n+            // so the cast to int produces a round() effect rather than a floor()\n+            uint32_t floatHash =\n+                DoubleHashKey::hashFunction((uint32_t)(_halfExtents[j] * MILLIMETERS_PER_METER + copysignf(1.0f, _halfExtents[j]) * 0.49f), primeIndex++);\n+            hash ^= floatHash;\n+        }\n+        key.setHash(hash);\n     \n-            glm::vec3 tmpData;\n-            int numData = data->size();\n-            for (int i = 0; i < numData; ++i) {\n-                tmpData = (*data)[i];\n-                for (int j = 0; j < 3; ++j) {\n-                    // NOTE: 0.49f is used to bump the float up almost half a millimeter\n-                    // so the cast to int produces a round() effect rather than a floor()\n-                    uint32_t floatHash =\n-                        DoubleHashKey::hashFunction((uint32_t)(tmpData[j] * MILLIMETERS_PER_METER + copysignf(1.0f, tmpData[j]) * 0.49f), primeIndex++);\n-                    hash ^= floatHash;\n-                }\n-            }\n-            thisPtr->_doubleHashKey.setHash(hash);\n-        \n-            // compute hash2\n-\n-            QString url = _url.toString();\n+        // compute hash2\n+        hash = key.getHash2();\n+        for (int j = 0; j < 3; ++j) {\n+            // NOTE: 0.49f is used to bump the float up almost half a millimeter\n+            // so the cast to int produces a round() effect rather than a floor()\n+            uint32_t floatHash =\n+                DoubleHashKey::hashFunction2((uint32_t)(_halfExtents[j] * MILLIMETERS_PER_METER + copysignf(1.0f, _halfExtents[j]) * 0.49f));\n+            hash += ~(floatHash << 17);\n+            hash ^=  (floatHash >> 11);\n+            hash +=  (floatHash << 4);\n+            hash ^=  (floatHash >> 7);\n+            hash += ~(floatHash << 10);\n+            hash = (hash << 16) | (hash >> 16);\n+        }\n+        key.setHash2(hash);\n \n-            if (url == \"\") {\n-                hash = _doubleHashKey.getHash2();\n-                for (int i = 0; i < numData; ++i) {\n-                    tmpData = (*data)[i];\n-                    for (int j = 0; j < 3; ++j) {\n-                        // NOTE: 0.49f is used to bump the float up almost half a millimeter\n-                        // so the cast to int produces a round() effect rather than a floor()\n-                        uint32_t floatHash =\n-                            DoubleHashKey::hashFunction2((uint32_t)(tmpData[j] * MILLIMETERS_PER_METER + copysignf(1.0f, tmpData[j]) * 0.49f));\n-                        hash += ~(floatHash << 17);\n-                        hash ^=  (floatHash >> 11);\n-                        hash +=  (floatHash << 4);\n-                        hash ^=  (floatHash >> 7);\n-                        hash += ~(floatHash << 10);\n-                        hash = (hash << 16) | (hash >> 16);\n-                    }\n-                }\n-            } else {\n-                QByteArray baUrl = url.toLocal8Bit();\n-                const char *cUrl = baUrl.data();\n-                hash = qChecksum(cUrl, baUrl.count());\n-            }\n-            thisPtr->_doubleHashKey.setHash2(hash);\n-        } else {\n-            // this shape info has no external data so type+extents should be enough to generate a unique hash\n-            // compute hash1\n-            uint32_t hash = _doubleHashKey.getHash();\n-            for (int j = 0; j < 3; ++j) {\n-                // NOTE: 0.49f is used to bump the float up almost half a millimeter\n-                // so the cast to int produces a round() effect rather than a floor()\n-                uint32_t floatHash =\n-                    DoubleHashKey::hashFunction((uint32_t)(_halfExtents[j] * MILLIMETERS_PER_METER + copysignf(1.0f, _halfExtents[j]) * 0.49f), primeIndex++);\n-                hash ^= floatHash;\n-            }\n-            thisPtr->_doubleHashKey.setHash(hash);\n-        \n-            // compute hash2\n-            hash = _doubleHashKey.getHash2();\n-            for (int j = 0; j < 3; ++j) {\n-                // NOTE: 0.49f is used to bump the float up almost half a millimeter\n-                // so the cast to int produces a round() effect rather than a floor()\n-                uint32_t floatHash =\n-                    DoubleHashKey::hashFunction2((uint32_t)(_halfExtents[j] * MILLIMETERS_PER_METER + copysignf(1.0f, _halfExtents[j]) * 0.49f));\n-                hash += ~(floatHash << 17);\n-                hash ^=  (floatHash >> 11);\n-                hash +=  (floatHash << 4);\n-                hash ^=  (floatHash >> 7);\n-                hash += ~(floatHash << 10);\n-                hash = (hash << 16) | (hash >> 16);\n-            }\n-            thisPtr->_doubleHashKey.setHash2(hash);\n+        QString url = _url.toString();\n+        if (!url.isEmpty()) {\n+            // fold the urlHash into both parts\n+            QByteArray baUrl = url.toLocal8Bit();\n+            const char *cUrl = baUrl.data();\n+            uint32_t urlHash = qChecksum(cUrl, baUrl.count());\n+            key.setHash(key.getHash() ^ urlHash);\n+            key.setHash2(key.getHash2() ^ urlHash);\n         }\n     }\n     return _doubleHashKey;","path":"libraries/shared/src/ShapeInfo.cpp","position":150,"original_position":150,"commit_id":"c032b29633db7f2313ce35072586459f196070aa","original_commit_id":"c032b29633db7f2313ce35072586459f196070aa","user":{"login":"AndrewMeadows","id":2186405,"avatar_url":"https://avatars.githubusercontent.com/u/2186405?v=3","gravatar_id":"","url":"https://api.github.com/users/AndrewMeadows","html_url":"https://github.com/AndrewMeadows","followers_url":"https://api.github.com/users/AndrewMeadows/followers","following_url":"https://api.github.com/users/AndrewMeadows/following{/other_user}","gists_url":"https://api.github.com/users/AndrewMeadows/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewMeadows/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewMeadows/subscriptions","organizations_url":"https://api.github.com/users/AndrewMeadows/orgs","repos_url":"https://api.github.com/users/AndrewMeadows/repos","events_url":"https://api.github.com/users/AndrewMeadows/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewMeadows/received_events","type":"User","site_admin":false},"body":"The url's hash contributes to both hash's inside the double-key... if the url is interesting.","created_at":"2015-03-18T23:37:33Z","updated_at":"2015-03-18T23:37:33Z","html_url":"https://github.com/highfidelity/hifi/pull/4474#discussion_r26718590","pull_request_url":"https://api.github.com/repos/highfidelity/hifi/pulls/4474","_links":{"self":{"href":"https://api.github.com/repos/highfidelity/hifi/pulls/comments/26718590"},"html":{"href":"https://github.com/highfidelity/hifi/pull/4474#discussion_r26718590"},"pull_request":{"href":"https://api.github.com/repos/highfidelity/hifi/pulls/4474"}}},"pull_request":{"url":"https://api.github.com/repos/highfidelity/hifi/pulls/4474","id":31483152,"html_url":"https://github.com/highfidelity/hifi/pull/4474","diff_url":"https://github.com/highfidelity/hifi/pull/4474.diff","patch_url":"https://github.com/highfidelity/hifi/pull/4474.patch","issue_url":"https://api.github.com/repos/highfidelity/hifi/issues/4474","number":4474,"state":"open","locked":false,"title":"proper shape management for ConvexHull shapes","user":{"login":"AndrewMeadows","id":2186405,"avatar_url":"https://avatars.githubusercontent.com/u/2186405?v=3","gravatar_id":"","url":"https://api.github.com/users/AndrewMeadows","html_url":"https://github.com/AndrewMeadows","followers_url":"https://api.github.com/users/AndrewMeadows/followers","following_url":"https://api.github.com/users/AndrewMeadows/following{/other_user}","gists_url":"https://api.github.com/users/AndrewMeadows/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewMeadows/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewMeadows/subscriptions","organizations_url":"https://api.github.com/users/AndrewMeadows/orgs","repos_url":"https://api.github.com/users/AndrewMeadows/repos","events_url":"https://api.github.com/users/AndrewMeadows/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewMeadows/received_events","type":"User","site_admin":false},"body":"There was an assert crash when shutting down the  interface when there was as model with a convex hull shape.  The problem is that the lookup key computed for the model's shape would be incorrect.\r\n\r\nThe solution is to release the shape by its pointer (in PhysicsEngine).\r\n\r\nAlso, I'm cleaning up how ShapeInfo computes the hashes for its shape key -- we weren't going to use the ShapeInfo::_externalData member so I removed it.","created_at":"2015-03-18T23:35:34Z","updated_at":"2015-03-18T23:37:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"98e5ef05dc1e9d29429fea27f5fd55ce04b58625","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/highfidelity/hifi/pulls/4474/commits","review_comments_url":"https://api.github.com/repos/highfidelity/hifi/pulls/4474/comments","review_comment_url":"https://api.github.com/repos/highfidelity/hifi/pulls/comments{/number}","comments_url":"https://api.github.com/repos/highfidelity/hifi/issues/4474/comments","statuses_url":"https://api.github.com/repos/highfidelity/hifi/statuses/c032b29633db7f2313ce35072586459f196070aa","head":{"label":"AndrewMeadows:thermonuclear","ref":"thermonuclear","sha":"c032b29633db7f2313ce35072586459f196070aa","user":{"login":"AndrewMeadows","id":2186405,"avatar_url":"https://avatars.githubusercontent.com/u/2186405?v=3","gravatar_id":"","url":"https://api.github.com/users/AndrewMeadows","html_url":"https://github.com/AndrewMeadows","followers_url":"https://api.github.com/users/AndrewMeadows/followers","following_url":"https://api.github.com/users/AndrewMeadows/following{/other_user}","gists_url":"https://api.github.com/users/AndrewMeadows/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewMeadows/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewMeadows/subscriptions","organizations_url":"https://api.github.com/users/AndrewMeadows/orgs","repos_url":"https://api.github.com/users/AndrewMeadows/repos","events_url":"https://api.github.com/users/AndrewMeadows/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewMeadows/received_events","type":"User","site_admin":false},"repo":{"id":15350502,"name":"hifi","full_name":"AndrewMeadows/hifi","owner":{"login":"AndrewMeadows","id":2186405,"avatar_url":"https://avatars.githubusercontent.com/u/2186405?v=3","gravatar_id":"","url":"https://api.github.com/users/AndrewMeadows","html_url":"https://github.com/AndrewMeadows","followers_url":"https://api.github.com/users/AndrewMeadows/followers","following_url":"https://api.github.com/users/AndrewMeadows/following{/other_user}","gists_url":"https://api.github.com/users/AndrewMeadows/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewMeadows/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewMeadows/subscriptions","organizations_url":"https://api.github.com/users/AndrewMeadows/orgs","repos_url":"https://api.github.com/users/AndrewMeadows/repos","events_url":"https://api.github.com/users/AndrewMeadows/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewMeadows/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/AndrewMeadows/hifi","description":"Open, decentralized virtual world using sensors to control avatars and dynamically assigned devices as servers.  San Francisco based startup, we are hiring: http://highfidelity.io/jobs  You can also contribute by doing jobs listed at http://worklist.net/worklist.php","fork":true,"url":"https://api.github.com/repos/AndrewMeadows/hifi","forks_url":"https://api.github.com/repos/AndrewMeadows/hifi/forks","keys_url":"https://api.github.com/repos/AndrewMeadows/hifi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AndrewMeadows/hifi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AndrewMeadows/hifi/teams","hooks_url":"https://api.github.com/repos/AndrewMeadows/hifi/hooks","issue_events_url":"https://api.github.com/repos/AndrewMeadows/hifi/issues/events{/number}","events_url":"https://api.github.com/repos/AndrewMeadows/hifi/events","assignees_url":"https://api.github.com/repos/AndrewMeadows/hifi/assignees{/user}","branches_url":"https://api.github.com/repos/AndrewMeadows/hifi/branches{/branch}","tags_url":"https://api.github.com/repos/AndrewMeadows/hifi/tags","blobs_url":"https://api.github.com/repos/AndrewMeadows/hifi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AndrewMeadows/hifi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AndrewMeadows/hifi/git/refs{/sha}","trees_url":"https://api.github.com/repos/AndrewMeadows/hifi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AndrewMeadows/hifi/statuses/{sha}","languages_url":"https://api.github.com/repos/AndrewMeadows/hifi/languages","stargazers_url":"https://api.github.com/repos/AndrewMeadows/hifi/stargazers","contributors_url":"https://api.github.com/repos/AndrewMeadows/hifi/contributors","subscribers_url":"https://api.github.com/repos/AndrewMeadows/hifi/subscribers","subscription_url":"https://api.github.com/repos/AndrewMeadows/hifi/subscription","commits_url":"https://api.github.com/repos/AndrewMeadows/hifi/commits{/sha}","git_commits_url":"https://api.github.com/repos/AndrewMeadows/hifi/git/commits{/sha}","comments_url":"https://api.github.com/repos/AndrewMeadows/hifi/comments{/number}","issue_comment_url":"https://api.github.com/repos/AndrewMeadows/hifi/issues/comments{/number}","contents_url":"https://api.github.com/repos/AndrewMeadows/hifi/contents/{+path}","compare_url":"https://api.github.com/repos/AndrewMeadows/hifi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AndrewMeadows/hifi/merges","archive_url":"https://api.github.com/repos/AndrewMeadows/hifi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AndrewMeadows/hifi/downloads","issues_url":"https://api.github.com/repos/AndrewMeadows/hifi/issues{/number}","pulls_url":"https://api.github.com/repos/AndrewMeadows/hifi/pulls{/number}","milestones_url":"https://api.github.com/repos/AndrewMeadows/hifi/milestones{/number}","notifications_url":"https://api.github.com/repos/AndrewMeadows/hifi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AndrewMeadows/hifi/labels{/name}","releases_url":"https://api.github.com/repos/AndrewMeadows/hifi/releases{/id}","created_at":"2013-12-20T23:18:13Z","updated_at":"2015-02-05T19:41:44Z","pushed_at":"2015-03-18T23:30:49Z","git_url":"git://github.com/AndrewMeadows/hifi.git","ssh_url":"git@github.com:AndrewMeadows/hifi.git","clone_url":"https://github.com/AndrewMeadows/hifi.git","svn_url":"https://github.com/AndrewMeadows/hifi","homepage":"http://highfidelity.io","size":149912,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"highfidelity:master","ref":"master","sha":"a07be6ba9f2fae1da4511348d491203a1d938ac4","user":{"login":"highfidelity","id":1565370,"avatar_url":"https://avatars.githubusercontent.com/u/1565370?v=3","gravatar_id":"","url":"https://api.github.com/users/highfidelity","html_url":"https://github.com/highfidelity","followers_url":"https://api.github.com/users/highfidelity/followers","following_url":"https://api.github.com/users/highfidelity/following{/other_user}","gists_url":"https://api.github.com/users/highfidelity/gists{/gist_id}","starred_url":"https://api.github.com/users/highfidelity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/highfidelity/subscriptions","organizations_url":"https://api.github.com/users/highfidelity/orgs","repos_url":"https://api.github.com/users/highfidelity/repos","events_url":"https://api.github.com/users/highfidelity/events{/privacy}","received_events_url":"https://api.github.com/users/highfidelity/received_events","type":"Organization","site_admin":false},"repo":{"id":5372872,"name":"hifi","full_name":"highfidelity/hifi","owner":{"login":"highfidelity","id":1565370,"avatar_url":"https://avatars.githubusercontent.com/u/1565370?v=3","gravatar_id":"","url":"https://api.github.com/users/highfidelity","html_url":"https://github.com/highfidelity","followers_url":"https://api.github.com/users/highfidelity/followers","following_url":"https://api.github.com/users/highfidelity/following{/other_user}","gists_url":"https://api.github.com/users/highfidelity/gists{/gist_id}","starred_url":"https://api.github.com/users/highfidelity/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/highfidelity/subscriptions","organizations_url":"https://api.github.com/users/highfidelity/orgs","repos_url":"https://api.github.com/users/highfidelity/repos","events_url":"https://api.github.com/users/highfidelity/events{/privacy}","received_events_url":"https://api.github.com/users/highfidelity/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/highfidelity/hifi","description":"Open, decentralized virtual worlds using sensors to control avatars and dynamically assigned devices as servers.  San Francisco based startup, we are hiring: http://highfidelity.com/jobs  Documentation at http://docs.highfidelity.com  Contribute by reporting bugs & doing jobs on http://worklist.net","fork":false,"url":"https://api.github.com/repos/highfidelity/hifi","forks_url":"https://api.github.com/repos/highfidelity/hifi/forks","keys_url":"https://api.github.com/repos/highfidelity/hifi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/highfidelity/hifi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/highfidelity/hifi/teams","hooks_url":"https://api.github.com/repos/highfidelity/hifi/hooks","issue_events_url":"https://api.github.com/repos/highfidelity/hifi/issues/events{/number}","events_url":"https://api.github.com/repos/highfidelity/hifi/events","assignees_url":"https://api.github.com/repos/highfidelity/hifi/assignees{/user}","branches_url":"https://api.github.com/repos/highfidelity/hifi/branches{/branch}","tags_url":"https://api.github.com/repos/highfidelity/hifi/tags","blobs_url":"https://api.github.com/repos/highfidelity/hifi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/highfidelity/hifi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/highfidelity/hifi/git/refs{/sha}","trees_url":"https://api.github.com/repos/highfidelity/hifi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/highfidelity/hifi/statuses/{sha}","languages_url":"https://api.github.com/repos/highfidelity/hifi/languages","stargazers_url":"https://api.github.com/repos/highfidelity/hifi/stargazers","contributors_url":"https://api.github.com/repos/highfidelity/hifi/contributors","subscribers_url":"https://api.github.com/repos/highfidelity/hifi/subscribers","subscription_url":"https://api.github.com/repos/highfidelity/hifi/subscription","commits_url":"https://api.github.com/repos/highfidelity/hifi/commits{/sha}","git_commits_url":"https://api.github.com/repos/highfidelity/hifi/git/commits{/sha}","comments_url":"https://api.github.com/repos/highfidelity/hifi/comments{/number}","issue_comment_url":"https://api.github.com/repos/highfidelity/hifi/issues/comments{/number}","contents_url":"https://api.github.com/repos/highfidelity/hifi/contents/{+path}","compare_url":"https://api.github.com/repos/highfidelity/hifi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/highfidelity/hifi/merges","archive_url":"https://api.github.com/repos/highfidelity/hifi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/highfidelity/hifi/downloads","issues_url":"https://api.github.com/repos/highfidelity/hifi/issues{/number}","pulls_url":"https://api.github.com/repos/highfidelity/hifi/pulls{/number}","milestones_url":"https://api.github.com/repos/highfidelity/hifi/milestones{/number}","notifications_url":"https://api.github.com/repos/highfidelity/hifi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/highfidelity/hifi/labels{/name}","releases_url":"https://api.github.com/repos/highfidelity/hifi/releases{/id}","created_at":"2012-08-10T18:26:22Z","updated_at":"2015-03-18T20:41:24Z","pushed_at":"2015-03-18T20:41:24Z","git_url":"git://github.com/highfidelity/hifi.git","ssh_url":"git@github.com:highfidelity/hifi.git","clone_url":"https://github.com/highfidelity/hifi.git","svn_url":"https://github.com/highfidelity/hifi","homepage":"","size":198844,"stargazers_count":242,"watchers_count":242,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":141,"mirror_url":null,"open_issues_count":52,"forks":141,"open_issues":52,"watchers":242,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/highfidelity/hifi/pulls/4474"},"html":{"href":"https://github.com/highfidelity/hifi/pull/4474"},"issue":{"href":"https://api.github.com/repos/highfidelity/hifi/issues/4474"},"comments":{"href":"https://api.github.com/repos/highfidelity/hifi/issues/4474/comments"},"review_comments":{"href":"https://api.github.com/repos/highfidelity/hifi/pulls/4474/comments"},"review_comment":{"href":"https://api.github.com/repos/highfidelity/hifi/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/highfidelity/hifi/pulls/4474/commits"},"statuses":{"href":"https://api.github.com/repos/highfidelity/hifi/statuses/c032b29633db7f2313ce35072586459f196070aa"}}}}